From a375adbd45c543ec7abf45e32777669ee665d66f Mon Sep 17 00:00:00 2001 From: gwen Date: Mon, 28 Aug 2017 17:37:01 +0200 Subject: [PATCH] menage --- .../INFAL24-AlgorithmiqueApprofondie.pdf | Bin 53799 -> 0 bytes AlgoApprofondie/cours/Makefile | 216 --- AlgoApprofondie/cours/_static/cesi.jpg | Bin 60367 -> 0 bytes AlgoApprofondie/cours/algo.txt | 291 ---- AlgoApprofondie/cours/annexes/agile.txt | 83 -- AlgoApprofondie/cours/annexes/exercices.txt | 19 - AlgoApprofondie/cours/annexes/index.txt | 10 - AlgoApprofondie/cours/annexes/scrum.txt | 176 --- AlgoApprofondie/cours/annexes/surete.txt | 93 -- AlgoApprofondie/cours/apercu.txt | 79 - AlgoApprofondie/cours/cesar.py | 61 - AlgoApprofondie/cours/code/factorielle.ml | 17 - AlgoApprofondie/cours/code/factorielle.py | 12 - AlgoApprofondie/cours/conf.py | 370 ----- AlgoApprofondie/cours/control.txt | 294 ---- AlgoApprofondie/cours/donnees.txt | 577 -------- AlgoApprofondie/cours/fonctions.txt | 588 -------- AlgoApprofondie/cours/fondement.txt | 198 --- AlgoApprofondie/cours/index.txt | 19 - AlgoApprofondie/cours/langage.txt | 336 ----- AlgoApprofondie/cours/modularite.txt | 200 --- AlgoApprofondie/cours/modules.txt | 313 ---- AlgoApprofondie/cours/presentation.txt | 72 - AlgoApprofondie/cours/programme.txt | 476 ------ AlgoApprofondie/cours/tp.txt | 101 -- AlgoApprofondie/diapos/Makefile | 47 - AlgoApprofondie/diapos/beamer.tex | 268 ---- AlgoApprofondie/diapos/graphics/Logo-EOLE.eps | 133 -- AlgoApprofondie/diapos/graphics/Logo-EOLE.svg | 1277 ----------------- .../diapos/graphics/Logo-EOLEienne.eps | 318 ---- .../diapos/graphics/Logo-EOLEienne.svg | 779 ---------- .../diapos/graphics/Logo-MENESR.jpg | Bin 9572 -> 0 bytes AlgoApprofondie/diapos/graphics/Logo-PCLL.eps | 927 ------------ AlgoApprofondie/diapos/graphics/Logo-PCLL.svg | 585 -------- AlgoApprofondie/diapos/graphics/debian.eps | 318 ---- AlgoApprofondie/diapos/img/cesi.jpg | Bin 60367 -> 0 bytes AlgoApprofondie/diapos/img/logo-cadoles.png | Bin 17924 -> 0 bytes algorithmique/INFAL58-algorithimique.pdf | Bin 440729 -> 0 bytes algorithmique/cours/Makefile | 216 --- algorithmique/cours/_static/cesi.jpg | Bin 60367 -> 0 bytes algorithmique/cours/algo.txt | 291 ---- algorithmique/cours/annexes/agile.txt | 83 -- algorithmique/cours/annexes/exercices.txt | 19 - algorithmique/cours/annexes/index.txt | 10 - algorithmique/cours/annexes/scrum.txt | 176 --- algorithmique/cours/annexes/surete.txt | 93 -- algorithmique/cours/apercu.txt | 79 - algorithmique/cours/cesar.py | 61 - algorithmique/cours/code/factorielle.ml | 17 - algorithmique/cours/code/factorielle.py | 12 - algorithmique/cours/conf.py | 370 ----- algorithmique/cours/control.txt | 294 ---- algorithmique/cours/donnees.txt | 577 -------- algorithmique/cours/fonctions.txt | 588 -------- algorithmique/cours/fondement.txt | 198 --- algorithmique/cours/index.txt | 19 - algorithmique/cours/langage.txt | 336 ----- algorithmique/cours/modularite.txt | 200 --- algorithmique/cours/modules.txt | 313 ---- algorithmique/cours/presentation.txt | 72 - algorithmique/cours/programme.txt | 476 ------ algorithmique/cours/tp.txt | 101 -- algorithmique/diapos/Makefile | 47 - algorithmique/diapos/beamer.tex | 268 ---- algorithmique/diapos/graphics/Logo-EOLE.eps | 133 -- algorithmique/diapos/graphics/Logo-EOLE.svg | 1277 ----------------- .../diapos/graphics/Logo-EOLEienne.eps | 318 ---- .../diapos/graphics/Logo-EOLEienne.svg | 779 ---------- algorithmique/diapos/graphics/Logo-MENESR.jpg | Bin 9572 -> 0 bytes algorithmique/diapos/graphics/Logo-PCLL.eps | 927 ------------ algorithmique/diapos/graphics/Logo-PCLL.svg | 585 -------- algorithmique/diapos/graphics/debian.eps | 318 ---- algorithmique/diapos/img/cesi.jpg | Bin 60367 -> 0 bytes algorithmique/diapos/img/logo-cadoles.png | Bin 17924 -> 0 bytes algorithmique/todo.txt | 20 - poo/INFAL26-ConceptsDemarcheObjet.pdf | Bin 39272 -> 0 bytes poo/cours/Makefile | 216 --- poo/cours/_static/cesi.jpg | Bin 60367 -> 0 bytes poo/cours/algo.txt | 291 ---- poo/cours/annexes/agile.txt | 83 -- poo/cours/annexes/exercices.txt | 19 - poo/cours/annexes/index.txt | 10 - poo/cours/annexes/scrum.txt | 176 --- poo/cours/annexes/surete.txt | 93 -- poo/cours/apercu.txt | 79 - poo/cours/cesar.py | 61 - poo/cours/code/factorielle.ml | 17 - poo/cours/code/factorielle.py | 12 - poo/cours/conf.py | 370 ----- poo/cours/control.txt | 294 ---- poo/cours/donnees.txt | 577 -------- poo/cours/fonctions.txt | 588 -------- poo/cours/fondement.txt | 198 --- poo/cours/index.txt | 19 - poo/cours/langage.txt | 336 ----- poo/cours/modularite.txt | 200 --- poo/cours/modules.txt | 313 ---- poo/cours/presentation.txt | 72 - poo/cours/programme.txt | 476 ------ poo/cours/tp.txt | 101 -- poo/diapos/Makefile | 47 - poo/diapos/beamer.tex | 268 ---- poo/diapos/graphics/Logo-EOLE.eps | 133 -- poo/diapos/graphics/Logo-EOLE.svg | 1277 ----------------- poo/diapos/graphics/Logo-EOLEienne.eps | 318 ---- poo/diapos/graphics/Logo-EOLEienne.svg | 779 ---------- poo/diapos/graphics/Logo-MENESR.jpg | Bin 9572 -> 0 bytes poo/diapos/graphics/Logo-PCLL.eps | 927 ------------ poo/diapos/graphics/Logo-PCLL.svg | 585 -------- poo/diapos/graphics/debian.eps | 318 ---- poo/diapos/img/cesi.jpg | Bin 60367 -> 0 bytes poo/diapos/img/logo-cadoles.png | Bin 17924 -> 0 bytes 112 files changed, 27779 deletions(-) delete mode 100644 AlgoApprofondie/INFAL24-AlgorithmiqueApprofondie.pdf delete mode 100644 AlgoApprofondie/cours/Makefile delete mode 100644 AlgoApprofondie/cours/_static/cesi.jpg delete mode 100644 AlgoApprofondie/cours/algo.txt delete mode 100644 AlgoApprofondie/cours/annexes/agile.txt delete mode 100644 AlgoApprofondie/cours/annexes/exercices.txt delete mode 100644 AlgoApprofondie/cours/annexes/index.txt delete mode 100644 AlgoApprofondie/cours/annexes/scrum.txt delete mode 100644 AlgoApprofondie/cours/annexes/surete.txt delete mode 100644 AlgoApprofondie/cours/apercu.txt delete mode 100644 AlgoApprofondie/cours/cesar.py delete mode 100644 AlgoApprofondie/cours/code/factorielle.ml delete mode 100644 AlgoApprofondie/cours/code/factorielle.py delete mode 100644 AlgoApprofondie/cours/conf.py delete mode 100644 AlgoApprofondie/cours/control.txt delete mode 100644 AlgoApprofondie/cours/donnees.txt delete mode 100644 AlgoApprofondie/cours/fonctions.txt delete mode 100644 AlgoApprofondie/cours/fondement.txt delete mode 100644 AlgoApprofondie/cours/index.txt delete mode 100644 AlgoApprofondie/cours/langage.txt delete mode 100644 AlgoApprofondie/cours/modularite.txt delete mode 100644 AlgoApprofondie/cours/modules.txt delete mode 100644 AlgoApprofondie/cours/presentation.txt delete mode 100644 AlgoApprofondie/cours/programme.txt delete mode 100644 AlgoApprofondie/cours/tp.txt delete mode 100644 AlgoApprofondie/diapos/Makefile delete mode 100644 AlgoApprofondie/diapos/beamer.tex delete mode 100644 AlgoApprofondie/diapos/graphics/Logo-EOLE.eps delete mode 100644 AlgoApprofondie/diapos/graphics/Logo-EOLE.svg delete mode 100644 AlgoApprofondie/diapos/graphics/Logo-EOLEienne.eps delete mode 100644 AlgoApprofondie/diapos/graphics/Logo-EOLEienne.svg delete mode 100644 AlgoApprofondie/diapos/graphics/Logo-MENESR.jpg delete mode 100644 AlgoApprofondie/diapos/graphics/Logo-PCLL.eps delete mode 100644 AlgoApprofondie/diapos/graphics/Logo-PCLL.svg delete mode 100644 AlgoApprofondie/diapos/graphics/debian.eps delete mode 100644 AlgoApprofondie/diapos/img/cesi.jpg delete mode 100644 AlgoApprofondie/diapos/img/logo-cadoles.png delete mode 100644 algorithmique/INFAL58-algorithimique.pdf delete mode 100644 algorithmique/cours/Makefile delete mode 100644 algorithmique/cours/_static/cesi.jpg delete mode 100644 algorithmique/cours/algo.txt delete mode 100644 algorithmique/cours/annexes/agile.txt delete mode 100644 algorithmique/cours/annexes/exercices.txt delete mode 100644 algorithmique/cours/annexes/index.txt delete mode 100644 algorithmique/cours/annexes/scrum.txt delete mode 100644 algorithmique/cours/annexes/surete.txt delete mode 100644 algorithmique/cours/apercu.txt delete mode 100644 algorithmique/cours/cesar.py delete mode 100644 algorithmique/cours/code/factorielle.ml delete mode 100644 algorithmique/cours/code/factorielle.py delete mode 100644 algorithmique/cours/conf.py delete mode 100644 algorithmique/cours/control.txt delete mode 100644 algorithmique/cours/donnees.txt delete mode 100644 algorithmique/cours/fonctions.txt delete mode 100644 algorithmique/cours/fondement.txt delete mode 100644 algorithmique/cours/index.txt delete mode 100644 algorithmique/cours/langage.txt delete mode 100644 algorithmique/cours/modularite.txt delete mode 100644 algorithmique/cours/modules.txt delete mode 100644 algorithmique/cours/presentation.txt delete mode 100644 algorithmique/cours/programme.txt delete mode 100644 algorithmique/cours/tp.txt delete mode 100644 algorithmique/diapos/Makefile delete mode 100644 algorithmique/diapos/beamer.tex delete mode 100644 algorithmique/diapos/graphics/Logo-EOLE.eps delete mode 100644 algorithmique/diapos/graphics/Logo-EOLE.svg delete mode 100644 algorithmique/diapos/graphics/Logo-EOLEienne.eps delete mode 100644 algorithmique/diapos/graphics/Logo-EOLEienne.svg delete mode 100644 algorithmique/diapos/graphics/Logo-MENESR.jpg delete mode 100644 algorithmique/diapos/graphics/Logo-PCLL.eps delete mode 100644 algorithmique/diapos/graphics/Logo-PCLL.svg delete mode 100644 algorithmique/diapos/graphics/debian.eps delete mode 100644 algorithmique/diapos/img/cesi.jpg delete mode 100644 algorithmique/diapos/img/logo-cadoles.png delete mode 100644 algorithmique/todo.txt delete mode 100644 poo/INFAL26-ConceptsDemarcheObjet.pdf delete mode 100644 poo/cours/Makefile delete mode 100644 poo/cours/_static/cesi.jpg delete mode 100644 poo/cours/algo.txt delete mode 100644 poo/cours/annexes/agile.txt delete mode 100644 poo/cours/annexes/exercices.txt delete mode 100644 poo/cours/annexes/index.txt delete mode 100644 poo/cours/annexes/scrum.txt delete mode 100644 poo/cours/annexes/surete.txt delete mode 100644 poo/cours/apercu.txt delete mode 100644 poo/cours/cesar.py delete mode 100644 poo/cours/code/factorielle.ml delete mode 100644 poo/cours/code/factorielle.py delete mode 100644 poo/cours/conf.py delete mode 100644 poo/cours/control.txt delete mode 100644 poo/cours/donnees.txt delete mode 100644 poo/cours/fonctions.txt delete mode 100644 poo/cours/fondement.txt delete mode 100644 poo/cours/index.txt delete mode 100644 poo/cours/langage.txt delete mode 100644 poo/cours/modularite.txt delete mode 100644 poo/cours/modules.txt delete mode 100644 poo/cours/presentation.txt delete mode 100644 poo/cours/programme.txt delete mode 100644 poo/cours/tp.txt delete mode 100644 poo/diapos/Makefile delete mode 100644 poo/diapos/beamer.tex delete mode 100644 poo/diapos/graphics/Logo-EOLE.eps delete mode 100644 poo/diapos/graphics/Logo-EOLE.svg delete mode 100644 poo/diapos/graphics/Logo-EOLEienne.eps delete mode 100644 poo/diapos/graphics/Logo-EOLEienne.svg delete mode 100644 poo/diapos/graphics/Logo-MENESR.jpg delete mode 100644 poo/diapos/graphics/Logo-PCLL.eps delete mode 100644 poo/diapos/graphics/Logo-PCLL.svg delete mode 100644 poo/diapos/graphics/debian.eps delete mode 100644 poo/diapos/img/cesi.jpg delete mode 100644 poo/diapos/img/logo-cadoles.png diff --git a/AlgoApprofondie/INFAL24-AlgorithmiqueApprofondie.pdf b/AlgoApprofondie/INFAL24-AlgorithmiqueApprofondie.pdf deleted file mode 100644 index 3308e9207d7b5aa011a7ae9594bd97adafa23762..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53799 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

VlVdR z-|JLWgh-th?)3OLnWcNM*-Z2+)tJl~uPUS0IDRir(n-^aJ&o)ubgm!#VK&PqCuK${ zQ#<08kyvUtvez@9?#?rwf}6Q8kM>vZ*Ey4^P3vsT4zn=L{zI!wcaJ;=|9m1oZKjUu z)MipPqXsf=`?#JX?jBp=IR2PyC@}9Oc6O9YLJNA}V}dr3$5(RtEWm8&+ZfO(1Joc= zu!NQTJ7^48&J_DCd!S;R2gmZtRBi>&UYrzEX#EP!*vezKf6!;wQbxx4YWREys*j)* zu^q*P_0dddxAtCh$lmz5u-I55a86s3Vm{NUqHH54QA3$0S!|dr} z@=k77_D-HC6jNz;h^NX|J|w!|kXdMY5+f#W;=2eC7a$=1_eJzCEUwYIB}9;fhQRzj zNe?WUMVS90DigsgHVUfefvdXqcF#`@p}6(RQC!A&hKcJM=6R8MMhh7*e7I77K|oi3uMRclz0?GgK8cWx<{P zED@c*@ICl-e(J~wDeL#4LCMDN>?udn5s&OlD#FS zjo{m^wu^H51pO?Y8R~ptbOVtn94WscMMwT!WxVXMA*tm>*XkJiR@)?din*miw4a3 z5!BvE#Z?Xs3t3_3Mdfnscu4bYLVxetgak7c@#PSwg01v<>jUoR!hX~yx3l+n*7x9F zy9KD$@6D@`np@b%P#E?}o_%{)_8Uj*q%c*GkmaFQ!11z{8|njz@lQ@AvnuLTB<#ZE zHu`SmX(G@o4T}ZYriP!@Drnv1Is~%{DObbX#rhWz2wE3eKvt8o%Q_eY zG2l3CRaM9jio`96XnPhTa)*WNq%AETDJSEpjK{Fe(a8E!bpdnc;DZ^VT{Y)P960d1 zx8JT44UF{%ENX|E+ahYxv=cXnh8rl6-;OWV$cFp5vnj^{@;$s#T@o1ykc~74|JwBSAT0jRwL;O!KP-1YC$btWt{oA zZ0&SKPt53CBruV=zoKIxF*E+yQ?K4GzJ0tu{RymDGSoUJE@%-E5(C#lulak5I6L~6vVsG6NB{$=Y$5-Yx^Lp;y z%rptZ195X-Ea)%EQ%=8<^CrCsGfZIS)FaM>_gL?$gN9Fy$xzb~zmvU?7JvMikH)ON zsiE=TzppOSglHDy>ik|AZw*}z612FtCG-055iy&oqNh(dc2z|wC$dq!ysX(UHQ}EK~p~}UYvjGM1niD zzGhsr9sR;`y64^eT97U*HT+K8LD*@(VZIIG z8dv@EL_Xe+*R_r2+C23`yA*9>WL=JOj$t(>T2yLe2{w-yzt{;6_qxMP8 z&SasME49jw2KW0*pW7ai5NT1Qq$4v7o@uSCpOA4b(8)*Y#^?sbB&g98%m}Hhb3%18 znG7l19fiN!PJt^Q`M5|U6RFz6dY*{E4+tt`1(F(M|*^zee--S?WL5( z)?Dfc7nKItNez1|xhFx7?XePhB`YwsJYyjVU*TGS&z#dBOhmEFsPhJE;cmxjrKWPh zTa#@pL{=-bG; z4-ALl+_c3)sN$IZa?!8HY#d^1`}1(^IyHE6B%ZFcIx5w+vWy5(W#88{X|yS^Vi3a! zw@dV2Zg(JOh6-`LJP)Iv240hz3f!e#qg6$65HOp?RM^()LU|oAJ&vfZvrB`Eaa0WZ zR4}Czj3YTb%*6&G@(n$2@4{H-xU9I*;d}qgBmd^z<#)_H>IpM-;jc&hdw4sz8MKOs zIE*T=gqI=o5nVI?I+5!08agv~fLU);yX%+c$BTIQYc^F-Cup(KGP3OibU~@!F!PHk z*Rs3jZf`||71M#@m9EwCm8>cMHYQo)c$Td}R)?dVb6IVbueHip*hQzzOGIQNZ9>$i zs@Q^#oxPoWm9vss@t5k(Xs7L7kj8j?EL6u$$w2r={-Geh6@-?%Q8HRFnPBaA<)5c!r^{O>YH@6s+GsB* zY`19m&96C~-J5BSe|IqRV*S0C=<>4j`K^NFaITc_m-9M(Lt=sQq=o}dQzcyX>IQLr zF3sJct7Is4p{uPVI!cROC}JT8BLdtxhs;!aNMF}-51vfUg=KiKxk3s@rVIvV3i-s@ z%ujGZh@dm>vT^Ax*N_Mb>$5Umzc;kvk(y{Vp$sKIxpf)zd@rU)#F8l+@@^ zK22fkvjerLEPN@#-X*l#@|bh>^n~xA8ka}^_=hE4iUM8ibYg}Gv0eQ-<(R@nRB_!+ z^s;?~Cb^P1rurj{Tjkj3oMal^bP_&!5@2LQDEy=ja*QDL~#Jy$a4ekB4W zK=c8cK3XqCoA&hvmkenk>zp;~T&ufabo!!+t^BK4JI8oHuMR$;aj!i7YB1(1^rXQp zVl4*U?RMK&Qe~2pmOV6UJVmAbqG3EERt;fxti-2xGCfZX)Wc;%4T8WJ{j?F5pNl%b z=aPM)I2k``aRkMB78+*bgbOT8Eazh)UQwE>{4Q0C6)W*UQyTa7I{Ay9oCXphpkh7q zjw%Jjf*i#&A)M)?xzmzvOg+wN1k>U815Fkd+wT@8HVV4UV@q~zTH3ORATE~$Erye#3*^|IASpoGkw=3%jK8J zvJfuYvy3nWqiwz1I6bDTHMg`XS4LfPmDgk$7|G1PrRNeoKSC^k&3A8UxoF!y&E-zP z&V{%cpa#>Eds!<&V;P0hhEls|ws=Dhvn&AR5MJqxwYPx-BIC7&ylYC$o*a z!3P0#eqZ|!x+ig!kxWx#BJg9AuO1F#Z7a)rQ9Uz$ImRw-X;_PIUbTN-tNk3?L8C+U zFKz7KI{CKT3*I@6K&nCtC;nOaZFbS;^|;{j9qVF zn;mA4kgf2}YsqRUlM~Bd)e$1~yh*LabZ;s*dYNi0*GvetOOIRw>b2u_I`gvKRXkMl zyhiVa*SAT7CVOR6k5m-H%;qpG$8?%)j1V?jpMt2RB4mSP4IGoht#f;h?Vc^LSmP(l zugtWGWeKmSyAcZVA~z`a0WU6*5!G%86uX&d55~v>gs$)`m%^3!f}&Tys0<()zahh3 z2f-G8LTp>vrM*d4^*i;+r{-l`U*5e6()$n zqrz>DJ3-bB8QY)KW>A>Iu0$+3w9h1ra!oI|bg=CMTT1AnSxLv3EF z#7t@@@j4H2yE7HeclL(#1RZV;&Z z3RMngn(uu0))9^gf;7dAK3T>yqv$>Z@7iWRJDGS-Js0k;edwDnB~oHpPM)VcmKw(z zCu|;CC-WVSwYd@}{y#%!?AK+fzhIY9tUkmWIPpL_%#95>QS!Jy2U*{Co>_}<=5rYA zv!09a9bCyT`gJ^6owqHjA?5Zz2Ra8c_xN`buL*OLpCsEbGymSZl0D?sKYjgl`GEQm zCf(i~WZzYO1L{mp_NZO|dNL`39p5t9BJ*VD8_*rH>E$`;<}>_>?#Rp&0FBPG{u(%z-bPNFN+jPjo~rzq{yjM?c8gxF2pbu4`;7D+Sp;=Umb;`=`Et0%U)!4)O*( zNJA3}od3Hofb!}S@hYvgllp13>tQkwnKGgiYVT9XHvOx1ddTsiEy{o5>Js+5@G-PD zfNMlz`VmL{*$1wTV7t~&E6n_pj7BUGk}bX01#0Z?WB|)~XEN?ofGM)(pPK0}O{)-b zSD%L8IZxNO6K1f)U6F~S4UbQlCti*{oF2QMSK%e@P0H4q z;tn3W?~A96qyn*go)~YrgxC`VejDPDQZ}A)eO3HK+|d}F(Dbpc=_n;W--$29LY{uY zQ6t(r$tT5jrumkip=nEq}C*K`J-ZT)mlTgw6pU^PZN*upOV%AFZ zbJ`jx>@lSig%eTu+s^UpxftpfKIj=9-|vEda|Q(>;RI{suFOcuFh6h7?w&}w{`?aj zgyeE{vvmWEdBQS;gQjh!Y&z%Tbt4O-mTr$+j$o$he;hp?k=?=FiQQ4TL%k!khkPJu zK7L3n>IULh3S=zCHgEWA`-of$O`r`)+)ndUUaM_xOL2U8>@vtXL|QHI^}8Y)i*;hx0ry|;rrmhZl8t$qQZkMtCaP6^4N zn^&|UVOPNleA%0w<2+Jv&c6|xuQWci1DlV1uEiMm`MhslxGp+UyW6_cKG$j4Yq@F^ zO=9+K$Zqh75;(DLuO>~2_L*x^Gqab(i#mQ!t$G9-aIzS0-1H%xxt$T2pR{gX(C<)Q zzI@w%#iseYGd%zB1wIu<*#m!56lNsd;QaB)o}6Zk+QK$vp=ERLiC2h&!1)o*7@!fC z#E~k#FX0PThh~%U&sPt`R1Z;6k6?{rdJgq`3w_9=4pq{Qy#aBR4Z>C>8e4X=S;Dm* zcgddhd{0Yu9_RAzM^U4u`#kY>Tw>6{XjWn65j&2}w;r zlCLj}NC#mN;94e3U`nhR5{a;>pAm3_tf%7aAcJ^-I+n^^*jd?F*jid^a1j1*Y*kJ> zKAZ9%bfdt&o^@VDiHdq;lq7#!-dm?(GjV_1Q3FXcLKBoILH0XZzKiMGKC62w?7G6I zp7Pcs8~b5wlM6h0;0!u!uC=&%N*cw<_r2O?io-pk!x;>Fdlm}z3=E4kl_Dzs$@L>A zF;sTfbvvHITGWX~cGuVSX|#{Fbbjoo=U{Y_@2G3r)^#)%wqn;=t&A&<6E#*50m$+j z*3D%bTAe==GJ~8)_iU+xYE2tl?yb{)1w3Prw^rM;2arlCTE*S7qR>Va|Pi=m6G zMW`s8K&wO6gnz$v71yHs>tIU!Ge?W-)pRWaYsDZK5$-j2jHub3!Kr^qs=`v@7fz?w z)G2X}IllBqdhHncdd*aNCfwTLr{@*i;<~~Df0OMrlfST3gBu<$<)-^fjy6=9t?+OM z+XWrG@JF`bQJ;NJ;6#V%QY)AF)xtDV)D}6D`o{X;W=tEcdC}jTZjs^Eob3VF89JBU zhHlsu0mX#I+Dl?(o`-`A^hPf^Mk>MgJOTwJUikjargEF>nIem+j&FAk#jTSUA@=WG z9o{yZG2SF(mEsi9aUy%QlbGcqI6Z=?KU|95NyvU|6zpU^!q zcR|Te49WU+b#(^cr2eaTC!Dg?_o=jwA{O`t-6IRI=PW$3&`sS@f{1V)K~dx1HR^|Y zniIHs8BBN$%^XEa!4w)udzS0RuTFnbvHUCreBa)+h|t$(2+vVtBwrIAZ%@iXa*S=r zg3}W~cd?;8@2id*B;J-i@=?!pWJKVG>-$9hh3v$V%ssf|fZrd|Cg6y_hzF1BH zB}!UUwX<<#dgw48WIV%X!(qXWVfVxFHAO7YFg=8vi9thAz?Z)F_quD(vl&C!A}x$~ z;jlNeGU*M7H9slZJlZQ45KFw_I}E6RIkKhg(BFtS;y?<$cfV+6kqLSrbAvtzXybNb zj8KhsV~7)ET9S094e4p(#d}@t(T2xs*7?RmpNt>;54aJ|S}O8c4MCW0?tbGL4k?!8 zb6aH#xtU{^_m+s;g%7Dp3sT{33Vn(?YuK&CZ~ghgCn51!JsAUZLUHbuyip(x^ve>| zSEv5bA5+cv6>)>sXm{+8v9K4@_H{|W*8_qhJA>6tL#GtV}z2M+il z=nyIIno0hV-s1t>$iG4XcPc#51AOwYoX0>gPlyrk$vs+(K`2|}Nxgup!lWNaSFqqk zP@CwsO3FSa?&}Y5BIwPpM+)dIw+#=*2DJ%ny8tr^ue1Q2*%2Jl+nj(&Mb|*pSBsQe zHDE@;6%eee$nkSq0w5><1OpBLelIlQ6Wvxwd4dN+0lybqeFbxX;Xr4FReyVQ03MWm zlxLAfK**n(6@P+}8 zf-G~dpa6-}cy#%;2;g#HhupRYkS=mr3W6@D3fuz*(q&a8_dEk9a;rjmL;;72O9I>Y zfL`E&lDe2aEtnOks-%ut8~-IuW}5~;4JymBB?s>V6BIZCdK3Xtlr#lZ!979%VIVAs zCW|4n2LkK{JWxy$&gM6!g*wV*NbR8kv;*BK9hHu9rX;chdZYo&lyyo;ve^+r)L<;Y zIIuv$G-paY+fRrW%mq*a*#gZ$bMi$6@*?^Gup|JJQ3^(Y6U+oa1LOlGDS=9qIr8G! zzHnHBG{nJRv){o&d|)1cAfOp&Pid$GFMp+U)jy^LQA6o!V4O3R%;-So8${j$YNF%- zaZnn{S1DB~R4G=;Gbk}AFwEd0)xq-0%qdJMPRYwF$t%b!%F9P7MJYthFp&ZKSQLH= ziVF((<#)+<0l%WUh70-kP=e_x@e6Ikdk%pgBHPRzns1=ZA8!aUZ%I93K)$>yIe-|* zQ(&7AC`#ETw|xoR$i1QiyHLJGEIjHm#$s<(0yiR)1-h?vDc?Aaso-40dQuscc)K!x z7r^?mQ?|)&*C!RDZOtbYBWz&;eDbcCXkSo)IyvC?3@qnAJz+qdEbx2e#v>1SQ}GEI z+zZUey`pKq#L>K~1igi_eV75{reC~qnCBt!bJ%$#sNMY=Ua;$`{*#Ya-@sxZ9-(ar zaFE$F>U7R--4UGG^egBrw<=M!E=VZ6$6C`Wu7?hQI+b%-XiErA2YSnHZzQ3e(S2x) zabRwJ2e=G|pF_CxhciQ5gyWceSwmxXhFts3Y!AVouVJ05;XFmtI78DoWx=1#=_75x zKAXm_@PyXBEec@o3nzeBoL#NVwWS4Hn8tdGJLt$b=!k5OBvoVRagV$GpF9o2d4cf$ z%6tcEH|6$s%07uT_LhQE?kSW??ddSVD1ex{fcLBA6aOaTa;pYwOh&r_{-~zdh;0QN$F2E1df@}&m zRbFFMk?Lpt*DvK(7Ba4lt7UX_1OGO&bFI>ZcKS+OWf zUN$>i=#LNxj1K4rhW<9sDFg!nlt+}NAXCaBP!T1i0Z|->>i^9;#VGl&gK($u9I1IRB1eRBnLAqe2OVDC8LpL7K>A-w>12vdUsgnr8W&@U8I zo4y~2N0kCLQ138DlL9t=j;K()aCbCQ%mSUTFPKxa0&B7-~@MG|6z;g zFe^}Z1|(j_aW}5a;9C&QU$bt^o>9s)!R4B`9&|t$h$g2hs^=?M5P(QIR>&Zr{~g>6 zJdi&soD$P#18V@?L3i@-O7IG*he|`a|C%hNh=YXKzz{I}Fof|kSTOW3#4wOB315UE zXVF5MRv`y{(FHCc40OM|@J^v+Vf*Poybw&?3UtD}ATzuWXO)*t-g~j_y?jS$rnBCd z@tB^VZO3M_xoForJkWVQ0Hv<7)!vLd``)r$uDzWYPd|^Rx=*e)7pqkbSA|4dS#C^u zTudOh-yo~o$==%9OkS<_5~9`yZf9)w_nrn-;_-b!*x?R(L?OgA-Zg;ZT(^CWE1>OF zLuH0-n#j^GBOlJtZ!R(Ox?S0D;$D0JEF_c}6?nE`bv9!$!&ul2u5{NU?XA?ZQMZQd z(fzWhVKrO8D%)SEu}D$7uh?iVaXBbaDW%h{H<;fo{exZ6VvbphIPuLoUU}Kk`BtOd zhYK-REQv7>l4~fuUwyd*O8Sfb9c1j*z!gBRE4eFpKbzS-@th~u#mv<1GA2FD0~?I> zfC7f~!2Sd4et3z0l#ZP;%k6TQw(%jaduchuPdzug+FD!K$UV2bT3=i1Vr(jUi6m}= zT7NIQxxBE7Ykpz1yu7wL9bO1damQN@Ml}Aq_os7yf_5TT*3WaQdZoL}x$T(aL{H5G ze_W5Q&Y=EWXjO$x6&Wt@dl}uS$^yZ{FV*Z6etpbRCoRV@^K&d(rL6tBNsG-nK-2>p zZElBTyKuYI_=GaOyieA5B}C`qYr6T}lFgE(Bw6B_jk=dy8WAOguB0$-L<-!mhucEdnkR_OUrQdX&MIRFD#LNM(M-( zz|+XbdQ$Oa2=34ZGvQ{77q|Ufy$Hd&7vn?2D!$XZ)imv1+V0aWqkSZil#lI4%eK?$ z0^B0ZHUx_gL0%bQApds;e8`~1SnAV7;vw|67{cM|$S#IVv-K-~eM%@gfg3Kq-=SO&z{4hbiEumNX_}*T7 z`Do)uN-LpPL($PaU&`)H-I$8LRjZTU7zZZJ`0^`iYb*E0B|Nn!Qw7RVhs4cS^^3>` zvgRq8e?uQUE7ct{#1pGcipT)1gN5+#l7G2}{Bh!p@A%!=QofEi+<*Xsjz%393>D2~ za~ZfWwmC%Oha}cT0_A835y?laOzfcf7KyG+_%v5}hyS;)ww!AOJ*Ag(<5O>SfG`SH02 zyir7Zty;yvZ2NV!3kL<~EhtVW3_ZDOWG`{FEtzQ#%e8vp^s(DJ8~me#OAzsqKO=B^1cL#h4%c&%4-40E52UXXh`b| z@>4c+oetk6noE)Nf7c6%Hf@RRCnFv>okwR~luHAUe7yM0V^4^`jm2hOc1Pe{Xet>Y z%)^bs;?`n3Y5+7#8g;a$qijlCR42?nh7F9YjOgCp2j*+dYwrDcx@+15oDZLQw=V+G zBg#w@xGJs`I_HfVA`EJf`WW%vjl<5s;LOZnw?`{EQ zv)%HXms*N<**b(QSPvgVh8sSmK$xyB@aEVq&%`_YYYpQf5vYcg+YE9uEw+T~-1GCS z&*t!t*@$m(b-?zc(`8mluk;MQeo6*DzU$WQEBfS(Ce!JON5qB)lG{C zcx=3SdUd5p$nnDUGSaQFBJ-txe&50yHYSL#T1_DHMn3K#_=wE`xiH~m-JSiPGo>ID zW{J9sPtyA?xpwgwRtBnXyg65OhJA8|8%p_uA*1?AbWD$w7HX?5Ed9sp(?x+)1@#~= zd+**xB}$2HxD1j)8tSHx zxEY5Wwo@aaN!1!5s=CJO>{}~52bKUT87KL|VDc$P?2KO;id_S4V;C)fEQ4-gX!}l| z2k&?=@*>EgeS<3WZ+kPGeelyp$(18o*_TKA@Dc_u{ypV@ckH((J=1QZu}c-)^fz+-#f)|w3DGMBw16(>gbDieJ@E- zu6;~(0~eY$LX#{?j@~VJrF;@D9z@`gSuO0fT*P1A(T)<|CkF)1=-85_~4qs<>81+1i>!AVv?5p~nFKupTyn4>*96zJ5^N8IX z=c=*!AVQ`XFIvoGvclBs+^m?d{AvzZj$kT@_0%0&I`ivTlGiGs7nNt>j45di_q+`^ z6eG5B+`7`ALAa1&mj2E*j5Vu2BV0nTzCWzS73PMrizi_);e4=!$v|l>ZTI{HXK#TL zUuKFN9zb;`w!$S_K|{$9)LRqP|2vF1?9mvL3dqFa_SHy)s~ph04>2Kz4~QUGFTG}( zMcg$I<7DS#wir^7_tI-?*nrwM?5HSo}m^Q5!bH>WIS>Ti$Hip*S1jyF$fhtFwZ*F2qy!O zIhBS)PB=E+h?cm2QwbR&T54$l&43E?_zDn8G-03FyFMAUh zYlw(aQZpOIk29NS>{01jp)r45=E;99InH%3n$sJGP7LamG%+JWgLigu`M0DMMQaev zQvMNwNy3D63U8;b19*v}s`_{yurtVYja~l9Mbe-kuXJO0X=%qgQU2F1Q}>->>`nJE z62XJHqi>tyg9TgM^t|bQJ=NOtG?1+;wbJW!;GysJ;(<0m7~92lZMG2!&CvSE?Du2W z*y`W&wtZK}kMLFg)y}&NWF;-Ob;idrkI8Z?zE8THO<(eAh8$*jl$DsY)taAhNfyyq zoJqR2ih1|f<$uV8Z2yYqT@4JXp>i}OGCNZZnBeVP!iEfx9=_Q)8uSOw#@dj zX}=vM#1DrEDkMc93a_8C-~IDD0VyjEs+mfwc*A;)8TYkLDj_1fxkvxj9?J?1+wGpf z4sEv_vf38*N04EI(~u7us~gbOR-A^Ox(+R?md=l$+jWIz!JGaV6Je922a?WfRK`f*af0QvCks<(JyIn!fjVr@);z2RhIt zXmTj7)QF*{4sZra)3KB~8hmy$&=Kew`BBSWC--YwDOb%%t?tjjn~pQ%Vj)H-I)5ED z+gECpe|upZzxn3;QSuIIipL^eYeH*6fzCBT!l7Ro*NnsiZyzm2iIPebX^KO4J!Ki^ z>Bf%PuH6kuR`<+$|9p$jN@z(+LCbM&>*VaA7ZBQ1sK)rAz+iSjkMjsEtDP0RL|vf! z)|K<(mS9Mr0m+%b-%?SBUdXZXV@F5ALd>D?qD6kU)jK*F2CN|;h^^_AZ}!bt88339&M#$ z=z1oq8}dWEvJ$F;x=YIom4zGQo?MIt-LJ7_FbDHk(R1p$Bj<)-HyssUrV|Q^)G)kN*S7%k6h~ zgib5Jd8pa)y9x-hq&9q@?HN}DqM7}!*atHCBoTf z+tyw6qIh*|SwQqjBd16!gho&CGnx3K4J<4c($`ZU3Q8FcjylvCx3b`ZMW3eK$>;XM zmGfUqDnCT|lr)!7fZYPkHry@n(%_>(gK=JZ-&d-?h_5P)4G+Jk0_~pv@q5ZGo=$xTIy7jGK9!U?jRCn5&YjWl9>*OfAgf4 zt9>_CkzQNRM-!~cOP_EY^jXq7gzX>KzkUAcwX=+85-|L1%+ zR4SqSAaw6e@@L)WYC<#{^p}Cy!7u9#Qk?j|%ZK|W$%+iORUB?jq%Fq${Z1VB)r|mG z?p`n`BF4hP4i7n2wY3<7_09MF3;sL7wT?w~Rm7XVo10flWaFAXMiXE8Q-|j4v)T83 z$?mo&N{w}DOqzDaDuh&wNx84>d+Tx{^Yvg-1~&|N&!md}J-0z7`7K6c-cIg)p^9sn zF`An!%}pxTZ|u23Qwp3kk%+fX7l+Y>>uGho^-+kCHcA9klGaM^CS)=zm6GGIBwRSb zGwh{V)I!zyHBQb);RMv9CzI_C`pzC+#S&D8$hhU5dCjKVOj>pxb`o06x*(Nc7=_fu z95xS2TH%^)K`w6z`y+VWkGL|P9{l~!B#kqIT4Z1Q+q=;KD( zA6_!?d@iiiXj7Hnr)5G{Xgt9ZIbg3Qwbz;hK< zl`~kfD(c4Sug>N04;vF$DQLSMPSn)GNrN*tIY2NZ3$-0Lx+(P79ZGkWZ?nu-%q|kr zA4vGb+>Fqi?0X2E=Qj18p~|?Jxkmq5y1q0@(MAcra3)48=4_!cxc`uNWv?>+5U@4; zfVjrdg%cwmb9n1)wBDczZp&b4XO&&B9{3h~WshF_>QE!PStEy&q}kY%FF>mzt}aTX zpgN(U+o(U;tYkjX{5Uqxoq**zHt|cIf!5OKs#;#BziUpqU4wqXt&BWTqP!-lUM2PW zM%(svxr|e95PBft+E=IAP{enDhA|AZ2})b$mC&S%LN&ShznoC=~Vjlx2Cb4KyBg zvtp6QgOSgD%;1-QK${WtT`1BEHxNfeLj#QRY~HQ|FHu^v z!tMy0Qlp~iw3~`%DtU+Ue?GesFSh9WwSAeF5 zqQc0=ME57FDXgY%@}ADPw3A;F?PCL0Bj55!i>BSFR;Q}o6l#BEYjrK2R*T&uKPq1J za&WYQf#IC!t{&&Bn~FmPcjZMi7wr6YOYeU9Nwa$Igjb})WZo>mRPlVM%eNvYA+vq> zC(5*6qU)9k9`|CZPHh{ekJCPeliED5+93Q%)yw7rzfTTKEG|P-%B27$IY#>V8zh># zNi1ixy(GvL#}$_h?L)jAgQmhZ#AmIRNY3od&o@+NU};q*WuM$@cna0spE(@hWq0&< z_TL;(FJ9v6yv{QBXv+Cfe~W}}Z#F`tKOM1p)N5Txa;?klSG$;XlDIhbU z!ZaAXa^6O=ZRIIqtPe8y{ap-a2!108srkz7m7}x(-0(qW`qpPXKD;Q~EK^Rw%r}iM zkJEPCmvCy~?p~<;_@Eron7$5O3#Cm`0s6w*{~e~X2}?UJ1Y;^FDa&_o ztuF7^m2h6Ksh~g^Ik_5pZq69>_`spB_-UbwJB@{nQ5b0Rm{B>zF&(rQy1?SL&0NgA zTB|u>JziWl42?t`E%ApgecVQYk}1aP$2-Y822E!Zzi!1;GQj~-rUdz%>uAZ6h1>=C zyl5Lj-E^>dtg1vg%WvEIJ*Kjs>U6#vC^2F%GI8g_VlZzndR-k9@t!AeuoQOuw}$sw zR$nFbH!cOZV^4R+r1w8Lb@+6e*)U_;L0ydpx`(>=k%|_^LhBNuH z-&;aM>#RCMf9yRoy1^oy+!10vVD27|!X`zdFfcnEN05Nf(mT6|7u}`2o^MII3Tb*M ztc*#iS!_I)hAlbiTq-mc+^xhkbPb}}THDKMr#g$rc_-vVQ+;|McsRkl{7%lIVnLkh z`-ltBcPb{97KDwGL;)m@3W~7J?mdnaHfd29;bYUhTfVmgqR~uj_6%&z3uOs*-;XJS zVp=0XqCTVB`+uT&&z=1g|SEDJe~3 zRByX1^4V)xtixP8EbzIToz5ZdV9%GI0QSeUS&INgJ|%yQyWTl!fUQ+kj5A zB^TU7PL~g3c%;kkwQqTMvJ_TAwWO*j zmWrOR-t*M>aFbrCu9aisH@DH~ni0ey^K62-qcb0s{7C()LP2a!$arPO!u4mp?Ee z$0D&X%ewQch#Q8hzAucQWa>a8&mJCI!pvGku?S6lRUJ3D6&}vcYH^xRXsTERK=#B_Xd0VGW&uIbK!ujEm>4xTlLX%vokzbgrTYnr% zv1-ZzaX4f?g($DV~lx+jNbMR!wAk29=IDG@hHh}I}N0t zpYKN#whV8_ut8_O7qeG#i;}XpNuZigVQ3DuOIgTcYDfCG=emNRQ@upQPon0$8a}iU zDBZB*<&rLVM|nm#jszPK7qTquTiCc>gGDL$HlmKdU^-QdkWY{f^D$DxBKWbZR$=h$ zRe2-j9Jc=~E*4Z?U#ST+T#GDB76w9*?!WLUNRCaD@WbzdYxGxcAkIC!Qc+{ zu;YQKr)S10x7ySQL56d(WRIq%b@`Tjyqa^Rg|(bhRIzZieRXu4KsP)ydc0afqAaS- zO;cKlTuF(cIV#);8=1|bbFgIyM`Z=X7hQI#TWN`qSV4FaK=#(zP9k|ingVM$s(fbg z%`3|9w5RH~`O=r@d4p;O+S=Q52=>Nlc2KUG3MMKXpVw27M1*{nBygPFxcXNoXzfgL zn9NffSW@nI`lpgjK1FvboVh7pd~lL2D)7(Vtn4RCEh~ZwjAqu%BaWu9)f|)58ck#g zR7cf!3wmn@&lvUvt8CvceVo%=L`R;H3RQ=gxIrJoGL)M`YF*tz!P)(tXQ#6^{V5sH z-cvD3tJ<~EiYoJ1MpshXroqY(o=l-pf$KYHZZhlAkhMd;ENoq-I^{61YUDaPd%s`= zX4SGq)=?55;+HPR(0a@mII8mDqn2s!*QxasQ#}b2!!k9BRVTWN+Fkfd*$M3@NyO6J z_+(l@EARJ0c^W_nZQ@&@aR2;O7Yd{Z;oN#$OuAui=o}j+M`~mSxh}h) zB2}#VULT#7oU!^g0H<804t%BZl0JiGdY8mJWm?3tYDFtMg59-}f*AE}o%wMr>=+T^7O)=IoZ=uQ-Fgs}j%MjqBSkhP2cfyAEgXv(2sjiHMu|YL$r7-lza?8xJ%vRv3#+3G40cZ5)a!F2@sO z?;55-=y%Mz`42!Bb6~AwB4xwpeTK`@?Ikt3F?@IcEuywT3_hOy#5hO9K(YS8l${yT zx3DFHhw_OoJe)202a)s{WI1_`A4iT1>N@i4!8}gBMFJ$T;MK^aJUke2q9Q7;rkNbO zDVAk(I=gMXqx3P970!)3E$_+IclH!XxI=#UvNi78XM$Ja<0jV6yXbVX%==&LF68qg;2QQHtbL(%sz!+#=@VNhBR@la0iPJS{^7dM{bCd1)BaHjkw!e-GD*Bdupg^EPEtivil#jg|<@1wl6+ z%5OcpT@BD*Qd1aM;C(11Smm_zZnv&plLusv>6Oeb|_5 zxsL*yt^!Qsq79+Qf7zM0rw#&DMUvfT5AJiZB;Us*3DxlzJz_&)xaRhx6z{7J{o?3Ui zUp;i+xan`;E|V>pJzztr#&3`>Q&G=yS^{Z=is0z@>>h31sD47BtjE&2_F%JV@7>9_ zHdGX>RRLJxx)qbpvAQ`5B}gGNa`#kHO1{MvxUGLy9d_3^Ln1 zYAPFb)4G05yQtdulTCF=UUuG--}I_0K3Lat7SIWDPkR!Xe{PaKu4_b-D=|e313=Md zgi0uA&xT8&YO9AzV9?VJG??(~zfsm9_2c7t z47=Mdtg2<@4UbZ~H4YP8;*uiW`It33lZ$Zga~*on-f(VcaF))iuD7ajNY8gXnM`M| z`_3)dJy{)n-t)D?yZ24K*^Fj}Y9eFuB~6V5?6YrJnRGfF5vER8nsb?J++8e}l-;AK z%&hM_hNF?;BSi)JXZjuqX7JDU&hF%!TKJ8v92}*PM4LDJzC3mvNheI`s%xHReVG&6 zTR@8cA@_h+A@TzxJ9#I=vv1blKYmU8l?+JgN)$kjQ$MqY>>U}mqxa@r)tVr3VQlxn z(#IP@EFtbefZT3b5O1M9eX_}50FG*xz!L*<@yes}N!bl0EbyZg)J;)7$9-4Jbzl+C zfX$6ThwH-Elh2l{1#~t1F0$TTlW*)95Y+?qNG+;wztb659fo|nkQ?By4{4#InAv6# zH$%EGIJCY9AEDdH7|Z3N>Yx>?8?-BmddKenAYgT%u5wB(U(wqi7CG|K4H@ozxE4R3 z<;ch&kFt`kMqy};8sV1%$RyRxosUmtsYS*j4Ea$BtVWk40Vzf;5)#hIAa+ufUN5}K zr@M}&JS-N>WT=n9)^a_&=z8Q#vUASgwxS{K+7q5tRVSOP6Oo(R{G!GRKb(N$a>paF zzHT#pm@;QRf?gMZ`lS`*Dzjb&On|i*GqSd;FRic`=n_0g|j^t`H=iYX&+Xqf%qDKNl4K z0Iz#^3tvYK9mSzt*+)u|as@4{NUi~Kg5=5Wv=`k883?f}G%lS0JP}hw#8$YOzAe#j zxItpa)nSfJJ=x_qsGt2<$lUNY4h|iw*Ae2|E2*|{|8Z>j3=2MN#8M~XU}%w(sUApF zw9;Cm2&FHST{K4BlC-HKY!JR8#t(J@U!6q0MW~qd8J?JIa30OmWWxGgR!fRju$B$% zxDffoOk-9eV{^fy9<%R#cBZU*JvDe7CAT4Wy3j$@9149_E2K8{pjw`UG+aVxow~8(^w>pQn=2<)#F!^wY8wHxinF1k-ke3OA@q0{o^ElZhI7g>eK!j6rN@L zY-;ah4sC)T^e8;DzH%F;-2i7QM{+p7ER2_-W8rV46a~RZO54Nir+hP4yT!Q7QD^fM z&%8{eDTY{x6hU9&SKH+*Vvv%kx2)PmykO!A zV3ji-p<&0xq*#}HzU0%?*y2mwXeySqG`eVYpPF zC;nqJ4I)mUlVl#}04qaHMzf;ludxO3pLbf_UvFz zXyIW@L&#a=3a98%ljgbKA^KVTP$)>?FS4wg%*RA_<9;s~_k^6IN(LCPZb*5otsKP} zR}N?J>`5$SLge>E!-y+D+lmVsU=nsc*i9Px60Z-} zK0j9bq}RIhyqsWB5LDoE-mfX8)z0+)U7_$F|T5IHW7pf9Dig> zpB@mf)EA&CaXy{WnrZ`Cl`Ca&+tXMvB5>_|{K4b;ZImsI%3|I7p2N}!DXTXvYj=b* zLW5Uh?yH2@3iQaZ+(ee?Ia|Usws+mIk@>>d3{ic)X%a=qJT62V8TZq{p3E z5koQ|XJ_TgViBF9%;FP4l8&b}xH%(5v?CJ16Cu~>o#K$>*CKdd&*aeCPnZy=4zj=0 zOm|BKefyFaRJX4evaf_CpLtlI&g{SO@ZBAoerele^3aj@L5Qe2^rC*346~BQ2xqS_ z1i71>-%jnh2F1Vbap39F|1B#g*iE5Cki+})6C=prD5bsWELACN<{OBcK=FU^wF3Wy zBlMVKfEvF0-GW>+_2OJ?mRN|e2bUk74qY-ssime?Xrn-f z!BjIiqR;!rTp2+PUwnKxtoyAy@Sg*+qAUsq76)#&N-kz>iRx>yYq9g;k^&n~WFL^- zICVp5G48MhHY|lqg-nDjq!#__i9}I_0yPnapUI=9zhu<0aGN>@w?f1|C)$bm(1CjR zo{V6{kb;lGG#QOr-8>D~%9Eq+DiDq^ND+T|b-%tOkdPXpq#%F(X%J}r{=xzBIedI0 zZBl9lR>NwqOqyD1WhUZrWufrCD50OENU?UjDwI}tB z0ekwQQQorJ*AnRj#Xcm^0FYPVxh3KeLE*lb+)50)_ObNt_|=ZxM{(2HU#{V8C_2wv zukY#W{Rv1rWHFvls%|Mi4-XmgVf8j4D@x=?Q62G8GzIZ@Au6n{40c2_N>eqzYVsj4 z%@*BzW_<5v|Iq&V2{%1Bhx9z+^LpIs3ES|G?u0b9o)O-Jl&sbO|2 z>=(OeY&*gd^)Y`OlY1-5^!sO4b(=U2lUBz4BFFuw}+77AJKSuOHAg9w@^Y9kei z-+?uc;4S6WnZAqc@U^hmenT^Ok+$R9ZBRYMRAXe=a=o6}P1JH|*~vB5J|Xqk>Px6* zSAA`_rnooJq4={~F=yt!HD{8^Xy|d_ypwZLIrU;=@Tb?)w=BOpZnm|(Uv+V60)wYj z*^D&FWA#aDYkSWr?Ieo&sY9A{d9!;^#}rA+v7D*OM~%xV%GNo+PnfdVR`-~)f-`8~ zl#rXUU{yU}jvRH9z^S%qnH{i(B8hhiOyv7ANs;7LP<7irEZB>?Nuy2rZc{!WXa;H$ zW|6HPauSC7)ii`96nLj-Fo4(XNrz|rNBsn0N` z3!5o5rfmtI2~RAy4<@74gTYNZ0$4@_2r*dz@WDglrb*X?+=s&Vz!;^;1CfsgjC~PF zL2F8l#}XrPLJXiMP)&^Akw$LCCrE-dj-?uv%~!!BWwQkBeSkdxYtjkONPtY;R-l#X z0YGZn!Rfy>KE~}B3U-3y8IN1CE1udeT`_oF6R}5Lqxbl;q;|tC+d6lKsE7k$_rJ6q z?*FZ}!@~7XYq1SxMeJ9Y-@r_FD&^s&J^M#Q1_pctB}zo)pMo0?Qb)Kg^<;j_`FQPF zeiRFH3iVM!aoq2=GuFxHw^4I7<#j$k)_iik{i|)NiEp80%#HaxWz6S!;R#=x!=(WB?%RtafJ+D3^RgCdD$Kh*I;28CT3GfCXbGrlwuG$9cqigQk28R2* ze3guwr4>DG0g5%y`%pJtZyXsDjxDS@PKn)n^S)DV#gXJ9MtDU+WyB934ph^orRu$% z4t8Tc7@(vhK2Vts7VoSUeT{joKN3JmUcLh_o=1S9u_@X!E#4Cn&|8EIMsuklP)?06 zhF;Z%2Bc*TT{=B^hf=GYv5CHM}1I-Qr`5So!0Rg=L0fw)eAdtZn z$d|w3ga8P{;m$u;e?xRId^!FQ`s@2YO=9`mB6Uwk0F$zbC4fl*U=B19b?_k8V+JR4 z@Nf`wv$Gl?F{wI$Oh5o)W-ymCz#c@*@{+6yrUP6YT%FATF8usV%FYgEY5%=Kw4r=>Qgg>5^5Ez$Il81D}Ewx)8JeMFQ`T;9zQv^m6|4 z4OaYTg|WSGF#WMd0x^@ME!ZG&fSH3i;O`pq$UGI$nZh4(ng)JvAU?`PTh6~tFaB)6 zqkrQ&?Mw)@GcX*50_7QhX+8i2B^{9Yj9yq?5_fc#Auy~%2HA&B{FXz&cXrOzb&9EF zi+HZ8r~7idMre)yKC1iid$+^q(>Si~)!?8(|3jR|$AujG=UrHK)RynB)=s0k*TTi3 zRp3(z$Mg!&&NS15Fh$q8ZV&f9t=V|H)@t&7^7eh6B}j@BIbC0j5<@VgZt-?`RwpdH zT0dD|7Mg=M$@=oC<>%gJmMVf8ya%lAUbgz;Bhm&2=kOZeeaQ`kS??5|Tn=x>Y>6Os z(e>GV4kUdRM(+aRJGqT}4z%4Y6cBCU;U|O;qMOBsLJf1jjb{QqT0rAcXBZjIcIE2Y znh@4SSIouwy|?cL5@qc@M4loo4%rRmsfeuAg^71f)1#F`o?h9CzU|`L3K?r-6o{S| zmbY&xoPr@{h=yNcxi8wKyHBq@TPe3JsHtJ}P*ZPeOpzS4(1p+AosNxn&gFv|G%l-k+kJV{qu)lHZ9ur< z7gzz4opR~vhHmNUu03M;xe-b1EczfZf%72PwMJehC~Z5 zlqSyHquu_PfoYP2!iEyaWEGC*rzuia@lHczhRUt&Y8)5u%XX$xcoQMbXE)^!E8Wl& zGFUK*eXEb7^ESZl(AzH3b7>v->(Zy%`B#Bt$`QidQ1Q0Ntbx5M&wX%P1#CS%xNg$l zlq<1}r9I7E>3k>_meFWQ*-K`v1`jmco%ix9!y zD)lw2_;)|v(VM~X7JeXm(`3;RR$@Xjz?VDI2ooq;WR9-lx$CYZVuQFHqQg#r5WkS? zBD{~YXhxVyv}58O1Y+xe^ns&&n?jzX#3?K+*(@`8(tDKa_&iz@A6g{E9CQZoh6_c5 z--b?uno6{m*-p6QFVFH;R_qxkP8i-UHCIPy^ClA>J$7CnTF?+Dc{Z+5sLZ@$$ko>^ zqmzhUi6mqVP*#oXAvJu^!qbE$!zF8-7@ULS9FE24+Q_Th?>KgRWEht0rmqorG_oAL$XYBLoudkL5AyH5)8DQHdX+ zx&z;yl$Zsquo&_y``;gfmRhaSsv@f41CFF07?ChG-yOV$2zbE?p#`qA zOnF+Rz6H8?Qeq2jV)P2dh&TP4PIeLUEpdQEeHlNVqoBgNxS!(eyfGVB8Hux8VftJb zlZ{y}uvhNT%It^e=*qjqq|pPqUz|y*!uYp7sQv{>vPDO=qxQuiOvL{(&h6Q{6%igndm8@Nrh=IT8? z@cHNzVJ*J`ILK7??2R5)CZcM(D=f5JrX~?sbFxU;5RfYq-l^_snd~b0$}6AVs1kHI zXMMZH<;ON`4{s9UDGh^_sLAV#pd2-T(Y1yqpG3ST4>P`jttGLImqQtFC^=8AA0bmr z#`JB(pt=cn)-fbMm+%Y7pnnHZ&C>>ZD2|c1U-ITUq*yr}rKXqf@T2QvSSFr=)hF;< zotQ7;_2!YrxFSg1PJ@u~zn`?Ua&Sc`$Ff_IHDd8^4S5Nrn&_B6tmtd@GqO;HG{p-D zz@t~5ehMmN$7CN&(JM%*)o=&B$7w8>KTqGf!Ch~jqHh9jcKAwfexXWD z0P`pJR~ntsK#y*^^&dmt5wLB|iIeEoyG7R$TMLn}kvE56@L8zB^eOG5>v@*T`=?f< zEojmYz}pWZGR%f!yMk5JgMmbKNb?dHXCuhk1!>W)qyZQw87cE@-k|@zuOZGaA!u-^&VW6DI`gt) zBYRO;poGzCCDapf?R{A47U~i;NAbHN2UAGm+6)uaC+k;Nbd(6&&^f`qOw-LFir|^k zn1;dz@k&=SQf$>=5JrpUMrk49Hv_Kfl*f0t-8gPtzhK0nc zzoLno+ip<|x?rR{hCD6~M6Xjl-Gl&WZ-hGGmIb(LBIT~bX2-6-tDJ0+_Sqb^yj`Tu zV(sjy@r7BFn|Zs-X^;rVw;Ix1TuqDQZA5*%x2Xp?*}>jy=s_c9X_&z~gn{fkM7)AB zB_jz;(VcTNQQy)Y&_?PFbVEpA4Kc<=7Y?W~jZx}~jaTI+<%cZI#1%MR=3V9#4J*MCN>6PdHb1>p&%tnJTtC=ahod z87-eD<&4)Z`;qcXnM=tO<@_=BtK(}6aoJ#`0^7xjZ!)#=6^7fOHCLU;@edbb19aFG zt);Y)DvJe)ji>K*4{^feCpC6l>QJU$vy3ghLm^Pi`&dZu+OTrTH*pBjD_qqmv6OdB z8G^BmOg`oF;DNHspls`ONce{#yeZ`YxrZx&`~46~-|cHD9@$q~*Sb1*skv!a&xQfCGX=+lgkJN+-7MN^`^TL;bbIJ+aj?PUkDWx80wSAiCE5EF8os zZ15h566`bIJrJGH+za(!6z=XoTtj1+W$_A2yDeHA@~5;x+q(G+BM#fVyVh+haI3zQ zH0ZB}H{TA@_+;qWxZl!p+@#sx`f=$xgzh82e`Hc?HZE$vFfML?Kq)zR>WIg6j4&Gr z@F`>xY~!YSsIDx3?rpU`Zx~5RA?ATDyFNI>(Pntv!KgZB@p_-k!3=RIQp0QO&E*)u z@@CfZTaW{j!24sJ$#vRNF|g!!?oX(v%o*&S+UD}oV5)?B9|VgTqo@F%K^iFun*>E6&UXFP0T zN4UE}bsZX_bhzZeT>HMz6Qo*t>*(-3rRH5&xhP)sHz^3E?ZArEpJa+rPS<3V=Wh!) zwWxy(7u9#wVXpj=i;upP(}ROAL+$zJu{(T0MjodRzJZynX2|kN8cwgSw#C~v%m$|^ z2d6w>=r!aUO*x%4gG0-#Fko8%iCZ93hRW5Be$AF?xP6Taw093;<>V}nJmnUjU%g=# zbCsazSYXi{{VDGh5hLso$hCP0b2rL)6Mh4G;`l>&lf}NZdLe+?Sz4wlK6ka%l*`ac6;xt*3~d7X4@1Ra-F zd7O3Z1f9X7F)Hl~);Fsx7e$+BFt$#}TW(t8MO%boXQ2-aqn%A}@mEf)gCP9TlEPGq zXc4LCTgMdJq!WsuI*g+B*L(237U{X!6-zs`HQ{6eev}s}NEv*ev~mwXEo}dJ`*q0M z&I_G4L%YriD7-ZccvmV7-8<;`gO-=|$YQ+^#=62@eI^cRwz|Mxn*cuBSm;DsiW+Yy zn)cGTFi!ux~U3!b3Y^!IlHc$O&82G-w=UwV!Lq93LlfbtI@R1&|bA zRZr>aOsq&k#&W4mRpmwTo{QA6T~sdmc6nX(A+sqSUAtWsACs9~DB`@~TeDS1@klV~ zrrSl0wM9|*o~U{hr|b07S9R6Ey19Gtm_!+_+0LLZ)S3n62MLNlfF{~nOe}LTmWj+d z8_lUIH0w=aPMdEAXj?O)eqyEM&7?lGr#9(XAMZ^eLhuq7z2E#+F7F9YTn7ctVV{Vp zEYQwyR>xN7eN1XXCDRkuIRy)xP$qMSAOH=M4NKDUNYhND%a(T$u6g@_ zJwNV8w0Gr6J_r5y`-F@1?}%yopX7f<%zSw8?1$%g5(%ISD?jdZ@67c?NzB0SATdqm z)MK_Uer$&tdi1i7G2qVOa{5suvyJm)jU)%ZhvbhlR!^L%+-iO1btghulOG zvf!6tSko5q*{FHZevqKSMXvW!nzgwQ~L`e)d!T&0S(s?Cu)V&6Dx!B@I~yle@^bELVG%2sz!j)cy1RW!h)=mfQj?=UG*Sv!e%@qW+|T0oia# z8rEki`D+**mzFmj$@-EmjPAs=lxNyZBhu~jhu?!_mfLtNv;$-zKAN|FRh+C!R{Rt? zCL(-l!&Q65n#FfPOglRlP>4|*q*MjDOo=ck(Osk9yKN1M5U|N5PY3@Vq~z{TEn~i5 zKR}s!qBksH&4Kd=;JtHmKv9@EHvL{H!fAIAEnM9|&h?|3Pw{X~jUxeHqGU(qiOpRBG9vf@bqv+QMFc;5fWx zr~|E7syD!kpr>HPPaA|)kl*jefpR>{5$Z~#)ZVTeWb|dpPrKr)7HGKEc=>wUwD2Bj z+Y1F$L+}12QNFko!m>)J*|4!olTO$Fh#&X}MbPxL==J3n4lnSr>|BC>@W&U{bDS=D z$519UlTF|>4%+Al%sU2 z@9vOqsJCS@4z^BB1o2x6EbV!!rCQWhg^ljD94*gp4NRBBs7@Wu<1%G;VHBHBC$Div zIpQ-K zwr?z@vq1358Ywg3u2Gw>S@_p2p#Bq5& z8B=jAH{tt%wI<8)yQoG61ja#{dDBcan*&i;!NHN9uuJl^U0F|6U)B_=K!0VTK|eFE z>q~Out9Tzh#;&i7u=kjaEW~QEUKHBUAI_}9 zz?u`frp$Y^#F$#)_>0bnB_B#H08=;Q=z?dpy5z$}9&Y&n?Guc{$U#vPfRT4s$8Qkt zs0T9g(~~R|JF7{Bt}NG9Xp5&OyB7r4DTiN59H z4RzNa3f_k!>ji#czNenhf|f$a6~_1NaC444TfFMfyJ`56q8wrPN9y+o;HMJx=l~xQ=imn?h3PXeGCKn?~J477l?^$f2QHI!rfhLFV#_jH|j#r z3y&6ilKd=czL|JqJGS%l9FzIM$u2ely44O?$)>teyRGxY%^B&< zaoHbbShV)u#r6f5HJ94KXA9kOLu1I{aGLFKufDXPha%Eq%k8g$$(63fo3B1mbPHG9@tJ0z)q8x zg_Q+~Ndf5M0- zvHX^0Qe|OAV*Tws1f$%)uf{(q{2%@8NPl_)S%^6}*qQ%w3$k+Yu>6zz{Z!l6QGE_e zXn*}@GE=?IU*<~`}T zpY3widESXi4Dne6&#|<z=T$$PJ_AM6bf<7vNhNSxCJ{B{VkD zp19?UGufNNf)T|MOf@_>!l_-i*wB^RWw`dpF1-)EJ zrJZ&D$tg8gJ=LPh4V-sk=M-ao+)@d?#~Y(@n>*UBFrrO|?=6Mts;P}??ZgK0Dx6ia zJjvpKgs+OTd6H#gbMSLHI7-`U4IsTMBJ94p$L2G#>B#9%)=|8fvGD& z-4^Xb&NA%`Du(>kDQWDYI4g?u@m+b(dj8~6l`btqrk1f4pw!P1U)f3xtP)oJ^kQ38 zH|n)fp52U$Ldpsp@$IzL)jY8CWS>^bzNAQcJ~xdPpMmrV%y0PJpOubh&#M_RqY z9TD8@k~K%7I4U}WOo6u*oDvLxHB#OtxS_AIk8i6lsY{b4dwl%3*hiZ9B|Bm69g`a& zb9S*DU)_}2T)?1T2zE(LsuwR^n=4&FTUX#J3l&NWZR_nyy7H$CpSH$L! zsVfdC6+y!r61J<$0^&jk&&t zZeOU>o_Ti(H#%ZOPT4+AZ4*8@5hx8paWyNo)O1;mYPq z=kBx#oxK(F^pbeb(MN0p{v8E_@+cGPMj5V8<-S}tYx&prBS3q_UHqJn`J5dD?b2qk zQ=u>Bs{C?KprW+?YH7q;6$nJfe&4n$%Yd@7U{SGz;(RY5kmU zoR+O9{if=WCWl4Qmy_uUSy~+Ry93JSS$^8K z6$Z_=&LQX~cIK6G-y7{P-35$`9l*W9+gBNhT);ppw;YGb$$ zQSRjEKRFdSSnh0QQJb@4IFL`Q)B4AJRtFy3;@Vn;u*LC@J|Am9un<5z zI!JUoNVr`!jeK~3G$TQ8?qT+N%~z@=-eP!kj(zT{M6a$MAHgPaH9qUTSS4k#_u94* z0)6?S67}A0(X!tVFT2^K1eMP=4bU%-XWx=H3m1nvz$xF7Hw-rbHv(r5?R7@pA?%ZV z%k{aN(l7ZIc56Q(hfGl1C*FhTyWtkW=aq;Y(lg?9X?>}V#ml?Q(_itZ@U|XxQ3;n*rg`jxHn}5O(+Trl0dRX zb_NZ(c}$Lyz3EV3oo-_>Fp?4|U!ax7lc`ldnxR_Bt~4(KsIvDnH2Yx;x`tBYl>GwI z6y06@s_r7&Ji@7`^qKG^j#%(lyc|DD9Hi;9n4UiL!A~*gn+>BfG09|&Dk@?EWRarg zTs;MU1+1^QA3_;`+S2_g>{xN?B7T5c0cOmn!0m2>+oolbl=ULgHCiL_AXWb*QM^w& z^6a~>9ors@Mq>9&>Dqv2v)9$znA0WxC<3od4=G+t(W|#nv{8ss1Qy{^t_wkz&tA{0 zR&TdD2=5X*K_!1s)WLgnvo5IdQ1GwuyEPmi# zMcpROUVi7e?e>;hT1#?VCP1ZE-m162&!&U4vs6 zeK~2G(I6aO8VNKcs;T^7QcOzjC`!dwflf%TGzNy>CF;i;X>(KBTo(52BqjCfAz!N1 zN25q+sC_^V#+56qW`fRgK5yE&wY#p+9IU`|Z;zfdpkXLb{b_Hgc`$v6rldsFbajzW zfsF1hYhcttqY5zlz}OkwiKDZkd8?PRnvv}1Mzx~sI~H!obe?a$t{-^vI%&!NyJyI! zxKSmwLnG5faZcN>7}u|X(i-s44hfOn{1V;Y6y*kt^j}{^SeniI2j2L}9cpc;fZw+6 zaZK^`DHnMr9P5am|61tLsNenmgK^`WY`$PBPUrbI*2t7WknN^PEpqT?Auj6?%_~@D z|HICov#)FFyO@~er4;VDEFU7*0IjP+;sIPxLCw#wnrxfX&v$sWAG3cv7@e@xg&lk& zV#(p_;`aN6H34vF7YJ)M#J-gU&$>faYk}uj6bnsGVg!C_O+zic{m*E=e~K>z$Kjc~ zngN`t_1U;M!3UQ1r2 zo5oB79$`2GOh7;fdvS0$9DlhGbbx23l|F)2QwWrD-|;{6_`!I!Tf*0p$-Ju z0{+EjnU^dTU%+phMP4xZ7x3Ex_7{xd1^iC1eZeeWz~4mxzMTFpmemVp_X2*?oL(^3 z7x26Izl-|24%}X7zcKq4%O8vX;e(U-z{JZXcYw!dMfro$A z05cFZ7?lHfx;r?VyS(7PEA8Ku{Xe=wf`WgJH-Cq0{xRSLM`wbEqQt*LK3#~JA0c&Nzw5~lf=ihqw8RRDlY%uPThe~)vu73BXKn6Yqh zv;JdX#xLaIXkumq01=x4EP?g{ROg?%sfdB*0#sTY3d{%kLV(<`FfK*IXUXt{M!GqVs&e0BR2C;{ot-TAc zhXB=Y5neF=ii5unmmPzLW5>tJgG1Q&~uhmnPWg^ixr!Wlfu245K)VirbD zDzHjta|>Qoa0u%k3c+UrR8}C6BQFz^ySqE1I~${evn3M?c&}Y1W>zLvRt7K!gNvs< z$i#!e-h~XD-)}>J+W!!936b8u5egAmW#dO-vnJK>}2+ zu0V5M7IOeICp$YQ1BaP8fPsYtz{LP=j?4^P%m8!nNS)o3gPrTI>>U5e%zw!boB+;{ z4V)oA80Gz|a}Wdv>HgUY!F9pH$jZpf&-5=0NWc02YPEuYr2gX+iJ$4k+;s@#{#tQeCb;RU-}*fW=;lHPIVS8Uhx0#4v3c-T(W=T z1h*To=va@@+7hd>y#U0FC z?ZERuGUES#S{l>;kOaNQ(PRrnkaPUQD0b6Wt#%tl=Y-a+# zDNGz4!BbYhpEfT|72Kl1iJ+IqhT!j;R>T(c2Vx6+xe0k~P3$cNs5}_V0Tw2%wje4& z8AVAEc~*7?5nD?KXCTPR4(Q|xAU1I`u{Y~4`{NSX0>Lf)rDgwC#`JdvV9f00QRm?N zM;>Ybr@t~21emzGIh%O?n}**UFB<+K2gc3+oKytg@Bf=d|C`o-*!3@({>#nyn*{F1 zz*mjwAHAd?(mz%j{2wC!_Z0p8XaGNE1gP9!I({(rudhk;a0XZ)F@q;4kzTsMKR(3Z zSzR^`VhiFwXzVP^?BEH>mk+W1KWMDX;EC3MrGfVV22Vi#JB{N%Xxz-)|DlhYl^Z/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Algorithmique.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Algorithmique.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/Algorithmique" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Algorithmique" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/AlgoApprofondie/cours/_static/cesi.jpg b/AlgoApprofondie/cours/_static/cesi.jpg deleted file mode 100644 index dafbe55de24691c42c68b12402a75d4f863000ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60367 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 diff --git a/AlgoApprofondie/cours/algo.txt b/AlgoApprofondie/cours/algo.txt deleted file mode 100644 index c2f8ed7..0000000 --- a/AlgoApprofondie/cours/algo.txt +++ /dev/null @@ -1,291 +0,0 @@ -Algorithmique -============= - -Al-Kharezmi, auteur du traité "Kitab al jabr w'al-muqabala", est l'inventeur -des manipulations algébriques (algèbre = **al jabr**). -C'est Léonard de Pise, dit Fibonacci, qui emprunta le nom du célèbre -mathématicien arabe du 9ème siècle, mais l'algèbre existe -depuis bien plus longtemps (Depuis Babylone, puis ensuite l'Egypte ancienne). - -.. glossary:: - - - algorithme - - terme désignant une suite d'opérations constituant un schéma de calcul - ou de résolution d'un problème. C'est un processus systématique de - résolution d'un problème permettant de décrire précisément des étapes. - C'est une suite finie d'instructions permettant de donner la réponse à un - problème. - -L'algorithmique est l'étude et la production de règles et de techniques -qui sont impliquées dans la définition d'algorithmes. - -Implémentation d'un algorithme ------------------------------- - -.. glossary:: - - implémentation - - Adaptation de la méthodologie de calculabilité au calcul effectif - sur une machine abstraite ou via un langage formel. - -Il n’y a pas de parcours à sens unique de l’algorithme vers l’implantation. -La quête d’une implantation efficace nous amène souvent à effectuer -un retour vers les algorithmes eux-mêmes, et à en modifier des points -essentiels. L’aspect théorique de réflexion sur les algorithmes, -et l’aspect pratique de l'implémentation sont donc en symbiose. - -Un existant émerge de la décomposition structurale d'un -domaine de base. Le fait essentiel, c'est la genèse des genres de l'existant les -uns à partir des autres. - -L'essence d'une forme (un algorithme) se réalise au sein d'une matière qu'elle créée -(un langage). L'origine d'une matière fait naître les formes (concepts) -que sa structure dessine. - -- Notion structurale de non-contradiction -- Notion extensive de "réalisation dans un champ donné" - -Deux aspects réciproques : l'essence d'une forme se réalise au sein d'une -matière qu'elle crée, l'essence d'une matière faisant naître les formes que sa -structure dessine. - -Abandonner l'idée trop simpliste de domaines concrets et d'opérations abstraites -qui posséderaient en eux-mêmes comme une nature de matière et une nature de -forme ; cette conception tendrait, en effet, à stabiliser les existants -mathématiques dans certains rôles immuables et ignorerait le fait que les -existants abstraits qui naissent de la structure d'un domaine plus concret -peuvent à leur tour servir de domaine de base pour la genèse d'autres existants. - -L'algorithme comme généralisation de la calculabilité ------------------------------------------------------- - -L'importance croissante de l'informatique comme outil scientifique -impose d'élaborer un nouveau mode de description des méthodes de calcul (appelées algorithmes) -susceptible de satisfaire à la fois le critère de sécurité (maîtrise du résultat) et la possibilité -d'implémenter les calculs sur un ordinateur. - -Exemple d'algorithme ---------------------- - -.. raw:: latex - - \begin{algorithm} - \caption{L'alorithme de Bellman-Kalaba} - \begin{algorithmic}[1] - \Procedure {BellmanKalaba}{$G$, $u$, $l$, $p$} - \ForAll {$v \in V(G)$} - \State $l(v) \leftarrow \infty$ - \EndFor - \State $l(u) \leftarrow 0$ - \Repeat - \For {$i \leftarrow 1, n$} - \State $min \leftarrow l(v_i)$ - \For {$j \leftarrow 1, n$} - \If {$min > e(v_i, v_j) + l(v_j)$} - \State $min \leftarrow e(v_i, v_j) + l(v_j)$ - \State $p(i) \leftarrow v_j$ - \EndIf - \EndFor - \State $l(i) \leftarrow min$ - \EndFor - \State $changed \leftarrow l \not= l’$ - \State $l \leftarrow l$ - \Until{$\neg changed$} - \EndProcedure - \Statex - \Procedure {FindPathBK}{$v$, $u$, $p$} - \If {$v = u$} - \State \textbf{Write} $v$ - \Else - \State $w \leftarrow v$ - \While {$w \not= u$} - \State \textbf{Write} $w$ - \State $w \leftarrow p(w)$ - \EndWhile - \EndIf - \EndProcedure - \end{algorithmic} - \end{algorithm} - -Exemple d'algorithme avec son implémentation ---------------------------------------------- - -Soit l'algorithme de factorielle suivant, - -.. raw:: latex - - \begin{algorithm} - \caption{Algorithme de la factorielle d'un nombre}\label{factorielle} - \begin{algorithmic}[1] - \Function{factorielle}{$n$}\Comment{La fonction récursive factorielle} - \BState \emph{parametre} : $n$ entier - \If{$n = 1$} - \BState \emph{Sortie} : 1 - \Else - \BState \emph{Sortie} : $n * \Call{factorielle}{n-1}$ \Comment{On appelle la fonction dans l'algorithme lui-même} - \EndIf - \EndFunction - \end{algorithmic} - \end{algorithm} - -et son implémentation en python : - -.. literalinclude:: code/factorielle.py - :language: python - -En voici une autre implémentation (en OCaml) : - -.. literalinclude:: code/factorielle.ml - :language: ocaml - -On remarque que le **pseudocode** est très proche de -la syntaxe du python : - -.. function:: factorielle(n:int) - -:: - - if n=1 - return 1 - else - return n * factorielle(n-1) - end if - -Qualité d'un algorithme ------------------------ - -- correction d'un algorithme -- complétude d'un algorithme - -Sémantique - - Étude du sens, de la signification d'un langage - Définir la sémantique d’un langage formel consiste à lui donner une - signification mathématique. - -Sémantique opérationnelle - - on définit la sémantique par sa mise en œuvre sur - une machine abstraite. - -Sémantique dénotationnelle - - on associe à chaque construction syntaxique un - objet mathématique - -Sémantique axiomatique - - chaque construction est décrite par la manière dont - elle transforme des propriétés ou des prédicats. - -Proposition - - une proposition est un énoncé qui est soit vrai, soit faux - -**exemple** : ``2 + 3 = 5``. Proposition vraie. - -Prédicats - - Une proposition dont la valeur de vérité dépend de la valeur d’une ou plusieurs variables - -**Exemple** : ``n est pair`` : vrai pour n = 4 mais faux pour n = 9 - - -Axiome - - une proposition qui est supposée vraie - -Un ensemble d’axiomes est consistant s’il n’existe pas de proposition -dont on peut démontrer qu’elle est à la fois vraie et fausse. - -Un ensemble d’axiomes est complet si, pour toute proposition, il est -possible de démontrer qu’elle est vraie ou fausse. - -Théorème d’incomplétude de Gödel (1931) : tout ensemble -consistant d’axiomes pour l’arithmétique sur les entiers est -nécessairement incomplet. - -**Les concepts de base en algorithmique sont les axiomes** - -inférence - - règles d’inférence, règles permettant de combiner des axiomes et des - propositions vraies pour établir de nouvelles propositions vraies. - -Démonstration - - vérification d’une proposition par une séquence de déductions logiques - à partir d’un ensemble d’axiomes. - -Lorsque le champ donné (le domaine) ne contient qu'un nombre fini d'individus, -on peut définir un choix de valeur des variables permettant de vérifier la -proposition obtenue par la *conjonction* de tous les axiomes du système proposé. -On dit alors que ce choix *réalise* un système d'axiomes. - - -Il ne s'agit plus de savoir si la définition entraîne l'existence, mais de -chercher si la structure d'un système d'axiomes (*règles*) peut donner naissance -à un champ d'individus qui soutiennent entre eux les relations définies pas les -axiomes. - -Concret et abstrait --------------------- - -Il est possible qu'un même genre d'existant joue dans un schéma de genèse le -rôle d'abstrait par rapport à un concret de base, et soit au contraire dans une -autre genèse le concret de base d'un nouvel abstrait. - -Une pareille présentation des choses implique un tel renversement par rapport -aux habitudes de pensée classiques, qu'il faut encore insister sur le sens -nouveau que reçoivent ici les expressions de "concret" et "d'abstrait". - -Les systèmes d'axiomes sont souvent conçus comme des structures purement -formelles, abstraites. Ces structures sont si profondément engagées dans la -genèse de leurs réalisations, qu'il valait mieux désigner par ces termes les -structures de base. - -Un système d'axiome *peut* devenir le concret de base. - -Ceci permet d'exprimer non seulement l'engagement du concret dans la genèse de -l'abstrait, mais encore les relations d'imitation qui peuvent exister entre la -structure de cet abstrait et celle du concret de base. - -Dans certains cas, la genèse de l'abstrait à partir d'un concret de base -s'affirme jusqu'à réaliser une imitation de structure entre ces genres -d'existants qui naissent l'un de l'autre. - -**C'est pourquoi on représente souvent un algorithme en pseudo-code**, -c'est-à-dire en fait dans le mode de représentation (issu du langage préféré de la -personne qui l'exprime) dominant chez la personne qui exprime un algorithme. - -Comment rendre un algorithme lisible ------------------------------------- - -- Le bon algorithme utilise des identifiants explicites. -- Le bon algorithme est structuré. -- Le bon algorithme est indenté. - -Complexité d'un algorithme --------------------------- - -On peut approximer la complexité des algorithmes. -C'est utile pour pouvoir comparer des algorithmes. - -complexité - - estimer la complexité d'un algorithme, c'est estimer le nombre de calculs qu'il utilise. - -Si f est la fonction caractérisant exactement le coût d’un algorithme et n -la taille des données, on s’intéresse à la façon dont augment f(n) lorsque n augmente -on va montrer que f(n) n'augmente pas plus vite qu’une autre fonction -g(n). Du point de vue mathématique, on dit que la fonction f est dominée -asymptotiquement par la fonction g ce qui se note f = O(g) - -- Complexité temporelle : c’est le nombre d’op«erations effectuées par - une machine qui exécute l’algorithme. - -- Complexité spatiale : c’est le nombre de positions mémoire utilisées par - une machine qui exécute l’algorithme. diff --git a/AlgoApprofondie/cours/annexes/agile.txt b/AlgoApprofondie/cours/annexes/agile.txt deleted file mode 100644 index 5884c11..0000000 --- a/AlgoApprofondie/cours/annexes/agile.txt +++ /dev/null @@ -1,83 +0,0 @@ -La planification agile -======================== - -Le mode itératif ------------------ - -- livrer des versions successives et utilisables qui convergent vers - la version finale - -- ne pas perdre d'énergie à maintenir des specs détaillées non nécessaires - -- de nouvelles orientations fonctionnelles sont possibles, même tard - -- les specs détaillées sont écrites "juste à temps" - - -La planification agile ------------------------ - -- chaque livraison est un projet qui est planifié en tant que tel -- utiliser l'expérience acquise pour affiner les estimations -- préservation de l'écologie du projet au quotidien (code, tests...) - -La confiance, feedback ------------------------ - -- livraisons régulières -- progrès visibles par tous (pas d'effet tunnel) -- pilotage du projet par choix du contenu des livraisons -- investissement du Product Owner -- chercher la collaboration plutôt que la confrontation - -L'agilité ----------- - -- le projet n'est pas joué d'avance -- cultiver la souplesse -- révolution douce -- sortir de la confrontation, jouer le "nous collectif" - mettre tout le monde sur le mme pont et amener tout le monde à bon port - -Les outils agiles ------------------- - -- planification par itérations de 4 semaines -- entrepot de source partagé -- intégration continue -- tests automatisés -- pair programming sur points cruciaux -- sprints -- extranet : - - - hitoires utilisateurs - - test cases - - gestion du backolog et des tickets - - suivi de l'avancement - - documentation - -Le product owner ------------------ - -idéalement, - -- connaissance du métier à informatiser -- fibre projet -- dispo à 100% - -Les tests ---------- - -- automatiser -- viser l'exhaustivité -- tester une cible mouvante -- migrer les tests d'une release à l'autre - -Questions importantes en environnement agile ----------------------------------------------- - -- quelle durée d'itération ? -- comment découper en itérations ? -- que faire lorsque le product owner se retrouve sur le chemin critique ? -- la planification est faite en mode "juste à temps" et "juste assez" -- on ne s'échine plus à blâmer, au contraire on cherche à gagner ensemble diff --git a/AlgoApprofondie/cours/annexes/exercices.txt b/AlgoApprofondie/cours/annexes/exercices.txt deleted file mode 100644 index 1597a02..0000000 --- a/AlgoApprofondie/cours/annexes/exercices.txt +++ /dev/null @@ -1,19 +0,0 @@ -Exercices complémentaires --------------------------- - -+ **Manipulation de chaînes de caractères**: - (création, accès à un caractère, concaténation), listes (création, ajout - d’un élément, suppression d’un élément, accès à un élément, extraction d’une partie de liste), tableaux à une ou plusieurs dimensions. - - + traitement des chaines de caractères - + s.replace() - + s1 + s2 - + un exemple de regexp simple - -+ **Fichiers** : - notion de chemin d’accès, lecture et écriture de données numériques ou de type chaîne de caractères depuis ou vers un fichier. - On encourage l’utilisation de fichiers en tant que supports de données ou de résultats avant divers traitements, par exemple graphiques. - -+ **Piles** - Algorithmes de manipulation : fonctions 'push' et 'pop'. On utilise des listes - (ou tableaux à 1 dimension) pour leur implantation. diff --git a/AlgoApprofondie/cours/annexes/index.txt b/AlgoApprofondie/cours/annexes/index.txt deleted file mode 100644 index dc5acf1..0000000 --- a/AlgoApprofondie/cours/annexes/index.txt +++ /dev/null @@ -1,10 +0,0 @@ -Annexes -========= - -.. toctree:: - :maxdepth: 2 - - exercices - surete - agile - scrum diff --git a/AlgoApprofondie/cours/annexes/scrum.txt b/AlgoApprofondie/cours/annexes/scrum.txt deleted file mode 100644 index 3777780..0000000 --- a/AlgoApprofondie/cours/annexes/scrum.txt +++ /dev/null @@ -1,176 +0,0 @@ -scrum -===== - -.. glossary:: - - scrum - - Scrum est une méthode agile pour la gestion de projets - Le terme Scrum est emprunté au rugby et signifie mêlée. - Ce processus s'articule en effet autour d'une équipe soudée, - qui cherche à atteindre un but, comme c'est le cas en rugby - pour avancer avec le ballon pendant une mêlée. - - -Scrum définit trois rôles principaux : - -- le responsable de produit -- Product Manager, -- le faciliteur -- ScrumMaster -- le développeur - -et bien sûr, l'équipe (auto-gérée). - -Des intervenants peuvent s'intégrer également au projet -de façon plus ponctuelle. - -responsable de produit - - Le responsable de produit (Product Manager) est le représentant des - clients et utilisateurs. - C'est lui qui définit l'ordre dans lequel les fonctionnalités - seront développées et qui prend les décisions importantes - concernant l'orientation du projet. - -Le terme responsable n'est d'ailleurs pas à prendre au sens hiérarchique -du terme, mais dans le sens de l'orientation. - -équipe, développement - - outes les décisions sont prises ensemble et personne ne donne d'ordre - à l'équipe sur sa façon de procéder - -facilitateur - - est chargé de protéger l'équipe de tous les éléments perturbateurs - -planification --------------- - -Scrum utilise une planification à trois niveaux : - -- release/projet -- sprint -- quotidien -- ScrumMeeting - -quotidien - - Au quotidien, une réunion, le ScrumMeeting (pas plus de 15 min) - permet à l'équipe et au ScrumMaster de faire un point d'avancement sur - les tâches et sur les difficultés rencontrées. - répondre à trois questions : - * Qu'est-ce que j'ai fait hier ? - * Qu'est-ce que je compte faire aujourd'hui ? - * Quelles difficultés est-ce que je rencontre ? - -sprint - - Scrum est un processus itératif : les itérations sont appelées des sprints - et durent en théorie 30 jours calendaires. - En pratique, les itérations durent généralement entre 2 et 4 semaines. - Chaque sprint possède un but et on lui associe une liste d'items - de fonctionnalités à réaliser. - Ces items sont décomposés par l'équipe en tâches élémentaires - de quelques heures, les items de fonctionnalités de sprint. - - Pendant un sprint, les items de fonctionnalités de sprint à réaliser - ne peuvent pas être changés. - Les changements éventuels seront éventuellement réalisés - dans les sprints suivants. - -releases - - pour améliorer la lisibilité du projet, - on regroupe généralement des itérations en releases. - En effet, comme chaque sprint doit aboutir à la livraison - d'un produit partiel, une release permet de marquer la livraison - d'une version aboutie, susceptible d'être mise en exploitation - -gestion des besoins -------------------- - -tâches (backlog de sprint) -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Lorsqu'on démarre un sprint, on choisit quels items des fonctionnalités -seront réalisés dans ce sprint. - -L'équipe décompose ensuite chaque item en liste de tâches élémentaires -(techniques ou non), chaque tâche étant estimée en heures -et ne devant pas durer plus de 2 jours. -On constitue ainsi le backlog de sprint. - -Les items de backlog de produit sont les fonctionnalités qui deviendront -les items du baclog d'un sprint. -Ces fonctionnalités sont estimées en points relatifs, sans unité. - -planning poker - - façon ludique et efficace de produire des estimations - sur la complexité des fonctionnalités à développer - - pour évaluer les scénarios utilisateurs (user stories) - du carnet de produit (product backlog). - -à la fin d'un sprint : - -- revue de sprint -- rétrospective de sprint - -comprendre ce qui n'a pas bien marché dans le sprint, -les erreurs commises et de prendre des décisions pour s'améliorer - -mise en oeuvre --------------- - -Scrum peut être mis en pratique avec trois fois rien : deux listes suffisent. -La liste des items du backlog de produit et la liste des items du backlog -de sprint. La saisie et la mise à jour des données est simplement -un peu moins agréable. - -glossaire ---------- - -Directeur de produit (Product Owner) (responsable produit) - - personne responsable de produire et maintenir à jour le backlog de produit. - C'est lui qui en détermine les priorités et qui prend les décisions - concernant l'orientation du projet. - -ScrumMaster (facilitateur) - - membre de l'équipe dont l'objectif principal est de la protéger - des perturbation extérieures. - Il est complètement transparent pour la communication entre l'équipe - et les clients et n'a aucun pouvoir hiérarchique sur l'équipe. - C'est en revanche un facilitateur pour les problèmes non techniques - de l'équipe. - -Backlog de produit (Product Backlog) (fonctionnalités) - - liste des fonctionnalités qui devront être réalisées par le logiciel. - -Backlog de sprint (Sprint Backlog) (tâches) - - liste des tâches à accomplir pendant un sprint. - Elles correspondent à la réalisation des items de backlog - du produit affectés au sprint. - -Mêlée quotidienne (Daily Scrum) (quotidien) - - réunion quotidienne de 15 minutes qui a pour but de faire le point - sur ce qui a été fait depuis la dernière mêlée, - ce qui est prévu de faire jusqu'à la prochaine - et quelles sont les embûches rencontrées durant le travail. - -Sprint (sprint) - - nom d'une itération dans Scrum. - Cette itération dure 30 jours calendaires en théorie, - mais en pratique on utilise plutôt entre 2 et 4 semaines. - Pendant une itération, l'équipe doit développer une liste d'items - du backlog de produit qui a été définie au début de ce sprint. - -Graphique d'avancement (Burndown Chart) (avancement) - - graphique qui montre la tendance du reste à faire total de jour en jour - (pour les sprints) ou de sprint en sprint (pour les releases). diff --git a/AlgoApprofondie/cours/annexes/surete.txt b/AlgoApprofondie/cours/annexes/surete.txt deleted file mode 100644 index 44da9b7..0000000 --- a/AlgoApprofondie/cours/annexes/surete.txt +++ /dev/null @@ -1,93 +0,0 @@ -Outils de sureté d'un programme --------------------------------------- - -La preuve de programme -~~~~~~~~~~~~~~~~~~~~~~ - -Le niveau maximum de sûreté d'exécution d'un programme est la preuve. Qu'est-ce que la preuve -formelle d'un programme ? Selon la définition de Wikipédia, ce sont "des techniques permettant de -raisonner rigoureusement, à l'aide de logique mathématique, sur des programmes informatiques ou -du matériel électroniques, afin de démontrer leur validité par rapport à une certaine -spécification." Bref c'est un raisonnement logique sur un programmme qui permet d'être sûr que le -programme est valide et ne va pas planter. - -La preuve de programme est très peu utilisée dans l'industrie, car très coûteuse et très -difficile à mettre en place. Elle quand même utilisée, mais dans des secteurs où le risque doit -absolument être évacué et où il n'y a aucun droit à l'erreur. Par exemple, le secteur médical -(informatique en bloc opératoire), militaire (peu d'informations nous parviennent dans ce -domaine), l'aviation civile (le logiciel Astrée pour Airbus), la fusée Ariane (depuis le bug qui -avait fait crasher Ariane 5 ces questions sont prises très au sérieux), et le milieu bancaire -(surtout le domaine des décisions boursières : un programme chargé de lancer des décisions -d'achat ou de vente à la bourse qui comporte un bug peut en quelque centièmes de secondes faire -perdre des millions, voire des milliards d'euros à une banque. Le programme ne doit tout simplement pas -bugger). - -Le model checking -~~~~~~~~~~~~~~~~~~ - -Le model checking, l'analyse statique et l'interprétation abstraite procèdent d'une méthodologie -moins lourde de validation des programmes. Ces méthodes analysent exhaustivement l'évolution du -système lors de ses exécutions possibles et permetent de dire si globalement, dans un contexte -donné, le programme va fonctionner correctement. Encore très lourdes, ces techniques ne sont -utilisées que dans un contexte industriel de haute sécurité. - -Les tests d'acceptation -~~~~~~~~~~~~~~~~~~~~~~~ - -Il y a plusieurs types de tests - -- unitaires -- fonctionnels -- acceptation - -Très utilisés dans l'industrie, les tests unitaires et fonctionnels ne testent que certaines -parties du programme et permettent de dire que le programme va marcher grosso-modo à peu près. -Beaucoup moins coûteux à installer, ce sont des éléments cléfs des méthodes agiles. - -Les Outils de linting (validation) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- vérifications syntaxiques -- vérification sémantiques -- vérification sur les imports inutiles ou mal formés (imports croisés - -Exemple en python : pylint - - -La dette technique -~~~~~~~~~~~~~~~~~~ - -Au bout d'un moment le code devient du code spaghetti et les techniques sont obsolètes. -Les tests permettent de solder la dette technique plus facilement. - -**avoir le courage de payer une dette technique, et affronter une dette technique -sinon il peut y avoir un coût à payer qui sera pohibitoire.** - -On solde la dette technique parce que à un moment ça va devenir beaucoup trop -cher à payer. - -Les méthodologies agiles -~~~~~~~~~~~~~~~~~~~~~~~~ - -La manière dont le code est produit importe énormément. Par exemple, une -méthodologie ou le **refactoring** (réécriture de code) est permis et même conseillé -a plus de chance de produire du code organisé. - -Les méthodologies agiles produisent en général du code mieux organisé. Ce sont les -méthodes de travail les plus en vogue aujourd'hui, elles mettent l'accent sur : - -- Du logiciel fonctionnel plutôt que de la documentation exhaustive -- La réponse au changement plutôt que le suivi d'un plan -- Le logiciel fonctionnel est la principale mesure d'avancement -- Une attention continue à l'excellence technique et à une bonne - conception améliore l'agilité -- La simplicité est essentielle (il est facile de faire, il est - difficile de faire simple) - -Le principe de base de la méthodologie Scrum par exemple est de focaliser l'équipe de façon -itérative sur un ensemble de fonctionnalités à réaliser, dans des itérations de durée fixe de une -à quatre semaines, appelées **sprints**. Chaque sprint possède un but à atteindre, défini par le -responsable de produit, à partir duquel sont choisies les fonctionnalités à implémenter dans ce -sprint. Un sprint aboutit toujours sur la livraison d'un produit partiel fonctionnel. Pendant ce -temps, le facilitateur a la charge de réduire au maximum les perturbations extérieures et de -résoudre les problèmes non techniques de l'équipe. diff --git a/AlgoApprofondie/cours/apercu.txt b/AlgoApprofondie/cours/apercu.txt deleted file mode 100644 index ea09668..0000000 --- a/AlgoApprofondie/cours/apercu.txt +++ /dev/null @@ -1,79 +0,0 @@ -Aperçu des algorithmes fondamentaux -=================================== - -Les algorithmes sont partout. Absolument partout aujourd'hui. -Il n'est pas un domaine de nos activités qui ne soit liés à tel ou tel algorithme. - -En mathématiques ------------------ - -- l'algèbre (étude des structures de données) -- l'arithmétique modulaire (théorie des nombres) -- la géométrie (affine, algébrique, invariants topologiques...) -- les diagrammes (diagrammes de Venn...) -- les colorisation d'une carte -- comportements stochastiques - -En informatique ----------------- - -- les algorithmes sur la manipulation des structures de données - Exemple : les algorithmes de tri, de recherche dans un arbre... -- les parcours de graphes (chemins le plus court, voyageur de commerce...) -- la cryptologie (code gray) -- les stratégies de jeux - -Tirés du monde réel --------------------- - -- les jeux (casse-tête, dominos, échiquiers...) -- énigmes, logique et paradoxes -- problèmes de raisonnements. Il n'existe pas beaucoup de méthodes - ou de moyens simples pour traiter et résoudre les énoncés de logique de raisonnement. -- La "marche de l'ivrogne" : processus de progression discrète (pas à pas) - dont l'étape suivante est lié à l'état présent et pas du tout à la mémoire du passé proche. - Il revêt seulement un caractère de type probabilité (stochastique) dit markovien. -- algorithmes de colonies de fourmis (chemins optimal pour arriver à la nourriture) - -Le voyageur de commerce -~~~~~~~~~~~~~~~~~~~~~~~~ - -Le problème du voyageur de commerce, consiste en la recherche d’un trajet minimal permettant à un -voyageur de visiter n villes. En règle générale on cherche à minimiser le temps de parcours total ou la -distance totale parcourue. - -Il suffit de construire tous les chemins possibles et de calculer leurs longueurs. -Avec ``n`` villes il y a ``(n-1)!/2`` chemins possibles. -Avec 36 villes on trouve : 5166573983193072464833325668761600000000, -si le nombre de villes augmente, ça devient vite rédibitoire. - -Résolution par - -- algorithme de parcours de graphes -- algorithme glouton -- algorithmes génétiques - -Les algorithmes génétiques s’appuient sur un principe de sélection des individus d’une population qui présen- -tent des caractéristiques se rapprochant au mieux de ce que l’on recherche; cette population évoluant par -ailleurs selon des critères d’évolution génétique à choisir. Dans le contexte du problème du voyageur de -commerce, un individu est une tournée, un chemin et une population un ensemble de tournées. Il s’agit -maintenant de dé...nir un critère de sélection ainsi que des règles d’évolution de la population. - -- approches métaheuristiques (exemples: colonies de fourmis) - -Exemple de résolution - -.. raw:: latex - - \begin{algorithm} - \caption{Algorithme du voyageur de commerce}\label{commerce} - \begin{algorithmic}[1] - - \BState \emph{Données} : $L$ \Comment{Liste des villes à parcourir avec les distances entre les villes} - \BState \emph{Données} : $L'$ \Comment{Liste du parcours des villes à effectuer} - \State \emph{début} - \BState ... - \State \emph{fin} - - \end{algorithmic} - \end{algorithm} diff --git a/AlgoApprofondie/cours/cesar.py b/AlgoApprofondie/cours/cesar.py deleted file mode 100644 index c3d25ac..0000000 --- a/AlgoApprofondie/cours/cesar.py +++ /dev/null @@ -1,61 +0,0 @@ -# coding: utf-8 -minuscules = 'abcdefghijklmnopqrstuvwxyz' -majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - -def rotation(chaine, x): - """ - Effectue une rotation de x caractères vers la droite: - >>> rotation('abcde', 2) - 'cdeab' - """ - return chaine[x:] + chaine[:x] - -def index(c, chaine): - """ - Trouve l'index de c dans la chaine: - >>> index('n', 'bonjour') - 2 - """ - for i in range(len(chaine)): - if (c == chaine[i]): - return i - return -1 - -def chiffre_minuscules(chaine, x): - """ - Chiffre une chaîne composée de minuscules - >>> chiffre_minuscules('bonjour', 3) - 'erqmrxu' - """ - r = rotation(minuscules, x) - resultat = '' - for lettre in chaine: - resultat = resultat + r[index(lettre, minuscules)] - return resultat - -def chiffre(chaine, x): - """ - Chiffre une chaîne quelconque - >>> chiffre('Bonjour les amis!', 3) - 'Erqmrxu ohv dplv!' - """ - r_min = rotation(minuscules, x) - r_maj = rotation(majuscules, x) - resultat = '' - for lettre in chaine: - if lettre in minuscules: - resultat = resultat + r_min[index(lettre, minuscules)] - elif lettre in majuscules: - resultat = resultat + r_maj[index(lettre, majuscules)] - else: - resultat = resultat + lettre - return resultat - -############################################################################# -# Programme principal -############################################################################# -print(chiffre_minuscules('bonjour', 3)) -print(chiffre('Bonjour les amis!', 3)) -print(chiffre('Erqmrxu ohv dplv!', 23)) -print(chiffre('Eudyr, yrxv dyhc ilql fhw hahuflfh!', 23)) - diff --git a/AlgoApprofondie/cours/code/factorielle.ml b/AlgoApprofondie/cours/code/factorielle.ml deleted file mode 100644 index 5065a2c..0000000 --- a/AlgoApprofondie/cours/code/factorielle.ml +++ /dev/null @@ -1,17 +0,0 @@ -let rec fact = function - |1 -> 1 - | n -> n * fact (n-1) ;; - -let print_fact n = - Printf.printf "factorielle %i = %i\n" n (fact n) - -let main () = - begin - print_fact 5 ; - print_newline () ; - exit 0 ; - end - -let _ = main () - - diff --git a/AlgoApprofondie/cours/code/factorielle.py b/AlgoApprofondie/cours/code/factorielle.py deleted file mode 100644 index 734719f..0000000 --- a/AlgoApprofondie/cours/code/factorielle.py +++ /dev/null @@ -1,12 +0,0 @@ -def factorielle(n): - if (n > 1): - r = n*factorielle(n-1) - else: - r = 1 - return r - -def print_fact(n): - print "factorielle {} = {}\n".format(5, factorielle(5)) - -if __name__ == '__main__': - print_fact(5) diff --git a/AlgoApprofondie/cours/conf.py b/AlgoApprofondie/cours/conf.py deleted file mode 100644 index 3005e97..0000000 --- a/AlgoApprofondie/cours/conf.py +++ /dev/null @@ -1,370 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Algorithmique documentation build configuration file, created by -# sphinx-quickstart on Thu Mar 16 16:07:00 2017. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig', -] - -# ajout des cours avec solution des exercices ou non -def setup(app): - app.add_config_value('correction', False, 'env') - app.add_config_value('exercice', False, 'env') - -exercice = False -correction = False - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.txt' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Algorithmique Approfondie' -copyright = u'2017, Gwen' -author = u'Gwen' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = u'1' -# The full version, including alpha/beta/rc tags. -release = u'1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'fr' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -today_fmt = '%d/%m/%Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -default_role = 'literal' - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'alabaster' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -html_show_sphinx = False - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -html_show_copyright = False - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Algorithmiquedoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -'papersize': 'a4paper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -'preamble': """\usepackage{amsmath} -\usepackage{algorithm} -\usepackage[noend]{algpseudocode} -\makeatletter -\def\BState{\State\hskip-\ALG@thistlm} -\makeatother - -""" - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'AlgorithmiqueApprofondie.tex', u'Cours d\'algorithmique approfondie', - u'INFAL24', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -latex_logo = '_static/cesi.jpg' - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = False - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'algorithmique', u'Algorithmique Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'Algorithmique', u'Algorithmique Documentation', - author, 'Algorithmique', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - - -# -- Options for Epub output ---------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = project -epub_author = author -epub_publisher = author -epub_copyright = copyright - -# The basename for the epub file. It defaults to the project name. -#epub_basename = project - -# The HTML theme for the epub output. Since the default themes are not -# optimized for small screen space, using the same theme for HTML and epub -# output is usually not wise. This defaults to 'epub', a theme designed to save -# visual space. -#epub_theme = 'epub' - -# The language of the text. It defaults to the language option -# or 'en' if the language is not set. -#epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -#epub_identifier = '' - -# A unique identification for the text. -#epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -#epub_cover = () - -# A sequence of (type, uri, title) tuples for the guide element of content.opf. -#epub_guide = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_pre_files = [] - -# HTML files that should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_post_files = [] - -# A list of files that should not be packed into the epub file. -epub_exclude_files = ['search.html'] - -# The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 - -# Allow duplicate toc entries. -#epub_tocdup = True - -# Choose between 'default' and 'includehidden'. -#epub_tocscope = 'default' - -# Fix unsupported image types using the Pillow. -#epub_fix_images = False - -# Scale large images. -#epub_max_image_width = 0 - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#epub_show_urls = 'inline' - -# If false, no index is generated. -#epub_use_index = True diff --git a/AlgoApprofondie/cours/control.txt b/AlgoApprofondie/cours/control.txt deleted file mode 100644 index 7770490..0000000 --- a/AlgoApprofondie/cours/control.txt +++ /dev/null @@ -1,294 +0,0 @@ -Les structures de contrôle -========================== - -L'instruction de saut ----------------------- - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de saut conditionnel}\label{saut} - \begin{algorithmic}[1] - \Procedure{Euclide}{} \Comment{c'est l'algorithme d'Euclide} - \State $\textit{stringlen} \gets \text{length of }\textit{string}$ - \State $i \gets \textit{patlen}$ - \BState \emph{top}: - \If {$i > \textit{stringlen}$} \Return false - \EndIf - \State $j \gets \textit{patlen}$ - \BState \emph{loop}: \Comment{C'est le label (l'étiquette)} \label{etiquette} - \If {$\textit{string}(i) = \textit{path}(j)$} - \State $j \gets j-1$. - \State $i \gets i-1$. - \State \textbf{goto} \emph{loop}. \label{goto} - \State \textbf{close}; - \EndIf - \State $i \gets - i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$. - \State \textbf{goto} \emph{top}. \Comment{C'est l'instruction de saut} - \EndProcedure - \end{algorithmic} - \end{algorithm} - - -.. raw:: latex - - Ligne \ref{etiquette}, le bloc `loop` est aussi un label (une étiquette), - c'est-à-dire une marque posée qu'il est possible de retrouver dans le programme. \\ - -.. raw:: latex - - Ligne \ref{goto}, l'instruction \texttt{goto} (aller à ) est le saut vers le label. \\ - -Description générique d'une instruction de saut:: - - Instruction 1 - Saut Label1 - Instruction 2 - ... - Label1: - Instruction n - -.. important:: les sauts conditionnels sont à éviter, même s'ils sont implémentés - dans le langage cible, car c'est le meilleur moyen d'aboutir à - du **code spaghetti**. - -L'instruction de branchement conditionnel ------------------------------------------- - -On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple d'instruction de test} - \begin{algorithmic}[1] - \BState \emph{entrée}: $quality\gets 0$ \Comment{C'est cette valeur qui sera testée} - \BState \emph{locale}: $a\gets ""$ - \BState \emph{sortie}: $a$ \Comment{La sortie est la valeur de $a$} - \BState \emph{corps}: - \If{$quality\ge 9$} - \State $a\gets perfect$ - \ElsIf{$quality\ge 7$} - \State $a\gets good$ - \ElsIf{$quality\ge 5$} - \State $a\gets medium$ - \ElsIf{$quality\ge 3$} - \State $a\gets bad$ - \Else - \State $a\gets unusable$ - \EndIf - \end{algorithmic} - \end{algorithm} - - - -.. ifconfig:: exercice - - **Exercice** : Compacter l'algorithme suivant en une seule condition de test:: - - Si il fait trop chaud Alors - Si il ne pleut pas Alors - Ouvrir la fenêtre - Sinon - Fermer la fenêtre - Finsi - Sinon - Fermer la fenêtre - Finsi - -.. ifconfig:: correction - - **Correction** : - - :: - - Si il fait trop chaud ET il ne pleut pas Alors - Ouvrir la fenêtre - Sinon - Fermer la fenêtre - Finsi - - -L'instruction switch --------------------- - -L'instruction switch permet de faire plusieurs tests de valeurs sur le contenu d'une même variable. -Ce branchement conditionnel simplifie beaucoup le test de plusieurs valeurs d'une variable. - -Les instructions d'itérations (boucles) ---------------------------------------- - -.. important:: Toutes les boucles concernent le paradigme de programmation impératif - et ne sont pas valides dans le paradigme de programmation fonctionnel - (puisque l'ordre d'évaluation importe) - -- arrêt conditionnel (break) -- passage d'un pas (continue) - -Répéter ... jusqu'à -~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de répéter ... jusqu'à} - \begin{algorithmic}[1] - \BState \emph{locales}: $i \gets 1$ \Comment{déclaration et initialisation de i} - \Repeat \Comment{c'est le label de début du répéter} - \State $i \gets \textit{i+1}$ - \Until{i == 100} \Comment{condition de fin de la boucle} - \end{algorithmic} - \end{algorithm} - -La boucle **pour** (for) -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle for} - \begin{algorithmic}[1] - \BState \emph{locales}: $sum\gets 0$ - \For{$i\gets 1, n$} - \State $sum\gets sum+i$ - \EndFor - \end{algorithmic} - \end{algorithm} - - - - - -.. ifconfig:: exercice - - **Exercice** : Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, - et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres - -.. ifconfig:: correction - - **Correction** : - :: - - Variables N, i, PG en Entier - Debut - PG <- 0 - Pour i <- 1 à 20 - Ecrire "Entrez un nombre : " - Lire N - Si i = 1 ou N > PG Alors - PG <- N - FinSi - Ecrire "Le nombre le plus grand était : ", PG - Fin - - -.. attention:: ne jamais manipuler le compteur dans une boucle - -:: - - Variable Truc en Entier - Début - Pour Truc <- 1 à 15 - Truc <- Truc * 2 - Ecrire "Passage numéro : ", Truc - Truc Suivant - Fin - -La boucle tant que (while) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle while} - \begin{algorithmic}[1] - \BState \emph{locales}: $sum\gets 0$ - \State $i\gets 1$ - \While{$i\le n$} - \State $sum\gets sum+i$ - \State $i\gets i+1$ - \EndWhile - \end{algorithmic} - \end{algorithm} - -.. ifconfig:: exercice - - **Exercice** : Ecrire un algorithme de validation d'une entrée utilisateur - - :: - - "Voulez vous un café ? (O/N)" - -.. ifconfig:: correction - - **Correction** : deux solutions possibles, une - - :: - - Variable Rep en Caractère - Début - Rep <- "" - Ecrire "Voulez vous un café ? (O/N)" - TantQue Rep <> "O" et Rep <> "N" - Lire Rep - Si Rep <> "O" et Rep <> "N" Alors - Ecrire "Saisie Erronée, Recommencez" - FinSi - FinTantQue - Fin - - :: - - Variable Rep en Caractère - Début - Ecrire "Voulez vous un café ? (O/N)" - Lire Rep - TantQue Rep <> "O" et Rep <> "N" - Ecrire "Vous devez répondre par O ou N. Recommencez" - Lire Rep - FinTantQue - Ecrire "Saisie acceptée" - Fin - -.. ifconfig:: exercice - - **Exercice** : "C'est plus, C'est moins", c'est-à-dire Ecrire un algorithme qui demande à l’utilisateur - un nombre compris entre a et b jusqu’à ce que la réponse convienne. - -.. ifconfig:: correction - - **Correction** : - - :: - - Variable N en Entier - Debut - N <- 0 - Ecrire "Entrez un nombre entre 10 et 20" - TantQue N < 10 ou N > 20 - Lire N - Si N < 10 Alors - Ecrire "Plus grand !" - SinonSi N > 20 Alors - Ecrire "Plus petit !" - FinSi - FinTantQue - Fin - -Et les autres boucles : répéter... jusqu'à, etc... - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle répéter} - - \begin{algorithmic}[1] - \State $sum\gets 0$ - \State $i\gets 1$ - \Repeat - \State $sum\gets sum+i$ - \State $i\gets i+1$ - \Until{$i>n$} - \end{algorithmic} - \end{algorithm} diff --git a/AlgoApprofondie/cours/donnees.txt b/AlgoApprofondie/cours/donnees.txt deleted file mode 100644 index 990629e..0000000 --- a/AlgoApprofondie/cours/donnees.txt +++ /dev/null @@ -1,577 +0,0 @@ -Les structures de données -=========================== - -.. glossary:: - - ATD - - Abstract Data Type, structure de données abstraites. - La représentation des données est forcément un choix. - Il est impossible de rendre compte globalement d'un élément du réel, - il faut en faire une interprétation abstraite. - -**Exemple**: - -- Un être humain peut être représenté par les données présentes dans sa - carte d'identité. Mais un être humain n'est pas sa carte d'identité. -- Un être humain peut être représenté par les données présentes dans ses préférences - de surf sur internet. Mais un être humain **n'est pas** l'ensemble de ses logs de surf sur le net. - -Les séquences -------------- - -Les types séquences (listes) - -.. code-block:: ocaml - - # 4::1::5::8::1::[];; - - : int list = [4 ;1 ;5 ;8 ;1] - - -Un ensemble de valeurs portant le même nom de variable et repérées par un nombre, s’appelle un tableau, ou encore une liste, ou une variable indicée. -Le nombre qui, au sein d’un tableau, sert à repérer chaque valeur s’appelle l’indice. -Chaque fois que l’on doit désigner un élément du tableau, on fait figurer le nom du tableau, suivi de l’indice de l’élément. - -**manipulation** : - -- `insert()` -- `append()` -- `remove()` -- `find()` -- `print()` -- ... - -.. code-block:: python - - zoo = ['bear', 'lion', 'panda', 'zebra'] - print(zoo) - - # But these list elements are not - biggerZoo = ['bear', 'lion', 'panda', 'zebra', ['chimpanzees', 'gorillas', 'orangutans', 'gibbons']] - print(biggerZoo) - -- Lists Versus Tuples : types mutables, immutables -- Lists Versus Sets : non ordonné, collection simple - -- Recherche dans une liste, recherche du maximum dans une liste -- Recherche d’un mot dans une chaîne de caractères. - -Algorithme de la longueur d'une liste --------------------------------------- - -.. code-block:: ocaml - - # let rec longueur l = - match l with - [] -> 0 - | ::s -> 1 + (longueur s);; - -Cette fonction est prédéfinie en Ocaml : `List.length` - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme qui déclare et - remplisse un tableau de 7 valeurs numériques en les mettant toutes à zéro. - -.. ifconfig:: correction - - **Correction** : - :: - - Tableau Truc(6) en Numérique - Variable i en Numérique - Debut - Pour i <- 0 à 6 - Truc(i) <- 0 - i Suivant - Fin - - exemple d'implémentation en python - - .. code-block: python - - >>> liste = [] - >>> for i in range(6): - ... liste.append(i) - ... - >>> liste - [0, 1, 2, 3, 4, 5] - >>> - - -.. ifconfig:: exercice - - **Exercice** : Calcul du premier élément maximal dans une liste, - proposer une implémentation en python qui renvoie le maximum et - la position du max dans la liste. - -.. ifconfig:: correction - - **Correction** : - - .. code-block: python - - def max_list(L) : - k = len(L) - max, x = L[0], 0 - i = 1 - while i < k : - if max < L[i]: - max = L[i] - x = i - i = i + 1 - return max, x - - couple = max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - - Exemple de généricité : ce code fonctionne avec une chaîne de caractères. - - .. code-block: python - - couple = max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -.. glossary:: - - Matrice - - Tableaux de dimension multiple, c'est un tableau de tableau - -.. ifconfig:: exercice - - **Exercice** : Écrivez un algorithme remplissant un tableau de 6 sur 13, avec des zéros. - -.. ifconfig:: correction - - **Correction** : - - implémentation en python - - .. code-block:: python - - >>> matrice = [] - >>> for i in range(12): - ... matrice.append([0 for i in range(5)]) - ... - >>> from pprint import pprint - >>> pprint(matrice) - [[0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0]] - >>> - -Algorithmes de tri ------------------- - -On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre. - -Les algorithmes de tri ont une grande importance pratique. -Ils sont fondamentaux dans certains domaines (exemples : map-reduce en database non relationnelle). - -L'étude du tri est également intéressante en elle-même, c'est un des domaines de l'algorithmique très étudié et connu. - -Tri par insertion -~~~~~~~~~~~~~~~~~~ - -Cet algorithme de tri suit de manière naturelle la structure récursive des -listes. Soit l une liste à trier : - -- si l est vide alors elle est déjà triée -- sinon, l est de la forme x::s et on trie récursivement la suite s et on obtient une liste triée s’ - on insert x au bon endroit dans s’ et on obtient une liste triée - -Description de l'algorithme - -- la fonction inserer permet d’insérer un élément x dans une liste l -- si la liste l est triée alors x est inséré au bon endroit - -.. code-block:: ocaml - - # let rec inserer x l = - match l with - [] -> [x] - | y::s -> if x<=y then x::l else y::(inserer x s);; - val inserer : ’a -> ’a list -> ’a list - # inserer 5 [3 ;7 ;10];; - - : int list = [3 ; 5 ; 7 ; 10] - -Tri rapide -~~~~~~~~~~~~ - -soit une liste l à trier : - -- si l est vide alors elle est triée -- sinon, choisir un élément p de la liste (le premier par exemple) - nommé le **pivot** -- partager l en deux listes g et d contenant les autres éléments de l - qui sont plus petits (resp. plus grands) que la valeur du pivot p -- trier récursivement g et d, on obtient deux listes g’ et d’ triées - -.. code-block:: ocaml - :caption: fonction de partage d'une liste - - #let rec partage p l = - match l with - [] -> ([] , []) - |x::s -> let g,d = partage p s in - if x<=p then (x::g , d) else (g , x::d) ;; - val partage : ’a -> ’a list -> ’a list * ’a list = - # partage 5 [1 ;9 ;7 ;3 ;2 ;4];; - - : int list * int list = ([1 ; 3 ; 2 ; 4], [9 ; 7]) - -.. code-block:: ocaml - :caption: algorithme de tri rapide - - # let rec tri rapide l = - match l with - [] -> [] - | p::s -> let g , d = partage p s in - (tri rapide g)@[p]@(tri rapide d) ;; - val tri rapide : ’a list -> ’a list = - # tri rapide [5 ; 1 ; 9 ; 7 ; 3 ; 2 ; 4];; - - : int list = [1 ; 2 ; 3 ; 4 ; 5 ; 7 ; 9] - - -Définition d'un itérateur -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - >>> l = range(10) - >>> for i in l: - ... print l[i] - ... - 0 - ... - 8 - 9 - >>> l.__iter__() - - - -Les listes chaînées -~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - typedef struct list{ - int elt ; - struct list* suivant ; - } ; - - -**Outils de manipulation** : - -- `next()` -- `pointer()` -- `insert(l, a)` -- `remove(a, n)` - - -Les piles ----------- - -**manipulation** - -- `insert()` : insérer un élément à la fin de la pile -- `dequeue()` : (remove and return) : retirer un élément du haut de la pile -- FIFO : "first in first out" - - -Traduction d'une structure de données dans une autre ------------------------------------------------------ - -.. code-block:: python - - >>> listOfStrings = ['One', 'Two', 'Three'] - >>> strOfStrings = ' '.join(listOfStrings) - >>> print(strOfStrings) - One Two Three - >>> - >>> # List Of Integers to a String - ... listOfNumbers = [1, 2, 3] - >>> strOfNumbers = ''.join(str(n) for n in listOfNumbers) - >>> print(strOfNumbers) - 123 - >>> - -.. code-block:: python - - >>> l = [('host1', '10.1.2.3', '6E:FF:56:A2:AF:18'), ('host3', '10.1.2.5', '6E:FF:56:A2:AF:19')] - >>> result = [] - >>> for hostname, ip, macaddress in l: - ... result.append(dict(hostname=hostname, ip=ip, macaddress=macaddress)) - ... - >>> result - [{'hostname': 'host1', 'ip': '10.1.2.3', 'macaddress': '6E:FF:56:A2:AF:18'}, - {'hostname': 'host3', 'ip': '10.1.2.5', 'macaddress': '6E:FF:56:A2:AF:19'}] - >>> - - -.. ifconfig:: exercice - - **Exercice** : Proposer un algorithme de traduction de cette structure de donnée - - .. code-block:: python - - [ - { - 'address': '192.168.0.0', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - { - 'address': '192.168.0.0', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.12', 'high': '192.168.0.45', 'only_unknown': True }, - { 'low': '192.168.0.8', 'high': '192.168.0.35', 'only_unknown': False }, - ], - }, - { - 'address': '192.168.0.1', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - - ] - - En cette structure de données : - - .. code-block:: python - - [ - { - address: '192.168.0.0', - mask: '255.255.255.0', - dynamicRanges: [ - { low: '192.168.0.5', high: '192.168.0.12', only_unknown: true }, - { low: '192.168.0.50', high: '192.168.0.55', only_unknown: false },j - ], [ - { low: '192.168.0.12', high: '192.168.0.45', only_unknown: true }, - { low: '192.168.0.8', high: '192.168.0.35', only_unknown: false }, - ], - }, - { - 'address': '192.168.0.1', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - ] - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> from pprint import pprint - pprint(l) - [{'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}], - 'mask': '255.255.255.0'}, - {'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.45', - 'low': '192.168.0.12', - 'only_unknown': True}, - {'high': '192.168.0.35', - 'low': '192.168.0.8', - 'only_unknown': False}], - 'mask': '255.255.255.0'}] - >>> newdata = [] - >>> for i in l: - ... if i['address'] not in [j['address'] for j in newdata]: - ... newdata.append(i) - ... else: - ... for k in newdata: - ... if k['address'] == i['address']: - ... k['dynamicRanges'].extend(i['dynamicRanges']) - ... - >>> pprint(newdata) - [{'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}, - {'high': '192.168.0.45', - 'low': '192.168.0.12', - 'only_unknown': True}, - {'high': '192.168.0.35', - 'low': '192.168.0.8', - 'only_unknown': False}], - 'mask': '255.255.255.0'}, - {'address': '192.168.10.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}], - 'mask': '255.255.255.0'}] - >>> - -.. ifconfig:: exercice - - **Exercice** : Proposer un algorithme qui permette de récupérer la liste - des adresses IP disponibles - - .. code-block:: python - - { - "local": { - "leases": [ - { - "mac": "02:00:c0:a8:00:66", - "name": "pcxubuntu", - "address": "192.168.0.200" - }, - { - "mac": "02:00:c0:a8:00:67", - "name": "pcxubuntu", - "address": "192.168.0.201" - }, - { - "mac": "02:00:c0:a8:00:68", - "name": "pcxubuntu", - "address": "192.168.0.202" - } - ] - } - } - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> l = { - ... "local": { - ... "leases": [ - ... { - ... "mac": "02:00:c0:a8:00:66", - ... "name": "pcxubuntu", - ... "address": "192.168.0.200" - ... }, - ... { - ... "mac": "02:00:c0:a8:00:67", - ... "name": "pcxubuntu", - ... "address": "192.168.0.201" - ... }, - ... { - ... "mac": "02:00:c0:a8:00:68", - ... "name": "pcxubuntu", - ... "address": "192.168.0.202" - ... } - ... ] - ... } - ... } - >>> leases = l["local"]["leases"] - >>> from pprint import pprint - >>> pprint(leases) - [{'address': '192.168.0.200', 'mac': '02:00:c0:a8:00:66', 'name': 'pcxubuntu'}, - {'address': '192.168.0.201', 'mac': '02:00:c0:a8:00:67', 'name': 'pcxubuntu'}, - {'address': '192.168.0.202', 'mac': '02:00:c0:a8:00:68', 'name': 'pcxubuntu'}] - >>> addresses = [lease['address'] for lease in leases] - >>> addresses - ['192.168.0.200', '192.168.0.201', '192.168.0.202'] - >>> - - - -Structures de données complexes -------------------------------- - -Les types produits nommés -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On les appelle enregistrements, dictionnaires ou tables de hachage. - -:: - - algorithme monAlgorithme - // déclaration d'un enregistrement - enregistrement Personne - chaine nom; - chaine prenom; - entier age; - réel taille; - finenregistrement - ... - Personne[50] t; - début - // Initialisation - t[0].nom <- "Duchmol"; - t[0].prenom <- "Robert"; - t[0].age <- 24; - t[0].taille <- 1.80; - ... - fin - -.. code-block:: ocaml - - # type adresse = { rue : string ; ville : string ; cp : int};; - # type fiche = { - nom : string ; - prenom : string ; - adresse : adresse ; - date naissance : int * int * int ; - tel fixe : string ; - portable : string - };; - # let v1 = { a = 1 ; b = false ; c = 'r'};; - - - - -- les sommes (constructeurs) - -.. code-block:: ocaml - - # type couleur = Pique | Coeur | Carreau | Trefle;; - # let v = (Pique , Coeur);; - val v : couleur * couleur = (Pique , Coeur) - -.. code-block:: ocaml - - type nombre = - Ent of int | Reel of float | Cplx of float × float - Ent, Reel, Cplx sont les constructeurs du type. - -Autres structures de données complexes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- arbres -- graphes -- dates - -- le parcours de graphes -- les calculs de dates diff --git a/AlgoApprofondie/cours/fonctions.txt b/AlgoApprofondie/cours/fonctions.txt deleted file mode 100644 index 330cbca..0000000 --- a/AlgoApprofondie/cours/fonctions.txt +++ /dev/null @@ -1,588 +0,0 @@ -Les fonctions et les procédures -================================ - -Préliminaire : rappel de théorie de cybernétique -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Théorie de l'information (Claude Shannon, 1949), (ou théorie de la communication) - -Canal de transmission:: - - entrée -> récepteur -> émetteur -> sortie - -.. glossary:: - - cybernétique - - étude des fonctions de réflexes conditionnés du cerveau humain - utilisation au mieux en PNL ("programmation neuro-linguistique") - ou en analyse transactionnelle, ou au pire en ingérinerie sociale. - -La matérialité physique est considérée comme le hardware, le génétique (le -réseau neuronal) étant assimilé au network hardware. - -Les objets mentaux (fonctionnements psychologiques et épigénétiques du -cerveaux) est assimilé au logiciel, au software. - -IFTTT ("if this then that") : la causalité mondaine est ramenée à un ordre de -comportement affecté à un assimilé-machine. - -L'humain est ramené à une machine. -C'est articulation entre "déclencheur contextuel" et "action en réponse de" -n'est pas une "black box" mais un "feedback" qui, pour l'humain, -loin d'être ramené à une entrée/sortie, constitue un **feedback** -utile pour la connaissance de soi. - -A la place, la communication est ramenée à une **boucle de rétroaction** -(comme dans un prompt) entre un système comportemental et son environnement. -La représentation sujet/objet (la perspective traditionnelle) est remplacée -par le clivage intérieur/extérieur. Behaviorisme, procédural. - -L'humain est donc ramené à - -- un ordonnanceur -- un comportement intrinsèque (boîte noire) - -- un stimuli pavlovien (déclencheur, trigger) est considéré comme un paramètre -d'entrée -- une instruction comportementale est considérée comme une action de - traitement -- le résultat est observé. - -Cette articulation entre "déclencheur contextuel" et "action en réponse" -est très exactement une forclusion de la profondeur monadique (Leibniz) de -l'humain à la black box informationnelle (et cybernétique). - -Pour quoi faire ? Pour pirater. Pour manipuler. -Le piratage consiste à - -- isoler les constantes (les procédures répétitives, les algorithmes) -- les observer (collecter les données) - -afin de - -- les réécrire (influence toxique, pishing - hammeçonnage) -- les détruire (attaque en règle) - - -Description d'une procédure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -En programmation impérative, un programme est une suite d’instructions qui font -évoluer l’état mémoire, le résultat est dans l’état final de la mémoire. - -- une procédure peut prendre des paramètres -- elle modifie l'état courant du système - -- Déclaration des paramètes -- Déclaration du corps -- Appel de la procédure - -.. raw:: latex - - \begin{algorithm} - \caption{Procédure de permutation de deux entiers}\label{permutation} - \begin{algorithmic}[1] - \Procedure{permuter}{$a,b$}{} - \BState \emph{parametres}: - \State $a: \textit{int}$ - \State $b: \textit{int}$ - \BState \emph{locales}: - \State $z: \textit{int}$ \Comment{Une variable intermédiaire est nécessaire} - \BState \emph{corps}: - \State $z \gets a$ - \State $a \gets b$ - \State $b \gets z$ - \EndProcedure - \State \Call{permuter}{10, 12} \Comment{appel de la procédure} - \end{algorithmic} - \end{algorithm} - -effet de bord - - toute modification de la mémoire ou modification d'un support externe - -instruction - - commande ou phrase en mesure de modifier l'état du programme ou de la machine hôte - (allocation mémoire, support externe, disque, écran...) - -Une procédure ne renvoie pas de valeur, mais provoque un 'effet de bord' (écriture dans une globale, dans un flux sortant etc.). - -Une procédure permet de créer une instruction nouvelle qui deviendra une primitive pour le programmeur. -Cela permet de structurer le texte source du programme et améliorer sa -lisibilité. Cela permet aussi d'appeler plusieurs fois, et à plusieurs endroit -dans le code, cette primitive. - -Appel d'une procédure -~~~~~~~~~~~~~~~~~~~~~ - -(ex: pseudo-pascal) - -**déclaration de procédure** - -.. raw:: latex - - \begin{algorithm} - \caption{Procédure de permutation de deux entiers}\label{appelpermutation} - \begin{algorithmic}[1] - \Procedure{permuter}{$a,b$}{} - \BState \emph{parametres}: - \State $a: \textit{int}$ \Comment{paramètres formels de la procédure} - \State $b: \textit{int}$ - \BState \emph{locales}: - \State $z: \textit{int}$ \Comment{les variables locales de la procédure} - \BState \emph{corps}: - \State ... \Comment{Le corps de la procedure} - \EndProcedure - \State \Call{permuter}{10, 12} \Comment{l'appel de la procédure} - \end{algorithmic} - \end{algorithm} - - -- les variables x1,...,xn sont appelées *paramètres formels* de p -- les variables v1,...,vm sont appelées *les variables locales* de p - -les valeurs effectivement passées en paramètres, ici `10, 12` -sont appelées **paramètres effectifs** de p - -signature - - C'est l'ensemble paramètre formel + resultat de l'appel - -fermeture - - L'ensemble procédure + variables locales + signature + parametres effectifs - est appelé une **fermeture**. C'est la procédure + son contexte qui permet - de l'instancier dans un programme. - -Environnement - - Contexte d’évaluation d'une expression ou d'une fonction - -Portée - - La portée d'un identifiant (une variable) est sa condition d'utilisation dans un contexte donné - (utilisation locale uniquement, ou bien globale, ou bien locale et globale) - La portée d’une liaison est la portion du code dans laquelle cette - liaison est valide (i.e. où un identifiant est lié à une expression). - -.. ifconfig:: exercice - - **Exercice** : Que donne ce code ? - - .. code-block:: ocaml - - # let x = 42 in - let y = x - 1 in x - y ;; - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: ocaml - - - : int = 1 - - -.. code-block:: ocaml - - let a = 3 (* première liaison pour l'identifiant a *) - let b = 5 and c = 6 - let somme = a + b + c - val somme : int = 14 - let a = 45 (* deuxième liaison pour l'identifiant a *) - somme - val a : int = 45 - -.. ifconfig:: exercice - - **Exercice** : Que donne ce code ? - - .. code-block:: ocaml - - let a = 3 and b = 4 and c = 8 ;; - let somme = a + b + c ;; - val somme : int = ??? - let a = 44 - let b = 5 - let c = 1 - somme - - : int = ??? - -.. ifconfig:: correction - - .. code-block:: ocaml - - let a = 3 and b = 4 and c = 8 ;; - - : int = 15 - let somme = a + b + c ;; - val somme : int = 15 - let a = 44 - let b = 5 - let c = 1 - somme - - : int = 15 - - Même code en python - - .. code-block:: python - - >>> a = 1 - >>> b = 2 - >>> c = 3 - >>> somme = a + b + c - >>> somme - 6 - >>> a = 56 - >>> b = 5678 - >>> c = 56789 - >>> somme - 6 - >>> - -Portée locale dans une expression - -.. code-block:: ocaml - - # let a = 2 and b = 3 and c = 4 in - let somme = a+b+c in - somme - - : int = 9 - # somme ;; - Error: Unbound value somme - # a ;; - Error: Unbound value a - -.. important:: - - L’ordre d’évaluation dans un let ... in ... est bien déterminé, - sans grande importance dans un cadre purement fonctionnel, mais important - en cas d’effets de bord - - -Exemple de variable globale modifiée localement (**attention, mauvaise pratique** !) : - -.. code-block:: python - - >>> a = 5 - >>> def print_a(): - ... print("La variable a = {0}.".format(a)) - ... - >>> print_a() - La variable a = 5. - >>> a = 8 - >>> print_a() - La variable a = 8. - >>> - - - -niveau - - Le niveau d’une déclaration (de variable ou de procédure) est le nombre - de procédures sous lesquelles elle est déclarée. Le programme principal - a le niveau 0. - -.. code-block:: python - :linenos: - - def _get_config(name): - # return config value - if not isfile(CONFIG_FILE): - raise Exception("Fichier de configuration non existant") - from ConfigParser import ConfigParser - cfg = ConfigParser(allow_no_value=True) - cfg.read(CONFIG_FILE) - - if name == "SUBNETS": - return eval(cfg.get('eole', 'subnets')) - elif name == "LEASES_FILE": - DHCP_PATH = cfg.get('eole', 'container_path_dhcp') - return join('/', DHCP_PATH, 'var/lib/dhcp/dhcpd.leases') - def get_routes(*args, **kwargs): - """ - Send list of reserved IP - return list of tuple (id, machine name, IP, MAC Adress) - """ - cfg = creole_loader(load_extra=True, rw=False, owner=MODNAME, - mandatory_permissive=False) - return zip(cfg.dhcp.dhcp.id_dhcp.id_dhcp, cfg.dhcp.dhcp.id_dhcp.hostname, - cfg.dhcp.dhcp.id_dhcp.ip, cfg.dhcp.dhcp.id_dhcp.macaddress) - -On voit que l'objet `cfg` ligne 6 et 7 a le même nom que l'objet `cfg` ligne 19. -C'est autorisé et les espaces de nommages sont différents. - - -Description d'une fonction -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Une fonction renvoie une valeur et ne modifie pas l'état courant du programme -en cours d'exécution ni ne réalise d'effets de bord. Elle renvoie -**toujours** quelque chose (même la valeur ``None`` qui n'est pas rien) - -- une procédure peut prendre des paramètres -- elle modifie l'état courant du système - -- Déclaration des paramètes -- Déclaration du corps -- Appel de la fonction - -En programmation fonctionnelle, programme est un ensemble de définitions de fonctions, -un résultat est l'application d’une fonction à une structure de données effective. - -- composant de base : la fonction -- opération de base : l’application - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de fonction}\label{fonction} - \begin{algorithmic}[1] - \Function{permuter}{$a,b$}{} \Comment{définition de la fonction} - \BState \emph{parametres}: \Comment{déclaration (noms, types) des paramètres formels} - \State $a: \textit{int}$ - \State $b: \textit{int}$ - \BState \emph{locales}: \Comment{déclaration (noms, types) des valeurs locales} - \State $z: \textit{int}$ - \BState \emph{corps}: - \State $z \gets a$ - \State $a \gets b$ - \State $b \gets z$ - \BState \emph{return}: \Comment{La valeur, le résulat renvoyé par la fonction} - \EndFunction - \State \Call{permuter}{10, 12} \Comment{appel de la fonction} - \BState \emph{result}: - \State (12, 10) \Comment{Le résultat effectif de la fonction après appel} - \end{algorithmic} - \end{algorithm} - -.. ifconfig:: exercice - - **Exercice** : factoriser le code suivant - :: - - Ecrire "Etes-vous marié ?" - Rep1 <- "" - TantQue Rep1 <> "Oui" et Rep1 <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Rep1 - FinTantQue - ... - Ecrire "Avez-vous des enfants ?" - Rep2 <- "" - TantQue Rep2 <> "Oui" et Rep2 <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Rep2 - FinTantQue - -.. ifconfig:: correction - - **Correction** : - - :: - - Fonction RepOuiNon() en caractère - Truc <- "" - TantQue Truc <> "Oui" et Truc <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Truc - FinTantQue - Renvoyer Truc - Fin - - Ecrire "Etes-vous marié ?" - Rep1 <- RepOuiNon() - ... - Ecrire "Avez-vous des enfants ?" - Rep2 <- RepOuiNon() - - -Définition mathématique -~~~~~~~~~~~~~~~~~~~~~~~~~ - -fonction - - Une fonction f d’un ensemble E vers un ensemble F est une - correspondance qui associe à chaque élément de E au plus - un élément de F. - -- E est appelé le domaine de définition -- F est appelé codomaine -- la **signature** de la fonction : `E → F (int -> int = )` - - -Exemple de signature d'une fonction - -:: - - Fonction RepOuiNon(Msg en Caractère) en Caractère - Ecrire Msg - Truc <- "" - TantQue Truc <> "Oui" et Truc <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Truc - FinTantQue - Renvoyer Truc - Fin Fonction - - ... - Rep1 <- RepOuiNon("Etes-vous marié ?") - ... - Rep2 <- RepOuiNon("Avez-vous des enfants ?") - ... - - -curryfication - - évaluation de l'application d'une fonction - -- évaluter `(f x y)` -- peut donner une **valeur fonctionnelle** -- évaluation de la valeur fonctionnelle sur une valeur des types de base - -:: - - let g = function n -> (function p -> p + 1) n;; - -Typage d'une fonction -~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - # let f x y z = if x > 0 then y + x else z - x;; - val f : int -> int -> int -> int = - -c’est en fait une fonction à un argument qui retourne une fonction:: - -.. code-block:: ocaml - - val f : int -> (int -> (int -> int)) = - -application de f à trois valeurs - -.. code-block:: ocaml - - # f 1 2 3;; - - : int = 3 - -en programmation fonctionnelle, -les fonctions sont des valeurs comme les autres - - -.. code-block:: ocaml - - # fun x -> x * x;; - - : int -> int = - -Récursivité -~~~~~~~~~~~~ - -.. code-block:: ocaml - - let rec fact n = - if n=0 then 1 else n * fact (n-1) - - -équivalent impératif utilisant une boucle - -.. code-block:: c - - int fact(int n){ - int f = 1 ; - int i = n ; - while (i>0){ - f = f * i; - i-- ; - } ; - return f ; - } - -Définitions par cas -~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - let rec fact n = - match n with - 0 -> 1 - | -> n * fact (n-1) - -**exemple** : la fonction puissance - -.. code-block:: ocaml - - let rec puissance x n = match n with - 0 -> 1 - | -> x * puissance x (n-1) - - - -.. ifconfig:: exercice - - **Portée locale dans une fonction** - Quelles sera la valeur de la variable `a` ? - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + a - - -.. ifconfig:: correction - - Correction: - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + a - >>> a - 4 - >>> - - -.. ifconfig:: exercice - - **Exercice** : Portée locale dans une fonction avec variable globale - Quelles sera la valeur de la variable `a` ? - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... global a - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + 3 - >>> - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... global a - ... a = 2 - ... return a + 1 - ... - >>> myfunc() - 3 - >>> a - 2 - >>> a = myfunc() + 3 - >>> a - 6 - >>> diff --git a/AlgoApprofondie/cours/fondement.txt b/AlgoApprofondie/cours/fondement.txt deleted file mode 100644 index 874365c..0000000 --- a/AlgoApprofondie/cours/fondement.txt +++ /dev/null @@ -1,198 +0,0 @@ -Présentation de l'art de programmer -==================================== - -Qu'est-ce que la programmation ? --------------------------------- - -programmation - - Description d’un calcul (traitement) dans - un langage compréhensible par la machine - (langage de programmation) - -Le processus d'abstraction --------------------------- - -Débuter en programmation n'est pas une chose aisée. Aujourd'hui, la tendance est au -"bas niveau". Souvent, on se jette dans le grand bain : - -- soit en s'approchant au maximum de la machine (admin système et réseau, noyau - linux, langage C) - -- soit en faisant du dev web côté backend, ce qui ramène à une administration réseau - de bas niveau (microservices, monde nodeJS/javascript, etc...) - -Soit on suit un cursus scolaire traditionnel qui commence souvent par une -explication du fonctionnement d'une machine abstraite de bas niveau, puis en -allant de plus en plus haut, mais étant sous-entendu qu'il faut rester connecté au -bas niveau (comprendre comment ça se passe derrière la scène). - -Dans ces deux cas, il est sous-entendu qu'on apprend plus de choses et plus rapidement en mettant -les mains dans le cambouis, ce qui est vrai bien sûr. Mais cela sous-entend qu'un développeur doit -rester le nez dans le guidon. Qu'il doit être un expert de son domaine en accumulant des technologies -sans aucun recul. Bien sûr il se doit d'être un expert du système dans lequel il évolue -(connaissance du système d'exploitation, binding avec le C, du ramasse miette (garbage -collector), interaction avec les différentes librairies, gestion et optimisation de la mémoire, -architecture par microservices, threads...) mais il doit aussi être capable de prendre du recul. - -L'approche algorithmique (algorithmique de pseudo code, algorithmique algébrique et modulaire) -est un véritable moyen pour le programmeur de prendre du recul : elle commence par se placer du -côté de l'esprit humain et de ses capacités de compréhension et d'abstraction, elle autorise une -pensée rationnelle sur l'art de programmer et permet au programmeur d'effectuer les bons choix, -en connaissance de sa discipline. - -Le lien est fait ensuite avec le plus bas niveau grâce une implémentation effective -des langages à partir des paradigmes de rationalisation de la penseée (modules, -objects, généricité, polymorphisme paramétrique...) et d'un outil de communication -avec la machine qu'on appelle compilateur (dont la description est en dehors de -l'objectif de ce cours). - -La tendance générale de l'évolution des langages est de se libérer de ces -contraintes de bas niveau, un peu comme en sciences physiques où les lois physiques -dépendent de l'échelle d'en dessous (du niveau microscopique/quantique) mais qu'à -l'échelle du dessus, on n'a pas affaire à des effets de bas niveau (pas d'effets -quantiques à un niveau macroscopique en général). Ce processus d'évolution est vrai -aussi dans le monde de la technique informatique lui-même (modèle OSI, comment est -construite une trame IP, indépendances de chaque couche (transport, payload) entre -elles). Même la tendance système est à la virtualisation qui accentue encore la -tendance à s'affranchir du bas niveau (le niveau système), le séparer nettement du -haut niveau (le niveau applicatif). - -Il apparaît régulièrement de nouveaux langages. Comment s'orienter ? Quel(s) -langage(s) choisir pour un projet de développement ? Au delà de leurs disparités, la -conception et la genèse de chacun d'eux procèdent d'une motivation partagée : la -volonté d'abstraire. - -- **s'abstraire de la machine** : un langage de programmation permet de - négliger l'aspect *mécanique* de l'ordinateur. On oublie le modèle du - microprocesseur, jusqu'au système d'exploitation sur lequel sera exécuté - le programme. - -- **abstraire les erreurs** : Il s'agit ici de garantir la sûreté d'exécution; un - programme ne doit pas se terminer brutalement ou devenir incohérent en cas d'erreur. - Un des moyens pour y parvenir est le typage des programmes et la mise - en oeuvre d'un mécanisme d'exceptions. - -- **abstraire le mode opératoire** : Il s'agit de choisir une représentation, un - paradigme d'implémentation qui est indépendant du domaine considéré (paradigme - objet, modulaire, générique, composants...) - -- **abstraire les composants** : Les langages de programmation donnent la - possibilité de découper une application en différents composants logiciels, plus ou - moins indépendants et autonomes. La modularité permet une structuration de plus haut - niveau de l'ensemble d'une application complexe. Les langages à objets constituent - une autre approche de la réutilisabilité permettant la réalisation très rapide de - prototypes. - -Description des niveaux d'abstraction par rapport à la machine ---------------------------------------------------------------- - -Les langages de haut niveau simplifient le travail du -programmeur là où les langages de bas niveau permettent de produire un code -plus efficace. - -- **niveau 0** : le langage machine. Illisible, c'est une suite d'optcode. - impossible de coder dans ce langage. - -- **niveau 1** : langage d'assemblage. Il reste très dépendant de la machine - et aujourd'hui il est rare d'en faire, sauf si on code un bootloader par exemple, - la gestion de l'accès à la mémoire est en réel (le mode protégé n'apparaît que après). - Il faut gérer les ressources,le langage est très optimisé mais presque impossible - à maintenir et rendre générique. Aujourd'hui plus personne ne code en assembleur. - -- **niveau 2** : langages dits de **bas niveau** : (exemple : le C, le C++) - indépendance par rapport à la machine, grande structuration mais très verbeux - -- **niveau 3** : langages dits de **haut niveau** : le raisonnement dans ces - langages ne dépent plus de la machine, et ils implémentent des paradigmes de - programmation indépendant de l'état de la mémoire de l'ordinateur, - ils sont indépendant même du système d'exploitation. - -Qu'est-ce qu'une machine ? ---------------------------- - -Une machine, ce truc apparemment si complexe, est en fait -un assemblage de bric et de brac. - -L'assemblage des connecteurs permet de simuler un additionneur, -en prenant en compte les propriétés de **reste euclidien** -de l'addition. - -La structure électronique est composée de : - -- un ordonnanceur. -- le stockage d'un **état**. -- une pile d'instruction - -.. glossary:: - - adressage - - Dès lors qu'on dispose de ces bases électronique au dessus du processeur, - un langage d'assemblage est possible, c'est le langage de calcul sur les registres. - - registre - - machines ont un espace mémoire et un espace de calcul (registres) - -Un ordinateur, c'est très très stupide, mais ça permet de disposer de : - -- une mémoire très grande et ordonnée, -- une capacité à effectuer inlassablement des tâches répétitives -- une grande rapidité de calcul - -Apprendre à programmer, c'est-à-dire être capable de -contrôler la machine. - -.. important:: Apprendre à programmer, c'est-à-dire apprendre à penser de manière structurée, - pour pouvoir accessoirement ensuite communiquer avec une machine. - -Compilateur ------------ - -Schématiquement, un compilateur est un programme qui traduit un -programme d’un langage source vers un langage cible, en signalant -d’éventuelles erreurs. - -Quand on parle de compilation, on pense typiquement à la traduction d’un -langage de haut niveau (C, Java, Caml, ...) vers le langage machine d’un -processeur (Intel Pentium, PowerPC, ...) - -- xml (libre office, word) -> postscript (imprimante) -- postcript -> image -- syntaxe wiki -> html (Wikipédia...) - -compilation graphique - - passer une description, ça donne un dessin genre ocaml Quilt < mon_dessin.txt - passer par une api qui permet de causer avec une interface - -**transpiler** : transformation d'un langage de haut niveau vers un autre -langage de haut niveau. - -- cofee script, typescript -> javascript -- (babel) javascript -> javascript ES 6 -- python -> javascript - -Un compilateur traduit un programme P en un programme Q tel que -pour toute entrée x , la sortie de `Q(x)` soit la même que celle de `P(x)` - -Un interprète est un programme qui, étant donné un programme `P` et une -entrée x , calcule la sortie s de `P(x)` - -Le compilateur fait un travail complexe une seule fois, pour produire un -code fonctionnant pour n’importe quelle entrée -L’interprète effectue un travail plus simple, mais le refait sur chaque entrée -Autre différence : le code compilé est généralement bien plus efficace que -le code interprété - -Typiquement, le travail d’un compilateur se compose d’une phase d’analyse - -- reconnaît le programme à traduire et sa signification -- signale les erreurs et peut donc échouer (erreurs de syntaxe, de portée, de typage, etc.) - -Puis d’une phase de synthèse - -- production du langage cible -- utilise de nombreux langages intermédiaires -- n’échoue pas diff --git a/AlgoApprofondie/cours/index.txt b/AlgoApprofondie/cours/index.txt deleted file mode 100644 index aa2ef7d..0000000 --- a/AlgoApprofondie/cours/index.txt +++ /dev/null @@ -1,19 +0,0 @@ -Introduction à l'algorithmique -================================ - -.. toctree:: - :maxdepth: 2 - - presentation - fondement - langage - algo - programme - fonctions - control - donnees - apercu - modularite - modules - tp - annexes/index diff --git a/AlgoApprofondie/cours/langage.txt b/AlgoApprofondie/cours/langage.txt deleted file mode 100644 index 67f858d..0000000 --- a/AlgoApprofondie/cours/langage.txt +++ /dev/null @@ -1,336 +0,0 @@ -Les langages de programmation -============================= - -langage - - Un langage de - programmation - doit permettre d'écrire des - programmes de bonne qualité - -Un programme doit être : - -- correct -- robuste -- lisible, bien documenté -- facile à modifier, extensible - -Un langage de programmation doit permettre : - -- la programmation structurée -- la structuration avec les types -- proposer un mécanisme d’exceptions -- présenter des caractères de généricité, de polymorphisme et de surcharge - -.. important:: La structuration et l'organisation modulaire sert à maintenir de grands programmes, - Elles sont une nécessité - -Approche historique et chronologique -------------------------------------- - -- Lambda calcul (1930) -- machines de Turing (1936) -- début des langages vers les années 1950 (A0, Fortran(impératif), - Lisp(impératif et fonctionnel), Cobol) -- années 60 : Simula (classes), CPL (compilation séparée) -- années 70 : C (référence du langage impératif de bas niveau), Pascal - (procédures), Smalltalk (programmation orientée objects), Prolog - (programmation logique), Scheme (programmation fonctionnelle pure), Modula, - C++, Ada, Turbo Pascal, Common Lisp, Eiffel (programmation par contrats) -- années 80 : ML, CAML (langages fonctionnels) -- années 90 : Perl, Python, Ruby (languages de scripting multi-paradigmes) - Haskell (fonctionnel pur), Lua, Delphi, Java (orienté objet, machine - virtuelle), PHP (impératif, dédié au web), Erlang (fonctionnel+ - programmation concurrente), javascript (orienté web, objets par - prototypage), OCaml (multi-paradigme, fortement typé, orienté sécurité, - programmation générique, fonctionnelle et objets, modulaire et fonctorielle) -- 2009 : go (google, compilé, typage statique, objets par prototypage, - prgrammation concurrente), Rust (fondation mozilla, multiparadigme, programmation concurrente) - -Les langages actuellement les plus utilisés dans le monde de l'entreprise sont : - -- javascript/NodeJS (70% du code dans le dépôt github) mais victime de son - succès (chaos complet des librairies) -- le go est de plus en plus utilisé, c'est **le** langage qui monte - actuellement -- Python, Ruby, lua, autres langages de scripting (de plus en plus utilisés) -- PHP, Java (stagnants) -- C, C++ (de moins en moins utilisés) - -Approche par typologie des langages ------------------------------------ - -- **A0 (1954)** : possibilité de découpage de programmes en - sous-programmes ; - -- **ALGOL (1958)** : concept de bloc de code (pas forcément nommé) et d'imbrication - de blocs de code ; - -- **C (1971)** : syntaxe claire et simple, programme fortement structuré ; - -- **C (1980)** : le **code objet**, qui consiste à essayer de faire fonctionner - un seul jeu d'instructions sur des machines différentes. Avant, le code - d'assemblage dépendait du processeur, donc il n'y avait pas un seul et unique - jeu d'instructions ; - -- **1980** : déploiement et succès des langages à objets ; - -- **1983** : turbo pascal (Borland) qui fut le tournant du C, - propose un IDE (Environnement de Développement Intégré). - aujourd'hui le turbo pascal a pratiquement disparu mais pas totalement, - il est soutenu par une communauté open source autour de **Lazarus** ; - -- **depuis les années 90** : deux grands groupes de langages. Les langages à - objets, et les langages fonctionnels. Les deux mondes s'interpénètrent (les - avancées actuelles du web, les microservices (Erlang, Haskell), - viennent du monde fonctionnel, le NoSQL, etc). - Les grandes avancées architecturales (système d'exploitation, linux, etc...) - viennent du monde de l'impératif. - - -Approches par modèles de programmation --------------------------------------- - -- **le mécanisme d'exceptions** : il est possible de rompre l'exécution normale d'un - programme à un endroit et de la reprendre à un autre endroit du programme prévu à - cet effet. Ce mécanisme permet de gérer les situations exceptionnelles. - -- **le paradigme impératif** : les entrées-sorties, les modifications physiques de - valeurs et les structures de contrôle itératives sont possibles. - -- **le paradigme fonctionnel** : manipule les fonctions comme étant des valeurs du - langage. Celles-ci peuvent être utilisées en tant que paramètres d'autres fonctions - ou être retournées comme résultat d'un appel de fonction. - -- **le paradigme objet** : La représentation du programme colle à la réalité en - reproduisant des entités relativement proches des objets réel. Attention, le piège - est de croire qu'il s'agit *du* paradigme universel puisqu'il reproduit en miroir le - réel. **C'est en fait un processus d'abstraction comme un autre**. - -Sûreté du langage, typage -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Tri par ordre de sûreté croissant : - -0. typage très faible (presque inexistant aujourd'hui) : 42 == "42" == 42.0... -1. typage dynamique faible : (javascript) (possibilité de changer le prototype - d'un objet pendant l'éxécution du programme, c'est la fête on peut faire - n'importe quoi) -2. typage dynamique fort inféré par le comportement (behavior, duck typing) - (python, ruby, PHP) Le contenu de la variable détermine le choix du typage - `var = 0 -> type int` -3. typage statique déclaré fort (Java) - `int var = 0 ;` (pas mal mais super lourd, pas **agile** du tout) -4. langages à types statiques muni d'un moteur d'inférence de types (Ocaml) - sûreté d'exécution, agilité, sécurité. - - -La syntaxe, la lisibilité -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Importance de la lisibilité (notamment par rapport aux méthodes agiles). - -- courte (python) -- verbeuse (C) -- l'importance des mots clef du langage -- délimiteur de phrase, de blocs (parenthèses, accolades, tabulations, blocs...) - -Langages compilés ou interprétés ? ------------------------------------ - -.. glossary:: - - langage compilé - - une première passe est faite, des validations son effectuées **avant** - la génération du code objet, cette phase est faite par le compilateur. - - compilateur - - programme qui transforme un langage de haut niveau en un langage de base - niveau - - - phase d’analyse syntaxique (source -> syntaxe abstraite) - - phase de synthèse (syntaxe abstraite -> code objet) - - - scripting (langage de scripting) - - langage interprèté - - générique (langage) - - Langage à usage générique, qui peut être utilisé dans n'importe quel - domaine (par opposition au DSL) - - domain specific - - Domain Specific Language, langage destiné à être utilisé dans un - domaine prédéfini. - - paradigmes - - représentation d'une vision particulière à partir d'un modèle théorique - - impératif - - l'algorithme ressemble à une recette de cuisine, - c'est-à-dire à une succession d'instructions à exécuter - les unes à la suite des autres - - fonctionnel - - l'algorithme ne dépend plus de l'ordre d'exécution d'instructions - pas de mélange entre les données et les traitements - - objets (programmation) - - le monde est découpé en catégories - qui permettent de créer des objets - - **développement par composants** - - les objets sont organisés entre eux par composants suivant des designs patterns, - (patrons de conception) - - garbage collector (ramasse miettes) - - la gestion automatique de la mémoire apparaît en 1989 - - machine virtuelle - - portabilité du code (mais diminution en optimisation et performances) - - JIT (just in time compiler) - - code objet, programmes fonctionnant autour de machines virtuelles - - -- **le typage statique** : la vérification de la compatibilité entre les types des - paramètres formels et des paramètres d'appel est effectuée au moment de la - compilation du programme. Dès lors, il n'est pas nécessaire de faire ces - vérifications durant l'exécution du programme ce qui accroît son efficacité. En - outre, la vérification de type permet d'éliminer la plupart des erreurs introduites - par maladresse ou étourderie et contribue à la sûreté de l'exécution. - -- **le typage dynamique** : la vérification de la compatibilité entre les types des - paramètres formels et des paramètres d'appel est effectuée au moment de l'exécution - ou de l'appel à certaines parties de codes du programme. - -- **le polymorphisme paramétrique** : une fonction ou un objet qui n'explore pas la - totalité de la structure d'un de ses arguments accepte que celui-ci ait un type non - entièrement déterminé. Ce paramètre est alors dit polymorphe. Cette particularité - permet de développer un code générique utilisable pour des structures de données - différentes tant que la représentation exacte de cette structure n'a pas besoin - d'être connue par le code en question. L'algorithme de typage est à même de faire - cette distinction. - -- **l'inférence de types** : le programmeur n'a besoin de donner aucune information - de type à l'intérieur de son programme. Le langage se charge seul de déduire du code - le type le plus général des expressions et des déclarations qui y figurent. Cette - inférence est effectuée conjointement à la vérification, lors de la compilation du - programme. - -Les grands paradigmes de programmation ---------------------------------------- - -Le paradigme des objets -~~~~~~~~~~~~~~~~~~~~~~~ - -- 1962 (SIMULA) : premières notions de classes ; - -Pui, une dizaine d'années plus tard : - -- C++ : intégration des classes pour le C ; -- turbo pascal : intégration des classes pour le pascal ; - -Tous les langages actuels ont intégré des traits objets mais de manière très -différentes : - -- perl (1987) -- python (1991) -- Ruby (1993) - -- L'implémentation des objets en python est très proche des notions initiales de - classes issues du Smaltalk et présente une tentative très intéressante - d'unification des objets et des types depuis python 2.2 ; - -- Java (1995) : très grosse réussite industrielle en surfant sur la vague de la - programmation objet, et des machines virtuelles, mais en fait et avec le recul, - doté d'un support objet lourd et alambiqué. - Le monde Java est lourd, avec des outils consommant beaucoup de mémoire et - qui ne satisfont pas à la règle du KISS (Keep It Simple, Stupid) ; - - -Il n'y a pas **une** POO (Programmation Objet), il y a des POO. -Les implémentations objets dans les langages sont riches et variées : - -- objets obligatoirement construits pas des classes (Java, C++, ...) -- objets sans définition de classes (javascript, Ocaml, go, rust) -- langages à attributs (python) -- langages ou le type des objets est défini par leur classe (python, ruby) -- langages ou le type des objets est différent du type de leur classe (Ocaml) -- objets sans classes mais construits par des prototypes (javascript) -- construction d'objets possibles objets sans classe du tout (Ocaml) -- encapsulation des attributs des objets (Java, Ocaml, C++, PHP) -- pas d'encapsulation des attributs (python, ruby, javascript...) - -Le paradigme impératif -~~~~~~~~~~~~~~~~~~~~~~ - -Un programme est une suite d'états de la mémoire de l'ordinateur, -c'est la suite logique des machines de Turing. -La plupart des programmeur aujourd'hui raisonnent suivant ce paradigme, -et ont une très faible visibilité par rapport aux autres paradigmes existants. -Seuls les programmeurs cultivés sont aujourd'hui capable de raisonner -suivant différents paradigmes, ce sont des programmeurs chevronnés et -cultivés. - -Le paradigme fonctionnel -~~~~~~~~~~~~~~~~~~~~~~~~ - -La notion de fonction que possède sous une forme ou une autre la plupart des -langages est empruntée aux mathématiques et non à l'électronique. D'une manière -générale, les langages substituent des modèles formels aux conceptions purement -calculatoires. Ils y gagnent en expressivité. Certains langages fondent leur -paradigme de programmation sur l'abstraction entrée-traitement-sortie, donc sur le -**mathème fonctionnel** et pas sur la boite noire électronique. La fonction -mathématique apporte un niveau opératoire dans le traitement de l'information. - - -Approche par fonctionnalités ----------------------------- - -Plusieurs domaines de l'informatique on proposé/imposé des méthodologies, -des manières de faire. Ces modèles de programmation on fortement influencé -en retour les langages. On reconnaît aujourd'hui : - -- Le modèle client-serveur -- Le modèle de programmation concurrente (exécution de processus légers, threads) : -- Le modèle de développement d'une application de bureau (MVC, ergonomie d'interface) -- Le modèle de développement web (communiquer sur le réseau Internet, API - REST, microservices...) -- Le modèle de programmation système et réseau -- le modèle **Dev Ops** et les méthodes de développement virtualisés -- les langages présentant des **fonctionnalités agiles** - -Conclusion ------------ - -Les langages de haut niveau sont caractérisés par -des concepts tels que : - -- déclaration de valeurs, types, expressions, portée -- expressions, variables, instructions, structures de contrôle -- fonctions, procédures, fermetures -- encapsulation, modules, objets - -=========== ============ -Paradigmes Concepts -=========== ============ -impératif variables, procédures, modules -objets classes, méthodes, héritage, surcharge -fonctionnel fonctions, fermetures, modules -logique prédicats, modules -concurrent tâche/processus, communication -=========== ============ diff --git a/AlgoApprofondie/cours/modularite.txt b/AlgoApprofondie/cours/modularite.txt deleted file mode 100644 index 276d12d..0000000 --- a/AlgoApprofondie/cours/modularite.txt +++ /dev/null @@ -1,200 +0,0 @@ -La programmation structurée -============================= - -Un langage de programmation doit permettre la programmation structurée. - -.. important:: La structuration et l'organisation modulaire sert à maintenir de grands programmes, - Elles sont une nécessité - -Structuration d'un programme ------------------------------ - -La réalisation d'applications importantes oblige le programmeur ou l'équipe de -développement à se poser des questions d'organisation et de structuration. -Aujourd'hui, on dispose de deux grands modèles d'organisation dont les avantages et les -particularités sont distincts. - -L'écriture des vrais programmes consiste à les structurer pour les présenter -comme un assemblage de briques qui s'emboîtent naturellement. -Ce problème se révèle fondamental dès que la taille des programmes devient conséquente. -Si on ne prend pas garde au bon découpage des programmes en modules indépendants, -on se retrouve rapidement débordé par un grand nombre de variables, -et il devient quasiment impossible de réaliser un programme correct. - -La programmation raisonnée ---------------------------- - -Un **programme** est le codage d'un algorithme dans un langage de programmation. -La programmation consiste à modéliser un problème du monde réel sous une forme -symbolique (pour faire résoudre ce problème par un ordinateur). - -Certains problèmes sont **indécidables** ou **ouverts**. -On utilise un langage de programmation pour décrire la **solution** du programme. -La sémantique du programme est le sens de chacune des constructions du langage. -**Comment passer de l'énoncé d'un problème à un programme de bonne qualité ?** - -spécifier - - décrire de manière complète et rigoureuse le problème à résoudre - -modéliser - - proposer une représentation du réel qui soit accessible au calcul - algorithmique - -transcrire - - La transcription du modèle algorithmique se fait dans un langage - de programmation cible adapté au problème - -valider - - La validation du programme est une étape qui permet de s'assurer plus ou - moins fortement que le programme produit les résultats attendus. - La validation va de la série de tests unitaires (validation faible) - à la preuve de programme (validation mathématique forte). - -Conception descendante ------------------------ - -Une vision **centripète** : du général au particulier. - -Il s'agit d'une méthode de résolution d'un problème. On le découpe en tâches -de plus en plus fines, de plus en plus détaillées, qui aboutiront au programme final. - -On met des *trous* dans les algorithmes de plus haut niveau, -c'est-à-dire des phrases en langage naturel. - -.. ifconfig: exercice - - **Exercice** : **Calculer la date du lendemain** - -.. ifconfig: correction - - - l'algorithme de plus bas niveau - - :: - - lendemain jour = - si jour [est le dernier jour du mois] alors - resultat = [calculer le 1er janvier de l'année suivante] - sinon - resultat = lendemain_dansl'année jour - - - les algorithmes de plus bas niveau - - :: - - lendemain_dans_l'année jour = - si jour [est le dernier jour du mois] alors - resultat = [calculer le premier jour du mois suivant] - sinon - resultat = jour suivant jour - - :: - - jour_suivant jour = - jour + 1 - - et ainsi de suite jusqu'à ce que toutes les phrases soient calculables. - -Algorithme vague --------------------- - -L'algorithme vague, c'est quand on pense l'algorithme en se plaçant du côté de -l'implémentation en premier. On a le nez dans le guidon, la vue d'ensemble est -difficile. - -Voici, tiré du monde réel, un exemple d'algorithme vague -("ce que doit faire une fonction"), placé dans un bout de code -(souvent la **docstring** d'une fonction). - -.. code-block:: python - - def upsert_route(*args, **kwargs): - """ - Create or modify an existant DHCP route - param tuple (id or null, machine name, IP, MAC Adress) - return True or False with error message - """ - # si id présent alors modification sinon ajout - # récupère la liste des réservations en cours - # y cherche la variable sur la base de l'ID - # modifie les valeurs - # applique la nouvelle conf DHCP - - return True - -Voici un autre bout de code avec l'algorithme en commentaire, -et l'implémentation effective de l'algorithme - -.. code-block:: python - - def del_route(*args, **kwargs): - """ - Delete an existant DHCP route - param tuple (id, machine name, IP, MAC Adress) - return True or False with error message - """ - # récupère la liste des réservations en cours - # y cherche la variable sur l'id donné en paramètre - # supprime l'entrée avec vérification que les données fournies - # sont bien dans l'enregistrement à supprimer - # applique la nouvelle conf DHCP - route_to_del = (1, "host2","10.1.2.4","6E:FF:56:A2:AF:17") - routes = get_routes() - if route_to_del in routes: - c = creole_loader(load_extra=True, rw=True) - c_id = c.dhcp.dhcp.id_dhcp.id_dhcp.index(route_to_del[0]) - if c.dhcp.dhcp.id_dhcp.macaddress[c_id]==route_to_del[2] - and c.dhcp.dhcp.id_dhcp.ip[c_id]==route_to_del[1]: - c.dhcp.dhcp.id_dhcp.id_dhcp.pop(c_id) - config_save_values(c, MODNAME) - return True - return False - -Les deux grands paradigmes ---------------------------- - -La modularité -~~~~~~~~~~~~~~ - -Les données et les traitements sont regroupés au sein d'une même entité à deux -facettes : d'un côté le code proprement dit, de l'autre son interface. La -communication entre modules s'effectue via leur interface. La description d'un -type peut être masquée en n'apparaissant pas dans l'interface du module. Ces -types de données abstraits facilitent les modifications d'implantation à -l'intérieur d'un module sans affecter les autres modules qui s'en servent. De -plus, les modules peuvent être paramétrés par d'autres modules augmentant -ainsi leur réutilisabilité. - -Le paradigme objet -~~~~~~~~~~~~~~~~~~ - -Les descriptions des traitements et des données sont regroupées dans des -entités appelées **classes**; un objet est une instance (valeur) d'une classe. -La communication entre objets est réalisée par envoi de message, l'objet -receveur détermine à l'exécution (liaison retardée) le traitement -correspondant au message. En cela, la programmation objet est dirigée par -les données. La structuration d'un programme provient des relations entre -classes, en particulier l'héritage permet de définir une classe par extension -d'une autre. - -En programmation objet, un **programme** est une collection d’objets qui communiquent -entre eux par **message**, le **résultat** est un message envoyé à un objet particulier - -Comparaison entre les deux paradigmes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Il y a dualité entre ces deux modèles. - -- On ne peut pas augmenter les composants d'un type dans un module (pas - d'extensibilité des données), mais on peut ajouter de nouveaux traitements - (extensibilité des traitements) sur ces données. - -- En objet, on peut ajouter des sous-classes à une classe (extensibilité des - données) pour traiter des nouveaux cas, mais on ne peut pas ajouter de nouveaux - traitements visibles de la classe ancêtre (pas d'extensibilité des traitements). - -**La combinaison des deux paradigmes offre de nouvelles extensibilités pour les -traitements et les données.** diff --git a/AlgoApprofondie/cours/modules.txt b/AlgoApprofondie/cours/modules.txt deleted file mode 100644 index 5df4b5e..0000000 --- a/AlgoApprofondie/cours/modules.txt +++ /dev/null @@ -1,313 +0,0 @@ -La programmation modulaire -=========================== - -Il s'agit de décomposer un grand programme en -morceaux (**modules**) connectés entre eux par des **interfaces** bien -définies. - -Ces modules doivent être aussi indépendants que possible. - -module - - ensemble de ressources liées sémantiquement - -interface - - mode d’emploi du module, avec en plus un principe de masquage - des informations (partie publique, partie secrète) - - -Signatures, type abstrait et langage de modules : la programmation modulaire -permet d'aller très loin dans la programmation structurée. - - -Définir des fonctions dans un fichier séparé --------------------------------------------- - -Les fonctions peuvent être définies dans un fichier et le programme dans un -autre fichier séparé. Dans ce cas, pour pouvoir être exécuté directement avec -la commande python `nomfichierprogramme.py`, le fichier du programme doit -importer d’abord les fonctions du fichier dans lequel les fonctions sont -définies. - -1. Fichier de fonctions -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - # Fichier foncmaxliste.py - # Recherche le premier élément maximal dans une liste ou - #dans une chaine de caractères - def max_list(L) : - k = len(L) - max, x = L[0], 0 - i = 1 - while i < k : - if max < L[i]: - max = L[i] - x = i - i = i + 1 - return max, x - -2. Fichier de programme -~~~~~~~~~~~~~~~~~~~~~~~~ - -Pour utilser les fonctions définies dans d’autres fichiers, le fichier de -programme doit commencer par les instructions qui importent ces fichiers de -fonctions ou directement les fonctions de ces fichiers. Dans la syntaxe -ci-dessous, on importe une ou toutes les fonctions du fichier `foncmaxlist.py`. - -.. code-block:: python - - # Fichier progmaxlist.py - from foncmaxliste import max_list - # ou plus simple: - # from foncmaxliste import * - print max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - couple = max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - print max_list(’totovaaumarche’) - couple = max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -Au lieu d’importer les fonctions, on peut importer le fichier qui définit les -fonctions avec la syntaxe qui suit. Dans ce cas, le fichier de programme sera -changé comme suit : - -.. code-block:: python - - # Fichier prog2maxlist - import foncmaxliste - print foncmaxliste.max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - # la syntaxe indiquant le chemin d’acces a la fonction max_list utiliser ‘‘.’’ - couple = foncmaxliste.max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - print foncmaxliste.max_list(’totovaaumarche’) - couple = foncmaxliste.max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -L’exécution directe du premier fichier de programme:: - - python prog max list.py - -L’exécution directe du seconde fichier de programme:: - - python prog2 max list.py - -Définition de l'implémentation d'un module -------------------------------------------- - -Tout fichier qui contient au moins une définition d’une fonction ou d’une -variable est appelé un module (une bibliothèque). Le nom du module est le nom -du fichier enlevé le suffixe `.py`. Ainsi, un fichier de programme qui contient -au moins une définition d’une fonction ou un fichier qui ne contient que des -définition de fonctions sont des modules. On peut importer un module ou des -fonctions ou variables d’un module dans un programme, comme nous avons vu dans -les exemples ci-dessus. - -.. important:: on peut importer un module, ou bien lancer un module en tant que - programme executable - -.. code-block:: python - - if __name__ == '__main__': - main() - -Pour faciliter la programmation, Python définit un certain nombre de **modules internes**, -appelés les builtins (la librairie standard). - -Par exemple : - -– Lors de l’ouverture d’une session interactive, on est dans un module interne nommé - main . Toutes les variables définies par affectation au niveau de ce module sont valides - globalement dans la session. - -– D’autres modules internes sont string, math, random - -Dans une session de travail sous l’interpréteur Python, la première importation d’un mo- -dule qui, à part des fonctions qu’elle définit, contient des instruction de programme fait -exécuter ces instructions. Dans la même session, les importations suivantes ne font pas -exécuter ces instructions. Pour les exécuter, on utilise la fonction reload(nomdumodule) -(sans sufffixe .py). - -Exemples d'interface --------------------- - -:: - - type: son type - arguments - arg1 : description de l'argument 1 - arg2 : description de l'argument 2 - préconditions: - arg1 > 10 - postconditions: - result < 19 - raises: TypeError, AssertionError, SystemError... - test: tests nominaux pour chaque cas spécifié - -- L'interface racine carrée - -:: - - racine: - type: float -> float - arguments x: float, flottant dont on veut calculer la racine - pré: x >= 0 - test: racine 25.0 -> 5.0 ; racine (-25) -> raises TypeError - -- L'interface `lendemain` - -Il faut définir auparavant un type spécifique appelé `date` - -:: - - lendemain: le lendemain est la date qui désigne - le jour suivant de la date passée en argument - type: date -> date - arguments : - d: date - description: la date dont on veut calculer le lendemain - -Le langages des modules -------------------------- - -.. code-block:: ocaml - - module type PILE = (* signature (interface) du module *) - sig - type ’a t - val create : unit -> ’a t - val push : ’a -> ’a t -> unit - val pop : ’a t -> ’a - end - - (* implémentation du module *) - module Pile : PILE = (* le module est restreint - par la signature PILE *) - struct - type ’a t = ’a list ref - let create () = ref [] - let push x p = p := x::!p - let pop p = match !p with [...] - let rec print p = match p with [...] - end - -- `struct .. end` introduit une collection de définitions, valeurs, types ou modules. - C'est une **structure**. - -- `module Nom = struct .. end` permet de donner un nom à cette structure et - c'est ça un module. C'est une structure nommée. - -- `sig ... end` introduit une signature de module : une interface pour un module. - -On restreint souvent une structure par une signature pour "cacher" certaines -définitions. Une signature de module fournit une **interface** entre l'extérieur -et l'intérieur d'un module. - -En dehors du module, on accède à ses composants grâce à la notation pointée - -.. code-block:: ocaml - - let p = Pile.create() - Pile.push 45 p - -Les foncteurs --------------- - -Si un langage possède un langage de modules, on peut aller plus loin : on peut -considérer un module comme étant une expression de base du langage. - -- La signature d'un module peut être considérée comme le type du module -- La structure du module peut être considéré comme sa valeur - -Quel est l'intérêt ? On peut alors définir des **foncteurs**. - -foncteur - - "fonction" d'une structure vers une autre structure. - On peut ainsi paramétrer un module par un autre module. - -.. code-block:: ocaml - - module Nom (M1 :S1 ) (M2 :S2 ) (M3 :S3 ) ... = - struct - ... - end - -On applique un foncteur à des paramètres modules, pour -obtenir un nouveau module : - -.. code-block:: ocaml - - module M = F (Titi) (Toto) - - -Contrainte de type par signature ------------------------------------- - -:: - - module M = - struct - type t = int * int * int ;; - let make d m y = d, m, y ;; - end ;; - - let d = M.make 8 5 8 ;; - - module type S = - sig - type t ;; - val make : int -> int -> int -> t ;; - end ;; - - module MS = (M:S) ;; - - MS.make 5 1 2 ;; - -Type et signature ------------------- - -:: - - # module type A = sig - val a: int -> int - end ;; - module type A = sig val a : int -> int end - # module B = struct - let a x = x + 1 ;; - end;; - module B : sig val a : int -> int end - # module C = (B:A) ;; - module C : A - - # C.a 2 ;; - - : int = 3 - # - -Module auquel on impose une signature ------------------------------------------ - - -:: - - module type DATE = sig - type t - val make: int -> t - val get_year: t -> int - val get_month: t -> int - end ;; - - module MR = struct - type t = int * int - let make x y = (x, y) - let get_month (x, y) = x - let get_year (x, y) = y - end ;; - - module date = (MR:DATE) ;; diff --git a/AlgoApprofondie/cours/presentation.txt b/AlgoApprofondie/cours/presentation.txt deleted file mode 100644 index 6263f9e..0000000 --- a/AlgoApprofondie/cours/presentation.txt +++ /dev/null @@ -1,72 +0,0 @@ -Avant propos -============ - -Introduction -~~~~~~~~~~~~ - -| "**Que nul n'entre ici s'il n'est géomètre**" -| Maxime apposée au porche d'entrée de l'École de Platon - - -- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique - algébrique. L'algorithmique est un sous-domaine de l'algèbre et des - approches modulaires (arithmétique modulaire...) - -- Le point de vue mathématique étant assez exigeant, **aucun formalisme fort** de - l'algorithmique mathématique ne sera présenté. Aucun symbole mathématique donc, et - seulement du pseudo-code. - L'approche mathématique forte utilisant le formalisme mathématique de - l'algorithmique algébrique est en général enseignée en France uniquement aux cours - des grandes écoles. - -- L'algorithmique présentée ici est donc délibérément pseudo-scientifique mais en revanche - ouverte au **multi-paradigme**. En général l'évocation d'un algorithme en pseudo code est toujours - réducteur car limité au style de programmation le plus à la mode actuellement, c'est-à-dire le - **style impératif**. Nous présenterons un éventail des plus grands paradigmes de programmation - existants. Nous nous limiterons à la **programmation impérative, fonctionnelle, modulaire, - générique et objet**. Nous envisagerons les structures de données et les structures de contrôle - spécifiques à chacun des styles évoqués. - -- Et parce qu'un honnête programmeur doit avoir une vue d'ensemble de **l'état de son art**, - nous évoquerons un panorama des différents langages existants -- historiques et contemporains -- - en les comparants les uns aux autres. - -- Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous - limiterons l'exposé à deux langages d'implémentation des algorithmes : le **Python** pour la programmation - impérative modulaire et objet, et le **OCaml**, car nous évoquerons aussi certains points - de programmation fonctionnelle et modulaire, polymorphe et teintée de généricité. - -Intérêt -------- - - -| "**Il ne suffit pas d'avoir les mains propres, il faut avoir l'esprit pur.**" -| Thalès de Milet ; Sentences - VIe s. av. J.-C. - -L'algorithmique en tant que rapport à la vérité et à la pensée juste et vraie, -en tant qu'art de découper un problème complexe en tâches élémentaires, -en tant qu'énoncés de compréhension et de sémantique, -est la seule chose vraiment profonde dans l'informatique. Le reste n'est que 0 ou 1. -Cette notion d'algorithme est profondément enracinée dans le désir humain de -transmettre des méthodes pour comprendre des problématiques, -qu'il s'agisse de processus scientifiques ou mathématiques, de secrets, -de philosophie ou de divination au sens des anciens Grecs. -De règles linguistiques, aussi, chez les Romains. - -Objectifs de ce cours -~~~~~~~~~~~~~~~~~~~~~ - -Il s'agit de : - -- maîtriser et concevoir un algorithme de base, -- choisir une représentation appropriée des données, -- décomposer en sous-problèmes et affinements successifs, -- savoir organiser son code en fonctions et en modules. - -Le développement raisonné d’algorithmes et leur implantation -permet d'acquérir les qualités suivantes : - -+ Analyser et modéliser un problème, spécifier, -+ Exprimer une problématique, une solution ou un algorithme, -+ Traduire un algorithme dans un langage de programmation, -+ Concevoir une réponse à un problème précisément posé. diff --git a/AlgoApprofondie/cours/programme.txt b/AlgoApprofondie/cours/programme.txt deleted file mode 100644 index 6133cf1..0000000 --- a/AlgoApprofondie/cours/programme.txt +++ /dev/null @@ -1,476 +0,0 @@ -Définition d'un programme -========================== - -Qu'est-ce qu'un programme ? ----------------------------- - -- Un **programme** est une suite de **phrases** ; -- Une **phrase** est une **déclaration** ou une **expression** (*statement* en anglais) ; - -Production d'un programme : - -1. on écrit le code source du programme ; -2. on demande au compilateur de le traduire en code machine : c'est la compilation du programme ; -3. on demande à la machine d'effectuer le code machine : c'est l'exécution du programme. - -.. important:: - - L'introduction à la compilation et les différentes phases de la compilation - d'un programme sont des sujets qui ne seront pas traités dans ce cours. - -Dans un programme de base, il y a deux fichiers : - -1. un fichier contenant le code : c'est le source du programme. -2. un fichier contenant le code machine : c'est l'exécutable. - -Que peut faire un programme lorsqu'il est exécuté ? -Le programme doit communiquer. S'il reste isolé, il ne pourra pas -produire quoi que ce soit. Voici les trois moyens de communication qu'a un -programme : - -1. communiquer avec l'utilisateur, -2. communiquer avec des fichiers, -3. communiquer avec d'autres programmes. - -Les expressions ----------------- - -expression - - Une expression est une valeur caculée du langage, une opération arithmétique - qui retourne une valeur (entier, texte, valeur logique...). - C'est donc une suite sémantiquement correcte de **valeurs de base** et **d'opérateurs** - -Par exemple, la ligne suivante est une expression effectuant une addition:: - - 5 + 6 - -Expressions à partir de types de base -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Autres exemples d'expressions : - -- 5 est une expression de type int -- 4.5 est une expression de type float -- 'c' est une expression de type char -- true est une expression de type bool -- print ('c') est une expression de type None -- raw_input est une expression de type string - -Les expressions se complexifient avec la complexification des données et des traitements, -mais le principe de l'expressivité d'un langage reste le même. - - -.. ifconfig:: exercice - - **Exercice** : - Le parenthésage et les opérateurs booléens:: - - Variables A, B, C, D, E en Booléen - Variable X en Entier - Début - Lire X - A <- X > 12 - B <- X > 2 - C <- X < 6 - D <- (A ET B) OU C - E <- A ET (B OU C) - Ecrire D, E - Fin - - **Que valent D et E si X = 3 ?** - - -.. ifconfig:: correction - - **Correction** : D sera VRAI alors que E sera FAUX - - - - -Les déclarations ------------------ - -Un autre exemple d'expression : - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple d'expression} - \begin{algorithmic}[1] - \BState \emph{sortie}: $l$ \Comment{C'est l'expression calculée renvoyée} - \ForAll {$v \in V(G)$} - \State $l(v) \leftarrow \infty$ - \EndFor - \State $l(u) \leftarrow 0$ - \Repeat - \For {$i \leftarrow 1, n$} - \State $min \leftarrow l(v_i)$ - \For {$j \leftarrow 1, n$} - \If {$min > e(v_i, v_j) + l(v_j)$} - \State $min \leftarrow e(v_i, v_j) + l(v_j)$ - \State $p(i) \leftarrow v_j$ - \EndIf - \EndFor - \State $l(i) \leftarrow min$ - \EndFor - \State $changed \leftarrow l \not= l’$ - \State $l \leftarrow l$ - \Until{$\neg changed$} - \end{algorithmic} - \end{algorithm} - -Exemple de déclarations : - -- `a = 1` -- `b = 'c'` - -.. important:: Le signe égal est utilisé de deux manières - - - lors d'une déclaration d'une expression - - lorsque deux expressions sont équivalentes - - Suivant les langages, il y a deux symboles différents, ou alors - ils sont identiques. - -Il s'agit de **renseigner** une valeur dans une expression nommée - -- en javascript : - -.. code-block:: javascript - - var b = "blabla" ; - -- en python : - -.. code-block:: python - - b = "blabla" - -- en java : - -.. code-block:: java - - String b = "A"; - -- en OCaml : - -.. code-block:: ocaml - - let a = 1 - -Grâce au mécanisme d'inférence de type dans OCaml, le mot-clef **let** -signifie ici véritablement l'instanciation d'une valeur au sens -mathématique du terme : soit `a` l'entier tel que a soit égal à 1... - -En OCaml comme dans tous les langages fonctionnels, tout ce que nous avons l'habitude -d'appeler des "variables" à propos des affectations, sont en fait des **constantes** -au sens du paradigme impératif de la programmation. - -.. important:: - - Par voie de conséquence, le symbole ``=`` est utilisé à la fois pour la définition des objets et pour le test d'égalité. - Pour les autres langages, on utilise `==` ou bien `===` (javascript) car - le `=` est sémantiquement déjà utilisé... - -Toutes ces notation, apparemment anodines, correspondent donc à des paradigmes de programmation - -Lorsqu'on ne déclare pas les types des symboles déclarés, c'est que soit - -- le typage est faible -- le typage est dynamique (calcul du type en fonction du contenu de la - variable) -- le typage est statique et fort mais ça ne se voit pas - (var le système les calcule automatiquement par inférence de type) - -Assigner, allouer, affecter une chose à quelqu'un ou à une autre chose. - -Exemples dans la langue française : - -- Le traitement que le budget **alloue** à ces fonctionnaires. -- Un système d'exploitation multitâche alloue le travail du processeur aux processus en attente, pour un bref laps de temps, à leur tour. - -.. glossary:: - - affectation - - Une affectation, aussi appelée assignation par anglicisme, est une structure qui permet d'attribuer une valeur à une variable. - - Il s'agit d'une structure particulièrement courante en programmation impérative, et dispose souvent pour cette raison d'une notation courte et infixée, - comme ``x = expr`` ou ``x := expr`` ou encore `x <- expr`. - Dans certains langages, le symbole est considéré comme un opérateur d'affectation, - et la structure entière peut alors être utilisée comme une expression. - D'autres langages considèrent une affectation comme une instruction et ne permettent pas cet usage. - -Voir aussi : - -- Les déclarations de types primitifs et conversions de type -- Les types de base:: - - Octets (8 bits) byte - Entiers courts (16 bits) short - Entiers (32 bits) int - Entiers longs (64 bits) long - Réels (32 bits) float - Réels longs (64 bits) double - Caractères (16 bits) char - Booléens boolean - -- Déclarations par lots:: - - x1 = e1, x2 = e2, ... xn = en; - -Exercices : algorithmes sur les affectations - -.. ifconfig:: exercice - - **Exercice** : Calculs d'affectation:: - - Variables A, B, C en Entier - Début - A <- 3 - B <- 10 - C <- A + B - B <- A + B - A <- C - Fin - -.. ifconfig:: correction - - **Correction**:: - - Après La valeur des variables est : - A <- 5 A = 5 B = ? - B <- 2 A = 5 B = 2 - A <- B A = 2 B = 2 - B <- A A = 2 B = 2 - -.. ifconfig:: exercice - - **Exercice** : Calculs d'affectation - Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ? - :: - - Variables A, B en Entier - Début - A <- 5 - B <- 2 - A <- B - B <- A - Fin - -.. ifconfig:: correction - - **Correction**:: - - Après La valeur des variables est : - A <- 5 A = 5 B = ? - B <- 2 A = 5 B = 2 - A <- B A = 2 B = 2 - B <- A A = 2 B = 2 - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme permettant d’échanger les valeurs - de deux variables A et B, et ce quel que soit leur contenu préalable. - -.. ifconfig:: correction - - **Correction**:: - - Début - A <- n - B <- p - C <- A - A <- B - B <- C - Fin - - Il faut passer par une variable dite temporaire (la variable C) - - -.. ifconfig:: exercice - - **Exercice** : - Que produit l’algorithme suivant ? - - :: - - Variables A, B, C de type entier - Début - A <- 423 - B <- 12 - C <- A + B - Fin - -.. ifconfig:: correction - - **Correction** : dans un prompt python - - .. code-block:: python - - >>> a = 423 - >>> b = 12 - >>> c = a + b - >>> c - 435 - -.. ifconfig:: exercice - - **Exercice** : - Que produit l’algorithme suivant ? - - :: - - Variables A, B, C de type texte - Début - A <- "423" - B <- "12" - C <- A + B - Fin - -.. ifconfig:: correction - - **Correction** : dans un prompt python - - .. code-block:: python - - >>> a = '423' - >>> b = '12' - >>> c = a + b - >>> c - '42312' - -Interaction avec l'utilisateur ------------------------------- - -Il est possible de communiquer de la manière suivante avec un programme : - -- lire et écrire sur l'entrée/sortie standard -- lire et écrire dans un fichier -- afficher (du texte, un nombre...) -- lire (du texte, un nombre...) -- interagir avec les prompts - - -.. code-block:: ocaml - - let x = read_int () in - let signe = - if x >= 0 - then " positif " - else " négatif " in - print_string signe - - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme qui demande le prénom d'une personne - et renvoie "bonjour, je m'appelle " - -.. ifconfig:: correction - - **Correction** : (implémentation en python) - - .. code-block:: python - - # coding: utf-8 - prenom = raw_input("quel est ton prénom ? \n") - print("bonjour, je m'appelle " + prenom.capitalize()) - - -La REPL (boucle d'interaction) -------------------------------- - -.. glossary:: - - REPL - - Read Eval Print Loop : outil principal de communication avec un programme - ou avec un système. Exemples : la console python, le prompt OCaml. - - interface - - outil de communication avec un programme. - - - interface texte - - interface graphique - -**Exemples de REPL** - -Le prompt python:: - - Python 2.7.12 (default, Nov 19 2016, 06:48:10) - [GCC 5.4.0 20160609] on linux2 - Type "help", "copyright", "credits" or "license" for more information. - >>> - >>> dir() - ['__builtins__', '__doc__', '__name__', readline', 'rlcompleter'] - >>> - -Le prompt ipython:: - - Python 2.7.12 (default, Nov 19 2016, 06:48:10) - Type "copyright", "credits" or "license" for more information. - - IPython 2.4.1 -- An enhanced Interactive Python. - ? -> Introduction and overview of IPython's features. - %quickref -> Quick reference. - help -> Python's own help system. - object? -> Details about 'object', use 'object??' for extra details. - - In [1]: - -Le prompt OCaml (utop):: - - Type #utop_help for help about using utop. - - ─( 09:21:24 )─< command 0 >── - utop # - # let x = 1 in x + 2;; - - : int = 3 - # let y = 1 + 2;; - val y : int = 3 - # y * y;; - - : int = 9 -Construire une boucle d'interaction avec l'utilisateur en python:: - - #!/usr/bin/env python3 - error = True - while error: - try: - entier = int(input('donnez un entier : ')) - error = False - except: - print('une valeur entiere est attendue') - print(entier) - -Lire et écrire dans un fichier ------------------------------- - -Les descripteurs de fichiers (file handle) - -Exemple en python - -.. code-block:: python - - >>> fh = file("test.txt", "w") - >>> fh.write("un contenu exemple") - >>> fh.close() - >>> - -.. code-block:: python - - >>> fh.read() - 'un contenu exemple' - >>> fh.close() - >>> - -Linéarisation (serialisation) de données par exemple en json - -.. code-block:: python - - import json - data = dict(a='essai', b='essai2', c=range(3)) - with open('data.txt', 'w') as outfile: - json.dump(data, outfile) diff --git a/AlgoApprofondie/cours/tp.txt b/AlgoApprofondie/cours/tp.txt deleted file mode 100644 index 3d3ebd5..0000000 --- a/AlgoApprofondie/cours/tp.txt +++ /dev/null @@ -1,101 +0,0 @@ -Travaux Pratiques -================= - -.. ifconfig:: exercice - - **travaux pratiques :** - - Ecrire un algorithme qui renvoie le résultat d’une mini-calculatrice. Cette - méthode aura - comme paramètre deux nombres et une chaîne de caractère qui vaudra « + », « - - », « * », - « / ». - -.. ifconfig:: exercice - - **travaux pratiques :** - - - Ecrire un algorithme qui renvoie si deux mots (chaîne de caractères) passés en - paramètre - sont des anagrammes l’un de l’autre. (Lettres identiques mais dans un ordre - différent) - - -.. ifconfig:: exercice - - **travaux pratiques :** - - ascii art (ligne d'étoiles) - - Concevoir un algorithme qui, pour un caractère imprimable et un nombre n - donnés, imprime une barre - horizontale de n de ces caractères. - - ``****************`` - - 2. Modifier l’algorithme pour l’impression d’une barre double. - - :: - - **************** - **************** - - 3. Modifier l’algorithme pour l’impression d’une barre d’épaisseur quelconque - donnée. - 4. (optionnel) Transformer les algorithmes ci-dessus en fonctions. - 5. Écrire un programme Java implémentant la dernière version de l’algorithme - (épaisseur quelconque). - - 3.3 - Triangle de nombres - Concevoir un algorithme qui imprime pour n donné:: - - 1 - 1 2 - 1 2 3 - 1 2 3 4 - 1 2 3 4 5 - ........... - ............. - ............... - 1 2 3 4 5 6 ... n - -.. ifconfig:: exercice - - **travaux pratiques :** - - code de césar : faire un programme pour chiffrer et déchiffrer par décalage - - exemples : Effectue une rotation de x caractères vers la droite:: - - >>> print(chiffre('bonjour', 3)) - erqmrxu - >>> print(chiffre('Bonjour les amis!', 3)) - Erqmrxu ohv dplv! - >>> print(chiffre('Erqmrxu ohv dplv!', 23)) - Bonjour les amis! - -.. ifconfig:: exercice - - **travaux pratiques :** - - :: - - écrire “Entrer un numéro de mois” - mois <- lire - selon que mois est - cas 1 : écrire “janvier (31 jours)” - cas 2 : écrire “février (28 ou 29 jours)” - cas 3 : écrire “mars (31 jours)” - cas 4 : écrire “avril (30 jours)” - cas 5 : écrire “mai (31 jours)” - cas 6 : écrire “juin (30 jours)” - cas 7 : écrire “juillet (31 jours)” - cas 8 : écrire “août (31 jours)” - cas 9 : écrire “septembre (30 jours)” - cas 10 : écrire “octobre (31 jours)” - cas 11 : écrire “novembre (30 jours)” - cas 12 : écrire “décembre (31 jours)” - défaut : écrire “numéro invalide” - fselon diff --git a/AlgoApprofondie/diapos/Makefile b/AlgoApprofondie/diapos/Makefile deleted file mode 100644 index fd60fc0..0000000 --- a/AlgoApprofondie/diapos/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -RST = python tools/rst.py - -TEXDOCUMENTS = $(basename $(wildcard *.tex)) -RSTDOCUMENTS = $(basename $(wildcard *.txt)) - -SOURCES = $(addsuffix .tex,$(TEXDOCUMENTS)) -DVI = $(addsuffix .dvi,$(TEXDOCUMENTS)) -POSTSCRIPT = $(addsuffix .ps,$(TEXDOCUMENTS)) -POSTSCRIPT_GZ = $(addsuffix .ps.gz,$(TEXDOCUMENTS)) -PDF = $(addsuffix .pdf,$(TEXDOCUMENTS)) -RSTSOURCES = $(addsuffix .txt,$(RSTDOCUMENTS)) -HTML = $(TEXDOCUMENTS) $(addsuffix .html,$(RSTDOCUMENTS)) - -all: dvi ps ps.gz html -dvi: $(DVI) -ps: $(POSTSCRIPT) -ps.gz: $(POSTSCRIPT_GZ) -pdf: $(PDF) -html: $(HTML) - - -${DVI}: %.dvi: %.tex - latex $< - latex $< - -${POSTSCRIPT}: %.ps: %.dvi - dvips -o $@ $< - -${POSTSCRIPT_GZ}: %.ps.gz: %.ps - gzip -c $< > $@ - -${PDF}: %.pdf: %.tex - rm -f $*.out $*.log $*.aux - xelatex $< - rm -f $*.out $*.log $*.aux - -%: %.tex %.dvi - latex2html -local_icons $< - touch $@ - -%.html: %.txt - $(RST) $< > $@ - - -clean: - rm -f -- *~ *.log *.aux *.out *.nav *.snm *.toc ${DVI} ${POSTSCRIPT} ${POSTSCRIPT_GZ} ${PDF} - rm -fr ${HTML} diff --git a/AlgoApprofondie/diapos/beamer.tex b/AlgoApprofondie/diapos/beamer.tex deleted file mode 100644 index 62eb264..0000000 --- a/AlgoApprofondie/diapos/beamer.tex +++ /dev/null @@ -1,268 +0,0 @@ -\documentclass[ignorenonframetext]{beamer} -\usepackage{graphicx} -% Internal links only wors with second screen on the right -% \setbeameroption{show notes on second screen} -\usetheme{Madrid} -\usecolortheme{dolphin} - -% gets rid of bottom navigation bars -\setbeamertemplate{footline}[frame number]{} - -% gets rid of navigation symbols -\setbeamertemplate{navigation symbols}{} - -%\usetheme{Warsaw} -%\usepackage[french]{babel} -%\usepackage[utf8,utf8x]{inputenc} -%\usepackage[T1]{fontenc} - - -% Replace babel -\usepackage{polyglossia} -\setdefaultlanguage{french} - -%% Require XeTeX -\usepackage{xltxtra} -\usepackage{fontspec} -\usepackage{xunicode} - -\logo{ - \hspace{120pt} - \includegraphics[width=2cm]{img/cesi.jpg}~ - \hspace{113pt} - \includegraphics[width=1cm]{img/logo-cadoles.png}~ -} - - -%%\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}} - -\title[]{Algorithmique} - -\subtitle{CESI alternance} -\subtitle{promotion GMSI B3} - -\author[Gwenaël Rémond]{} - -%\institute[E.O.L.E]{\includegraphics[width=2cm]{beamer-skel/img/logo-eole.png}} -\institute[Cadoles]{\includegraphics[width=2cm]{img/cesi.jpg}} - -%\date{{\small 8 avril 2013}} - -\subject{Talks} - -\AtBeginSection[] % Add a TOC with current section highlighted -{ - \begin{frame} - \frametitle{Plan} - \tableofcontents[currentsection] - \end{frame} -} - - -\usepackage{hyperref} -\usepackage{hyperxmp} -\hypersetup{% - colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone, - pdftitle={EAD3}, - pdfsubject={Présentation technique d'EWT}, - pdfauthor={EOLE}, - pdfkeywords={EOLE, J-EOLE, distribution, GNU, Linux, Éducation, - nationale, Ubuntu}, - pdflang={fr-FR}, - pdfcopyright={Copyright © 2017 Équipe EOLE }, % Require XeTeX - pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}, -} - -\parskip=0.8em - -\begin{document} - -\frame{\titlepage} - -\section{Introduction} -\begin{frame} -\frametitle{Objectifs} - -\texttt{ - "Il ne suffit pas d'avoir les mains propres, \\ - il faut aussi avoir l'esprit pur."\\ -} -\emph{Thalès ; VIe s. av. J.-C.} - -\begin{itemize} -\item<1-> maîtriser et concevoir un algorithme, -\item<2-> choisir une représentation appropriée des données, -\item<3-> décomposer en sous-problèmes et affinements successifs, -\item<4-> savoir organiser son code et faire des petits programmes en python. -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{L'art de programmer} -\texttt{GEEK SUBLIME (Vikram CHANDRA) -Une vision esthétique, littéraire, mathématique du codage} - -\begin{itemize} -\item<1-> Programmer, c'est abstraire, prendre du recul. -\item<2-> Abstraire, par rapport à quoi ? Par rapport à la machine -\item<3-> Les niveaux d'abstraction par rapport à la machine -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Les langages de programmation} -\begin{itemize} -\item Qu'est-ce qu'un langage de programmation ? -\item Les grands paradigmes de programmation (procédural, objet, fonctionnel, modulaire, générique \dots) -\item L'historique des langages. -\end{itemize} -\end{frame} - -\section{Algorithmique} -\begin{frame} -\frametitle{Les algorithmes} -\begin{itemize} -\item définition d'un algorithme -\item implémentation d'un algorithme -\item représentation d'un algorithme dans un langage cible -\end{itemize} -\end{frame} - -\section{Algorithmique pour la programmation} - -\begin{frame} -\frametitle{Qu'est-ce qu'un programme ?} -\begin{itemize} -\item <1-> Les expressions -\item <2-> Les déclarations -\item <3-> La REPL (Read Eval Print Loop) -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Approche générale des fonctions} -\begin{itemize} -\item Les procédures -\item La portée d'une variable -\item Les fonctions -\end{itemize} -\end{frame} - - -\begin{frame} -\frametitle{Les structures de contrôle} -\begin{itemize} -\item Le branchement conditionnel -\item L'itération -\item \dots -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Les structures de données} -\begin{itemize} -\item Les listes -\item Les dictionnaires -\item Les arbres, les graphes \dots -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{L'état de l'art de l'agorithmique} -\begin{itemize} -\item en mathématiques - \begin{itemize} - \item algorithmique algébrique, - \item arithmétique modulaire, - \item \dots - \end{itemize} -\item en informatique - \begin{itemize} - \item en informatique fondamentale - \item en langages de programmation - \item dans touts les domaines où l'informatique intervient\dots - \end{itemize} -\item en sciences physique, en biologie -\item en sciences sociales (réseaux sociaux, auto-organisation\dots) -\end{itemize} -\end{frame} - -\section{Programmation modulaire} -\begin{frame} -\frametitle{La programmation modulaire} -\begin{itemize} -\item La programmation raisonnée -\item Le paradigme modulaire vs le paradigme objet -\item exemple de programmation modulaire en python -\end{itemize} -\end{frame} - - - - -% Not present in TOC -\appendix - -\begin{frame}[label=thanks]{Remerciements} - - Je remercie la communauté du logiciel libre pour tous ces - merveilleux logiciels sans lesquels si peu de choses existeraient. - - Cette présentation a été réalisée grâce aux logiciels libres - suivants~: - - \begin{itemize} - \item Le système de composition \LaTeX{} - \href{https://fr.wikipedia.org/wiki/TeX_Live}{TeX Live} - \item L'éditeur de texte - \href{http://www.vim.org/}{Vim} - \item L'environnement graphique - \href{http://gnome.org/}{Gnome} - \item Le système d'exploitation - \href{https://debian.org/}{Debian} - \end{itemize} - - \begin{center} - % Do not mess with graphics - \hypersetup{hidelinks} - \begin{tabular}{cccccc} - \href{http://www.gnu.org}{\includegraphics[height=1.3cm]{graphics/gnu-head.pdf}} & - \href{http://www.kernel.org}{\includegraphics[height=1.2cm]{graphics/tux.pdf}} & - \href{http://www.debian.org/}{\includegraphics[height=1cm]{graphics/debian.eps}} & - \href{https://fr.wikipedia.org/wiki/TeX_Live}{\includegraphics[height=1cm]{graphics/texlive.pdf}} - \end{tabular} - \end{center} - -\end{frame} - -\begin{frame}[label=license]{Licence} - Cette présentation est mise à disposition sous licence\\ - \href{http://creativecommons.org/licenses/by-sa/4.0}% - {Creative Commons \textsc{by-sa 4.0}} - \begin{columns}[t] - \begin{column}{5.5cm} - \begin{itemize} - \item Attribution - \end{itemize} - \end{column} - \begin{column}{6.5cm} - \begin{itemize} - \item Partage dans les mêmes conditions - \end{itemize} - \end{column} - \end{columns} - Vous pouvez obtenir une copie de la licence - \begin{block}{par Internet} - \href{http://creativecommons.org/licenses/by-nc-sa/4.0}% - {\url{http://creativecommons.org/licenses/by-nc-sa/4.0}} - \end{block} - \begin{block}{par courrier postal} - \begin{quote} - Creative Commons\\ - 444 Castro Street, Suite 900 Mountain View,\\ - California, 94041, USA. - \end{quote} - \end{block} -\end{frame} - -\end{document} diff --git a/AlgoApprofondie/diapos/graphics/Logo-EOLE.eps b/AlgoApprofondie/diapos/graphics/Logo-EOLE.eps deleted file mode 100644 index 13f4889..0000000 --- a/AlgoApprofondie/diapos/graphics/Logo-EOLE.eps +++ /dev/null @@ -1,133 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:20:58 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%BoundingBox: 0 -1 232 85 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 232 85 -%%EndPageSetup -q 0 -1 232 86 rectclip q -0.290196 0.247059 0.454902 rg -133.668 16.757 m 133.668 16.757 133.25 1.257 148.941 1.257 c 176.328 1.257 - l 170.723 3.749 168.633 5.874 164.891 10.585 c 150.969 10.585 l 147.234 - 10.585 145.441 13.222 145.441 17.538 c 145.441 17.538 145.492 75.363 145.414 - 75.445 c 142.301 82.999 133.668 84.519 133.668 84.519 c 133.668 83.995 -133.676 39.347 133.668 16.757 c h -133.668 16.757 m f -41.039 38.73 m 41.207 38.808 41.25 38.921 41.457 39.109 c 41.5 40.347 41.375 - 41.511 41.164 42.823 c 40.625 46.238 40.664 49.726 41.207 53.07 c 41.125 - 53.214 l 41.043 53.366 40.914 53.405 40.914 53.405 c 40.664 53.48 40.414 - 53.554 40.121 53.515 c 35.613 53.366 31.141 52.577 26.758 51.265 c 24.457 - 50.702 22.16 50.14 19.863 49.577 c 17.984 49.015 16.688 48.152 15.812 46.913 - c 16.062 46.839 16.145 46.691 16.23 46.538 c 16.48 46.464 l 16.395 46.238 - l 15.98 45.863 15.812 45.409 15.895 44.886 c 15.977 44.738 16.105 44.698 - 16.188 44.55 c 16.523 44.327 16.859 44.101 17.062 43.909 c 17.234 43.988 - 17.234 43.988 17.355 43.952 c 17.523 44.027 17.816 44.062 18.023 44.249 - c 18.316 44.288 18.445 44.249 18.57 44.21 c 24.836 43.464 30.973 41.999 - 37.027 39.933 c 37.152 39.894 37.281 39.855 37.242 39.749 c 37.324 39.597 - 37.449 39.558 37.406 39.445 c 37.91 39.296 l 38.91 38.995 39.785 38.734 - 40.75 38.698 c 40.914 38.769 40.914 38.769 41.039 38.73 c 39.117 40.687 - m 38.117 40.988 l 39.078 40.948 l 39.16 40.796 39.117 40.687 39.117 40.687 - c f -49.855 72.859 m 49.855 72.859 54.316 79.749 63.262 84.269 c 13.684 84.269 - l 0.484 84.269 0.527 73.152 0.527 73.152 c 0.527 17.499 l 0.527 17.499 -0.117 1.984 15.809 1.984 c 64.07 1.984 l 58.465 4.472 54.559 8.597 50.816 - 13.308 c 50.816 13.308 15.844 13.296 15.891 13.308 c 11.449 13.308 12.086 - 17.542 12.086 17.542 c 12.156 69.034 l 12.156 73.109 15.902 72.859 15.902 - 72.859 c f -69.723 45.148 m 69.723 45.148 66.891 28.866 79.219 23.05 c 84.949 20.351 - 89.504 19.945 95.855 22.363 c 99.852 23.882 103.457 27.659 104.977 31.769 - c 106.496 35.878 105.191 40.874 101.199 44.757 c 99.793 38.538 98.297 33.53 - 92.91 30.741 c 89.711 29.116 86.457 29.386 83.211 30.995 c 79.961 32.605 - 77.473 36.48 76.484 40.363 c 76.484 40.363 74.473 47.585 82.195 59.417 -c 75.809 56.718 70.875 52.245 69.723 45.148 c h -69.723 45.148 m f -0.945098 0.792157 0.0745098 rg -110.621 8.773 m 117.836 13.503 123.312 20.792 125.211 30.261 c 125.238 -30.429 l 126.707 37.968 125.305 45.933 121.43 52.601 c 117.527 59.308 110.711 - 64.777 102.098 65.82 c 102.074 65.831 l 96.797 66.464 90.988 64.273 86.93 - 60.507 c 82.406 55.163 80.273 51.816 80.387 44.03 c 84.254 49.132 94.043 - 54.202 100.949 53.523 c 105.414 52.984 108.629 50.445 110.898 46.542 c -113.168 42.636 114.066 37.445 113.184 33.058 c 110.383 19.085 94.641 12.073 - 81.125 15.976 c 62.398 21.382 55.426 40.464 63.086 58.038 c 72.824 73.859 - 90.422 80.905 113.074 77.519 c 105.887 85.03 93.703 83.984 93.703 83.984 - c 82.363 84.874 61.398 78.519 53.613 63.808 c 42.234 42.316 52.059 11.566 - 78.055 4.062 c 89.188 0.847 101.344 2.695 110.621 8.777 c h -110.621 8.773 m f -0.290196 0.247059 0.454902 rg -194.387 67.495 m 185.594 67.495 178.215 64.179 172.285 57.597 c 166.355 - 51.011 164.41 42.503 164.41 32.046 c 164.41 20.98 166.184 15.999 171.609 - 9.894 c 180.992 -1.075 203.68 1.32 210.367 1.402 c 217.055 1.484 219.438 - 1.644 231.012 0.57 c 228.027 5.839 220.824 9.495 218.348 10.011 c 206.766 - 12.195 193.328 8.179 181.414 15.484 c 176.691 19.57 175.734 22.14 175.559 - 29.62 c 223.012 29.62 l 223.012 35.269 l 223.012 45.374 219.598 53.257 -214.785 58.945 c 208.164 64.816 201.25 67.409 194.387 67.495 c h -194.184 58.421 m 199.434 58.421 203.531 56.702 206.484 53.245 c 209.438 - 49.788 211.941 44.956 211.984 38.745 c 175.684 38.745 l 175.715 44.808 -177.715 49.339 181.262 52.972 c 184.805 56.601 189.109 58.421 194.184 58.421 - c h -194.184 58.421 m f -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/AlgoApprofondie/diapos/graphics/Logo-EOLE.svg b/AlgoApprofondie/diapos/graphics/Logo-EOLE.svg deleted file mode 100644 index f55c0d7..0000000 --- a/AlgoApprofondie/diapos/graphics/Logo-EOLE.svg +++ /dev/null @@ -1,1277 +0,0 @@ - - - -image/svg+xml       \ No newline at end of file diff --git a/AlgoApprofondie/diapos/graphics/Logo-EOLEienne.eps b/AlgoApprofondie/diapos/graphics/Logo-EOLEienne.eps deleted file mode 100644 index 72c3b78..0000000 --- a/AlgoApprofondie/diapos/graphics/Logo-EOLEienne.eps +++ /dev/null @@ -1,318 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:15:46 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%BoundingBox: 0 -1 1660 851 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%BeginResource: font DejaVuSans-Bold -11 dict begin -/FontType 42 def -/FontName /DejaVuSans-Bold def -/PaintType 0 def -/FontMatrix [ 1 0 0 1 0 0 ] def -/FontBBox [ 0 0 0 0 ] def -/Encoding 256 array def -0 1 255 { Encoding exch /.notdef put } for -Encoding 32 /space put -/CharStrings 2 dict dup begin -/.notdef 0 def -/space 1 def -end readonly def -/sfnts [ -<000100000009008000030010637674203eb93108000000e8000002546670676d5b026bf00000 -033c000000ac676c7966e2f9cb840000009c0000004c686561640e24be09000003e800000036 -686865610eaf07730000042000000024686d74780796006600000444000000086c6f63610000 -00980000044c0000000c6d6178700647062d0000045800000020707265707c61a2e700000478 -000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 -002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 -2900000001660133016600bc00e90000013d00a200fa031f00020002006601660002000200ac -015400ec00bc006201660181048501540166016d04a400020166007f04cd0000000201330062 -00710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002000200f6 -05c301f0053902390058046d043d04b2048104b2016601750466048100b00466043902d1049c -047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a014401190144 -02cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c701f2012f -015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a008f0112 -009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e50000006a -01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f800ec0183 -02a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba01020333031f -03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec02c302b8 -02cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae04600762041b -009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f6040600f0034c -016004a800c10000002505c101000121074a06120096014a078300a800000337007b00140000 -00c9010005c105c105c105c101000108061d00960427039e00ec0102027d0133009800d10358 -017900cd02390362009c009c009c009301b8009300b80073000014000326b707060504030201 -002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c20100720 -b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ff -ff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb002254560442d2c -4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b005254960b02063 -68208a108a233a8a10653a2d0001000000025eb8b54203fc5f0f3cf5001f080000000000d3d9 -0a2000000000d3d90a20f772fcae0fcd096500010008000000010000000000010000076dfe1d -00001021f772f9320fcd00010000000000000000000000000000000204cd006602c900000000 -00000000004c0000004c000100000002034e002b0078000c0002001000400008000005ed0221 -0008000441840280012600fe000301250011000301240121003a0005012400fa000301230016 -000301220121003a0005012200fe00030121003a0003012000fa0003011f00bb0003011e0064 -0003011d00fe0003011c00190003011b001e0003011a00fe0003011900fe0003011800fe0003 -011700fe0003011600fe000301150114000e0005011500fe00030114000e0003011300fe0003 -011200fe0003010f010e007d0005010f00fe0003010e007d0003010d010c008c0005010d00fe -0003010d00c00004010c010b00590005010c008c0003010c00800004010b010a00260005010b -00590003010b00400004010a00260003010900fe0003010800fe00030107000c000301070080 -00040106b2972e054113010600fa0003010500fa0003010400fe0003010300190003010200fa -0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe03fb2c03fafe03f9f84705f9 -7d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03f0fe03ef1e03eefe03edec0a -05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e8911605e8fe03e7fa03e6fa03e591 -1605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03dddc1805dd6403dc1803dba0 -1e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405d71603d6d51005d61403d510 -03d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0940c05d02303cfce1405cf26 -03cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05cafe03c9c85d05c9bb03c98004 -c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4fe03c31c03c2fe03c1fe03c0 -bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a03bcbb0f05bc1103bbba0c05 -bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4fe03b3fe03b21703b11903b0 -1603afad1b05affa03aead1b05aefa03ad911605ad1b03ac911605ac7d03abfe03aa2603a9fe -03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03a24004a1a01e05a1fa03a091 -1605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb059cfe039b9a5d059bbb039b80 -049a8f25059a5d039a400499fe0398972e0598fe03972e0396911605961e40ff0395940c0595 -2003940c0393911605934b039291160592fe03919010059116039010038f25038efe038dfe03 -8cfe038bfe038afe0389fe038887250588fe0387250386fe0385fe0384320383960382fe0381 -fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe037776a60577fe0376a6037574 -1b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa036dfa036cfa036bfe036afe -0369fe0368630c0568320367fe0366320365640a0565fe03640a0364400463620a05630c0362 -0a0361601505619603600111056015035f0a035efe035dfe035c0111055cfe035b5a1b055bfe -035a0111055a1b0359fe0358fa0357fe035601110540ff56fe0355fe03541e03531403525119 -0552fa0351011105511903504f190550fa034f4e11054f19034e11034d1e034c4b14054c1503 -4b4a11054b14034a490e054a1103490e0348fa034746140547150346140345fa0344430e0544 -0f03430e034241250542fa0341011105412503403f0f0540fe033f3e0e053f0f033e0e033d3c -0d053d16033c0d033b64033afe0339140338fe0337130336351a0536250335341405351a0335 -c004340a0d0534140334800433320c05331403334004320c033130a60531fe033001110530a6 -032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a640329fe032815032717110527 -1e03262003251e0324231105402b241e0323110322000d0522fa03210f032140042014031f0a -031e1e031d1c19051d25031c0f13051c19031cb801004091041b0d031a194b051a7d03190111 -05194b0318fe031711031615250516fa031501110515250314640313110312fe031101110511 -fe031064030f0e10050f13030fc0040e10030e80040d0111050dfa030c32030b0a0d050b1603 -0b80040a0d030a400409fe0308fe0307fe0306050a0506fe03050a0305400404fa0303640302 -01110502fe0301000d05011103000d0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> -] def -/f-0-0 currentdict end definefont pop -%%EndResource -%%BeginResource: font DejaVuSans -11 dict begin -/FontType 42 def -/FontName /DejaVuSans def -/PaintType 0 def -/FontMatrix [ 1 0 0 1 0 0 ] def -/FontBBox [ 0 0 0 0 ] def -/Encoding 256 array def -0 1 255 { Encoding exch /.notdef put } for -Encoding 32 /space put -/CharStrings 2 dict dup begin -/.notdef 0 def -/space 1 def -end readonly def -/sfnts [ -<0001000000090080000300106376742000691d39000000e0000001fe6670676d7134766a0000 -02e0000000ab676c7966f9f1ddd70000009c00000044686561640d13be360000038c00000036 -686865610d9f076f000003c400000024686d747807580066000003e8000000086c6f63610000 -0088000003f00000000c6d617870046f0671000003fc00000020707265703b07f1000000041c -0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec -310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f2720629013500b8 -00cb00cb00c100aa009c01a600b800660000007100cb00a002b20085007500b800c301cb0189 -022d00cb00a600f000d300aa008700cb03aa0400014a003300cb000000d9050200f4015400b4 -009c01390114013907060400044e04b4045204b804e704cd0037047304cd04600473013303a2 -055605a60556053903c5021200c9001f00b801df007300ba03e9033303bc0444040e00df03cd -03aa00e503aa0404000000cb008f00a4007b00b80014016f007f027b0252008f00c705cd009a -009a006f00cb00cd019e01d300f000ba018300d5009803040248009e01d500c100cb00f60083 -0354027f00000333026600d300c700a400cd008f009a0073040005d5010a00fe022b00a400b4 -009c00000062009c0000001d032d05d505d505d505f0007f007b005400a406b80614072301d3 -00b800cb00a601c301ec069300a000d3035c037103db0185042304a80448008f013901140139 -0360008f05d5019a0614072306660179046004600460047b009c00000277046001aa00e90460 -0762007b00c5007f027b000000b4025205cd006600bc00660077061000cd013b01850389008f -007b0000001d00cd074a042f009c009c0000077d006f0000006f0335006a006f007b00ae00b2 -002d0396008f027b00f600830354063705f6008f009c04e10266008f018d02f600cd03440029 -006604ee00730000140000960000b707060504030201002c2010b002254964b040515820c859 -212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b0559 -b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d -2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b0022545445921212d2c45 -442d2cb00225b0022549b00525b005254960b0206368208a108a233a8a10653a2d0000010000 -00025eb862af5a3e5f0f3cf5001f080000000000d3d90a2c00000000d3d90a2cf7d6fc4c0e59 -09dc00000008000000010000000000010000076dfe1d00000efef7d6fa510e59000100000000 -00000000000000000000000204cd0066028b0000000000000000004400000044000100000002 -0354002b0068000c000200100099000800000415021600080004b8028040fffbfe03fa1403f9 -2503f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603f02503ef8a4105effe03ee96 -03ed9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5e45305e59603e48a4105e453 -03e3e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603dcfe03db1203da7d03d9bb03 -d8fe03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe03d21b03d1fe03d0fe03cffe -03cefe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c6851105c61c03c51603c4fe03c3fe -03c2fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb -05b8fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004b52503b4fe03b39603b2fe03 -b1fe03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205ab2503aa1203a98a4105a9fa -03a8fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03a16403a08a4105a096039ffe -039e9d0c059efe039d0c039c9b19059c64039b9a10059b19039a1003990a0398fe0397960d05 -97fe03960d03958a410595960394930e05942803930e0392fa039190bb0591fe03908f5d0590 -bb039080048f8e25058f5d038f40048e25038dfe038c8b2e058cfe038b2e038a8625058a4103 -89880b05891403880b03878625058764038685110586250385110384fe038382110583fe0382 -110381fe0380fe037ffe0340ff7e7d7d057efe037d7d037c64037b5415057b25037afe0379fe -03780e03770c03760a0375fe0374fa0373fa0372fa0371fa0370fe036ffe036efe036c21036b -fe036a1142056a530369fe03687d036711420566fe0365fe0364fe0363fe0362fe03613a0360 -fa035e0c035dfe035bfe035afe0359580a0559fa03580a035716190557320356fe0355541505 -55420354150353011005531803521403514a130551fe03500b034ffe034e4d10054efe034d10 -034cfe034b4a13054bfe034a4910054a1303491d0d05491003480d0347fe0346960345960344 -fe0343022d0543fa0342bb03414b0340fe033ffe033e3d12053e14033d3c0f053d12033c3b0d -053c40ff0f033b0d033afe0339fe033837140538fa033736100537140336350b05361003350b -03341e03330d0332310b0532fe03310b03302f0b05300d032f0b032e2d09052e10032d09032c -32032b2a25052b64032a2912052a25032912032827250528410327250326250b05260f03250b -0324fe0323fe03220f03210110052112032064031ffa031e1d0d051e64031d0d031c1142051c -fe031bfa031a42031911420519fe031864031716190517fe031601100516190315fe0314fe03 -13fe031211420512fe0311022d05114203107d030f64030efe030d0c16050dfe030c0110050c -16030bfe030a100309fe0308022d0508fe030714030664030401100504fe03401503022d0503 -fe0302011005022d0301100300fe0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b1d00> -] def -/f-1-0 currentdict end definefont pop -%%EndResource -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 1660 851 -%%EndPageSetup -q 0 -1 1660 852 rectclip q -0 g -BT -115.200005 0 0 115.200005 1659.494566 0.0000456218 Tm -/f-0-0 1 Tf -( )Tj -ET -0.945098 0.792157 0.0745098 rg -158.102 787.356 m 160.379 829.535 l 190.289 799.809 l h -158.102 787.356 m f -21.06434 w -0 J -0 j -[] 0.0 d -4 M q 0.380357 -1 -0.775998 -0.295156 0 1266.965088 cm -471.528 27.38 m 435.436 6.755 l 471.344 -14.188 l h -471.528 27.38 m S Q -58.695 757.856 m 80.516 721.688 l 39.07 729.465 l h -58.695 757.856 m f -18.464385 w -q -1 0.699805 0.543047 0.775998 0 1266.965088 cm --278.556 -404.865 m -310.193 -422.942 l -278.719 -441.304 l h --278.556 -404.865 m S Q -10.25 623.512 m 41.414 613.496 l 14.113 596.141 l h -10.25 623.512 m f -17.112694 w -q -1 -0.121862 -0.110002 0.811158 0 1266.965088 cm -75.757 -781.871 m 46.436 -798.623 l 75.608 -815.637 l h -75.757 -781.871 m S Q -101.438 509.071 m 70.375 498.742 l 82.148 528.875 l h -101.438 509.071 m f -12.576204 w -q 1 0.937579 0.772771 -0.802194 0 1266.965088 cm --330.318 558.711 m -351.867 546.4 l -330.429 533.894 l h --330.318 558.711 m S Q -0.290196 0.247059 0.454902 rg -161.094 604.578 m 161.094 604.578 152.773 561.961 192.316 543.309 c 210.699 - 534.641 225.316 533.344 245.688 541.098 c 258.508 545.977 270.074 558.094 - 274.949 571.278 c 279.824 584.461 275.645 600.489 262.836 612.942 c 258.316 - 592.989 253.516 576.926 236.242 567.981 c 225.973 562.762 215.535 563.629 - 205.117 568.793 c 194.703 573.957 186.715 586.391 183.539 598.844 c 183.539 - 598.844 177.09 622.012 201.859 659.969 c 182.059 644.739 164.789 627.348 - 161.094 604.578 c h -161.094 604.578 m f -0.945098 0.792157 0.0745098 rg -293.059 497.508 m 316.207 512.684 333.766 536.067 339.859 566.434 c 339.953 - 566.977 l 344.664 591.156 340.164 616.715 327.734 638.102 c 315.219 659.625 - 293.348 677.164 265.715 680.52 c 265.637 680.531 l 248.703 682.571 230.078 - 675.531 217.055 663.453 c 202.543 646.313 195.703 635.578 196.059 610.594 - c 208.465 626.961 239.875 643.227 262.027 641.047 c 276.348 639.321 286.664 - 631.18 293.949 618.653 c 301.23 606.125 304.105 589.465 301.281 575.391 - c 292.289 530.563 241.789 508.082 198.43 520.598 c 138.359 537.934 116.312 - 599.153 133.5 657.778 c 160.254 711.746 268.816 729.453 286.945 734.754 - c 280.277 744.656 213.539 742.957 213.539 742.957 c 180.559 734.364 130.008 - 728.141 104.754 682.086 c 53.828 589.199 105.188 506.442 188.582 482.371 - c 224.301 472.059 263.293 477.992 293.055 497.504 c h -293.059 497.508 m f -0 g -BT -32.000001 0 0 32.000001 1361.895445 368.012451 Tm -/f-1-0 1 Tf -( )Tj -ET -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/AlgoApprofondie/diapos/graphics/Logo-EOLEienne.svg b/AlgoApprofondie/diapos/graphics/Logo-EOLEienne.svg deleted file mode 100644 index 7a2c713..0000000 --- a/AlgoApprofondie/diapos/graphics/Logo-EOLEienne.svg +++ /dev/null @@ -1,779 +0,0 @@ - - - -image/svg+xml    \ No newline at end of file diff --git a/AlgoApprofondie/diapos/graphics/Logo-MENESR.jpg b/AlgoApprofondie/diapos/graphics/Logo-MENESR.jpg deleted file mode 100644 index 02d68704027f8a225c05e87cd8888e10b501976e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9572 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 kPeX(!w4*50O%Ux2LJ#7 diff --git a/AlgoApprofondie/diapos/graphics/Logo-PCLL.eps b/AlgoApprofondie/diapos/graphics/Logo-PCLL.eps deleted file mode 100644 index f151afd..0000000 --- a/AlgoApprofondie/diapos/graphics/Logo-PCLL.eps +++ /dev/null @@ -1,927 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:27:36 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 3 -%%BoundingBox: 0 -1 300 165 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 300 165 -%%EndPageSetup -q 0 -1 300 166 rectclip q -0.32549 0.286275 0.529412 rg -197.438 160.944 m 171.461 160.944 148.402 148.244 134.059 128.76 c 154.211 - 128.76 l 165.531 139.28 180.707 145.713 197.438 145.713 c 214.016 145.713 - 229.07 139.405 240.355 129.057 c 260.641 129.057 l 246.285 148.385 223.293 - 160.944 197.438 160.944 c h -132.855 37.463 m 147.086 17.01 170.703 3.549 197.438 3.549 c 223.234 3.549 - 246.145 16.073 260.508 35.323 c 240.219 35.323 l 228.949 25.041 213.953 - 18.772 197.438 18.772 c 179.809 18.772 163.918 25.92 152.438 37.463 c h -132.855 37.463 m f* -4.26191 w -2 J -0 j -[] 0.0 d -5 M q 1 0 0 -1 0 164.490509 cm -197.438 3.547 m 171.461 3.547 148.402 16.246 134.059 35.73 c 154.211 35.73 - l 165.531 25.211 180.707 18.777 197.438 18.777 c 214.016 18.777 229.07 -25.086 240.355 35.434 c 260.641 35.434 l 246.285 16.105 223.293 3.547 197.438 - 3.547 c h -132.855 127.027 m 147.086 147.48 170.703 160.941 197.438 160.941 c 223.234 - 160.941 246.145 148.418 260.508 129.168 c 240.219 129.168 l 228.949 139.449 - 213.953 145.719 197.438 145.719 c 179.809 145.719 163.918 138.57 152.438 - 127.027 c h -132.855 127.027 m S Q -q -0 164.491 300 -165 re W n -% Fallback Image: x=0 y=0 w=300 h=165 res=300ppi size=2580000 -[ 0.24 0 0 0.24 0 -0.629491 ] concat -/DeviceRGB setcolorspace -8 dict dup begin - /ImageType 1 def - /Width 1250 def - /Height 688 def - /Interpolate false def - /BitsPerComponent 8 def - /Decode [ 0 1 0 1 0 1 ] def - /DataSource currentfile /ASCII85Decode filter /FlateDecode filter def - /ImageMatrix [ 1 0 0 -1 0 688 ] def -end -image -Gb"-V#C$t`_Z+TWTnl<<&Yt88b,Xs2W2ka,:g=(M65>*n8eDZ2(mhN?N"B_H["+5p+.A - <))6]`'+5R]f?:_V:#om[bNcc\tLR=!98HgXVBTBGt8j6i'dBCB!VHZ0u - LnW#DWd,0R#dci1=3U^ZdGoX-LFj.hBC\rto0E=uRLJqe*Nd:%%]!1bkYap\`u6@:BmK-Uc - 5g>UMEJ*k$.Wb'gn1*Bef>o]]:Gf<3sE'j1,Z"98E%!&0DO@_$gHB)L'Jd6!Aj>dd-Z_$Ql - d+#\((^Rd`c/[fRU`nI`_piL1([`;HJIf)B3o]8[)<\0UO[:\OWQsK50rk*LSHE-6H(]XO9 - !:U!!3I)DRYO1(c,'*K$Z_hXXmCRIJh`4t(:28U0V"0sgfaIn(XcMmBtP)dsQq(cBtn\H2 - -ejdIEsMkN,QH!<<*"5Y>p3hSflS@s5hHL[>Ke]mN)Ki3l?M/+8!@)GsdeGPc7$nF4f8>B` - KSSN1h\h?j5_!!(_jVI]&NHW"r`s,kM$opdIgQ1As^O41hr(fC25`[kI<^ACIfRIp,&e]/a - 3!!!!592!Ng4*5X76qkD[jh8;)k1N:RG:Uc1kEcj;q^`)F]/=2%HqJFjlE^Qm!!!#c/gi%@ - k`Kr0(@N15CNtoc;jI)4o!!?so'>tn[.0o?O'M\)ab5S"4;\%u!'n8<1F6O,FSrf0c%?8Fj - borfRLUph%NDc/FRI]^HVa4c?iU0,!&!GT;Y&uCZ%2qf'L1K:!!z$G*=?SD2;1:qmR5>? - \hkb/8-_Y@)?*Lf5KZ.nB9C#ljr*TE%PGHZe#)BHQ^=D85";1#r@Lhe^MUT1*Nrm_,-TXSQ - `:!!!"\5NV!0iXVLg$/3n@lZD57Lq$9qm6#N'i49#;:Zgg#WBQ4@!!!#/]GoJO2Qf2&k1B) - 4/]T=/42duEWO;d$OisIW*PRrY2cp(\!!$-aE`2IcLmUL,6Tc=`.;q-jT;?\jOi%AU=M&>* - NU,@D(]XO9J - ohRAcLRgDP:kZfrGDT8!!&\9okUP$(C]Lr3H^deULXE.,!3.KX1X&r@PAfc`s% - E.*j[@\0@-Bh4Tk`b!5KRecWln:gP13,3Dk(^+N3Dao:!="p6J>fY,d"9!<<*"YYf"Ep82s - ;#PAU)hCiD[R\;JBBQ:DLB.AT!&3^)l,t59S%`Vn??rFk`(ojnoFD@d - 4IL.[ot(Y5!!'f%V5It.MqmLOH^=4,6&^9n:J!!&s/Yup]fs#FoB6I/-dCB>[%e&oSSDs625qbC>)+#!Zp!8puDkuhe'mH - `SN](0/mL_HZ;5GtW>Lri36;Z0>o!!!#i^Vk1pB22aU1J\>)NL-RCXQ^ZV?+cm->mgW4!9? - qrNh#\[]%F?OTCTrc+YK#1NCWi+>]qm]U?ZqV!!!"\J&E?g45=J2o$ooI/tG<,6=P,Wo9E; - U!!'fH\N+r)2oP^B@tsR94X'VJ"*t,hgN"PmO0T)m!!$+E1F%6X6qm>M;j8s"$-AP0[e&"i - jaUfPjf!X3!rr<$c7V7CCJ!`MYM+q:^5OEbhrgV=:0\jSS$!(u!!#,X7XEY6d%0f-66)LJm - /rY-h49t%Xniq9!!!!YMp..H'bN00WN:KX:.Tq1kI)&@_fjI.!<<*r^sPpaEN4E:ApigtXm - 'PfWilj3!!%PEAS'sS>J."XgBl#hjb/_Bd\U6bb%5p?EcP/e-NF,H!(Y,RZYW`bTUXPDj\' - S[Ldl]4T"8LN+U\f_"TSNf^33oQahHZX<5/8WKG[DODSPRpMGnrbzb]bTjEQF44PV9QR+ZA - Cg5Kl<=n?hJ]#QOi)@#d%@0)H)`XF-F1#a('j,G.,I=nNL5!!!#'h2U`7;^XuAo'fSl\gE) - tP1GU_cBtmq,ro9(eHGpQ!3f49:>UkaR#[cuPV9$C+f<;\Q%+&2:2U+A!!!"#&[O"e].SZW - (XdsJ]B9!ne+^j-W4q*g!!!"&cCDI.CsYN1Me>A4_r)*YUl1,X1)Vcg_$D!!!"tOI;4oHcF(V:&'Mt+YJil%bt*S-DT],DpHSNd'2X86!'!!%QIn']/o_gN:L?N:a+>TtDA??A1V=nQnF!!!# - p;dQ&,q9n*dRuL:ZmNmOr:cbs#]6_G&m]$Bi!!%)24`f^lIHN"cmLhik1d_Jk4eHsnop#pc - !!)g\DJid*fZpp"7k7s.&jfhai\D--GAD(kT'E?p!!!"(f]eSkhS!PN?ec8\nkJuRS='q<6 - 1qVp!!!#%-RU9#FRE0N1d_O'4lX>a0I07qA5lq!!!!#W1/@amnV8/APV6SS+o++rH3Tp(Q) - +7k#64`(B4nLI[3?flm2)O^Y@%Y[q**e9'-=S<09?#1!WW5Y_3-G,)"Q]LjU5-V8:eq!^2k - oGqd0='!8M3W<1K;Q^[h%I+f#+86d'Ib=7&q7'a+L:J?qe\OZ)Kk--DRRKTH6VE?Ps],Loj - `!!!!I[O:pt0'rb*Y>,BI7&3JfJA$:B<*pFB!!&Z]G'<;t^ic6.e?;M:Ia7,V-U:ogihA8B - k/Q2H4Or%S!!!!Ye:khV"*t,$?]Gaca91JYB@b$0f2Z0,!<<,X+PSdrl-OI@nl7(]eu"/d# - nTV(UZ]/S;/rV>QN.!cYck.0S>d/GPqP<-+iId,,thLQ<*q]f!!$CCB2;n6U&,8[CJI2%Yp - t15s*!PSA^sjY!!!"dCua4Om@0)4^=ji#8bf6gX%-F/2Qr0AI2rIk!.[)8ZZE%'?_r.48I- - K&R6G>-:/7tWCFT;a!2Nl1SFTUNfuhp4KFhTb#4r8:FRb+N.k:T"!,QarhoX/\-R`>%&jhD - 2&XTnXqbO3*^&e97^cE7S?f?od[drod^7HU'&CVjVDW,"c`J"d%!!"Vp,<]hdn8RL484!Te - CI\67-oEkLobA8C!!#(*S[n<>fBLFZO+\)(J;DD)q8@'KYIac7!-kI@J"6$!oN/bE,_Q_a` - N,:(J\_XbG4>Q1]RM@J[9gurmm'!.UNXJr0.[C`dZMcd(@W*@07=))'1ta6KIJ - N)]-cV^+pmEmAbS3Rh"nCMA(pJ"+*fj`*^$AJeRj3DShl0!/..ma))cEf`jH%?KbS\#b2nlSX;nVqG%O5;V$kn9`?jr/NaKD=hn - kJR8`NkJ%M%mTrAQnr5\u?C#*=\pKa\T2EEX5h27#UQsK - 5p:0l/hbZ9/kg+G6?j2@Q+GATFQD"4[mP?*V8g>f4_SrM77eATHR/stGh(B=HNIaZ\#LCIL - ]I+:`W/a]$ena82Kd^U%N@6:6.*(rD<2)i!0/B]itZf7%:hmiBqlkpa2DscCqMXk7CS1m;8 - /kAX[<.21V!!)(I=0JFllT%o>HB1$Q\p7!knaiLNZa]:WMA)Q1_M9'0^\"nWj$sd7YMMKZq - M&F2(4OeG]^g\DS0:,hQuV5.MX&Y(!!"-K3HOJk-mm).Tp[1UD:ZH54G'EmglE9NpI[e!If/M0C++<.9Zu8-?h]T11PodL(F!8o - Wp"`IGUKHk**Q&"7Y!HV=1`*?&0Ye:H>/]\o^=48He_)Bb2>oo@qPhQ(OA\L5[&`OdhiU.uR(]CH[TYps(Ordb*4EJM - i>5(2@2//F.'0uW>(TuC-q-RuAN@tod%k"o"X!'igt<^^D&UjR#K%&S1-Oi)UaG!s;\BBQ9 - YGMqgC1U8sCO8\l]$ToAJT-]iG.,Uj8<<*"qOGUBlB]#Z/=(T<@\p'SU*k(\:[8b[h%:%5U - M`3t7DYgBXGibhX0bV6pMfWq6CFB/_:_8J@3c`jcjm+Xq)^"PE]=&gAc74p?Q'J[ac%5lO" - Xu[4M/Gf]Z@q\F!W[b&7T>t!IM'_(@RMGXRuRsq^&6B:9<(c'j>RD8(BO[_`,UXKJo4 - pd/S2_&0 - YOaH*@aD]ji#X7#OKb!N4q=@DRQ+n-VrL#NkKBfcF!!'fp_WG]6^>^>\Vfe2c'?@7H4F:*$ - W<)q;Z+.^a5;2SDV#IJ^m`ta`>?%45!!!"BZ#!"=o!K7DPI=hWRPo0YV$kmTT,5;V:7\mOc - 7boW#>\KFU+BWT?1iID!!$E4[4D"Aq[k2Iqds>iVld^[,t7Ju!GFKcG\sbdau2s`.=]O&gK - Ck'YNh;Q!!'ek4/1^s)t@\Up$'hDgt^g^2m0'X4sL'&/ghskS@Z/r(N`[MC$"<_F5'RBB*8 - 27J-fZqS772O4RJSt%LLjRH8@q]klB?[l-bQA1!BC90'*Z]o0WaXX$.O(!!&gb5+1Knl*#J - GIs5JN_eHqdV&1YaAEoVj+d - -N[\Q_m*kReT[&E2ci:?QhCFrcLViZ!!'h-,i;/iY"PGYePq*ZGFr#n&+[P!jBL"nNqMg$? - 25GA^o$;H;m0P(`m*!!!!9P+.[0bM\)s=&9&SS_Hnq>lKM'rDfHkJE(0OjXck8X^0E'b27 - ^Q0]H!&S'(s?!!'NZ^kn2rf1lK$SrNXL7P@P/:02l5!B%#b:(_CFjmU+hQmq&sWBU(W!!#' - GK^M[NC+`_c(]Oh=IFnQ#!<*M6-LB/E5l"$OJ7LpKi+$bS`#$d?@.25+H!63&d\U6bV2I93+* - .D^JH&5;bP\'S%-;9#Je0S2s2a;On.B$CTU_P-Y^,!W1`<.fc!(b-]A%8'W>V^s3<0&pIi_ - bV4![f$lDPh9\51c-.k.J/38f*XT1g0M.p2UO\0,>7TS<;$)?9b6DJ%ffjm/Xg+"pFiNGB' - )51G)jbK\:9'"Xk*(]71]m[5q\KBf3@!!!A5bo:,WYDDatHj>F5:.eQ8W.Fm)6K5Br"6M(_ - ;s4$o=E?b#T`tJs"]Rhd"`EU@f6$X)[s$:c$_O!mb[[n[`7q;?o.eDFi;#?L\`GIE!)VYN[ - FD?"-RiC1jl?+G$,(AIDkR5UOa-Nc)GkOa"cZ - +>=%^7mM`NhURG?[6B@^cd44"!*O=7pP;!!!2A[#(hX=MoNhIM([pnaW3sY>>7T3LOic2pY - I2>Gd?dV>:H"!.Y,Z?0"32/"_3WL[^?PC!J&(O/e!!))$7us0 - Ue"jcDb/"S&"n()adZN0iRju$<;ROA,H - `6X?>P1*DQ?D*t'S%Y"ZTNWEl2 - qCo!:lCbEJ^feN)[O4a\VFK\L]lq;tY\Fn6d]el+[X5W;JuETCSU-W#k%.WW3%7*2tkQ\p' - U;I"dc&,*ltZ=7&q7;uu4(bHlj)D=VM=rh>Nndc7AWia4+6%kI\\E-W5B?R(=X;80K\2sJa - S+R\`%eOL@);*1N3g,C+Kr6g^G,6!;5(K:D8J>AGB1!3QTq'Ot3B3i'lH2*)Km8SKr!D'ItrXs-[^8>X;\p7$4+jg8i^]n;(LFZ`RjF_Phm=/O48_ - "%ZJ2qd@`I6EKXRZ`l5)A+C`I'rd!!$,4c-!`Bf.d"C5BNN;iV[iK#8;WU:7k5Fd@%2;RZQ - W(q1:'r!&3\K_PO\87k7r^\9^US>EY,?V>=R$0]2P=W<7GM/&008HJ11nFo5pIl@TBC!*m< - h^5i%!?UpC+oZ:n>o(Y$\ODftKV=3>=jd-le:\RUH5nsA"kR/6@>kttMV;p6B7-NF.WXgE+T"V0#(]mOucf5hQZjT - ]Z3HEpapBfjfWW3%WNi7qmPcmkf2uS%,?+YD]oe?TBhM(RQ^ZuN2r1`8`q0ctal=1)"!1^o - [`+pAsN`3YOERFQ+cVI3Y<.,/U3/a7T)2%d@.).ULB_[0/!!!S9ZZ>p8$rXepERB^a&WrWT - X83Y7E%[QHfo,!2$OPNTCrklVHW;.Q!!&[Z=:Yi('hiF7aNR?o^-`&(zzzzzzzzzzzzzzzz - zzzzz!",`i-SDNWL`s2Qma,+e#7q'dPq+:f2]X6R-13I*>6"X'Vm^Ni$3-.2Li(hVl%nU,L - k=j:itmrPr2uMhbP%kuJ,fQLcpCBj#qZlacr+FA9*G:qE,r*V#Zr@#*!%190Pm - K#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4F<@5 - (P!!)H.cH]HR"oJT1iZ>I+RF"j*">*V#Zr@$UEr5Rtqr!);cC[>ii9b,fAK(*[MsAin(G8t&d/PDLWa.!&gGX!,4DNBEc - CI&3rV#!,5Q5o$qp8705tdIL/JUn);Ir0f"TTqb'bs`K<2ht8Uft0@#mgq3gYBf.)t,FJZr - G(mrUndM%g4KW*jen7cr-P?/QF.);uhFuU,,",fOO[*PH%W`*^>,/ITrVE3WiQc[:lNpTqt - '^>,k80W;loE181O2$!O?&BW1t3`sW=c/R#N - [7S,%5[VU&-[-?>AV)eodWjQN>181O2$!O?&BW1uncX^X"?G#=IV+ZZ%M7h+=t5c0V94IW$32\(0/)ehn`(2n&X+S/!TW_@**:kFu_'3Zjc\:fD8#JU01gS/C#lurZE]=X!X.L+e9AP6 - oYY.aR=il$[kDJiM";!dc)S[r'3ZlMTV]eaQ3mUE_#Z.\[_d_+[r1"_ - 2E'.Aq0RI8CM`Y-Vk5"cA4Z7M`?4dYMA@eT@)2p?C!]bK">//-ZrEI?;P=4F<@5(P!,r5SC - T4eR]=[h%djHFf7=OA7Ma\&NZ)u`fCS*_7;Z+WW4*FT%:uPi4X@SHt1M>!tS.%""8^LA;78 - &mP/JUn);Ir0f"TXnIi0J[nN>a\Jn)#cYo<)B2C2BV5M\`:kWH\@2fs>>We>`&D5O@Op2LY - FDRE-q7scr-P?/QF.);ugkD8m5u'>;n3=\T4Ojbbn1)p:ueZjn/9?cHFDCkKdd - OA9`BF4n(s6PUNeZlW0Fqcr-D;/_+%3<12*2T`crI-F?_PE!`OJC8"kfE6Xh/16_J&n[X.n - OH:$5*uR:lr&kRl&c["$U.$idpktI'1h`l>U8?"cQ3npOWA:0D!ek/^Y?nm\*?@:]hRjq[r:.JphU?`9bJOGd"j-* - t7Ri-9YHR^sX+!Z7gX"3l@^4!jq@6]/PG"aUMj>h+=t5c0V94IW$32\E\#"QQq<(cf.,*[^ - =gQt0isk$#[;tBO3B9*Cg-NcPV)eodWjQN>181O2$!O?&BW2!i&km5CG:Zn&Ug1HN#)d4a7 - "i,Jj^>Gp-UCD5(+iN5ZrAG>99ff8'`_KjrE?5jkF[6)WD^]+95W7]R>F#eGdLEt5teU$/Q - F.)<%(%*PmK#W!*k+]>H4oWs*c3M<%V+MPW_5&S"6*umFjE&I%8ig>3beHf@/0r*4@l*iX@ - F3k09C;aiX85MHOVl181O2$!O?&BW2!i'("FPKn''e?b.ghLlRL]gsD<:9'03Y_r[;+511hb7JGOP%jE)Bme[ri48/bSc#dm68c?[_Ut>Aq2tcWum0GiB%W - g01n!20S?=?+Y:%ge1e,KS5#H1M?FKgUC%T7Wn"GH1AiiT7?k9>.&+Ys8MmiRPYm=B[H>3b - :d5:I.r[]^86^.l1S9S_$;'H044_HD3ZYT;B5GNN>qcipoIW)`nDAZ3hq,G^'oO;FG^Z[u'p.n\l<=Y3+m/9((MPNc1n2Bkc - %n9mc?BpY=QZ%.89"b*Dkumk7kH\MGtr\T?q_q;mq]2/3u].<3^!rqPLk1M5GAoqfQ0Wi5h - -&J="R.TWX<_:QGDl-`mE?:H"#lU\B^RF"j*">*V#Zr@$E#nCXJ_FG\rUq;BUp@bqnD3m[Yn'\%*;GrZ\o.cA@d,06BN - KM!)\=_u8!sT/F#?:S]agY6-`A2f6lk`uQ_5Puh:s\LH<.N3d*=(7?1b=A)r-C/qZVe`:rMM'nl#%1P1+8u< - 0MDq_R4O$33(r2satCoKpb*3!/OY5C+E'E@gAs)$>jnn$0GAO9%D'!tW+cr'n[,rhcu:7aR - NGMV,gH#nV5M+6Ogk?#04@JR3JLRXd&\$rikXhb#i2('bAP^VSamkphhs8M#sPan,RPa%D% - N>e4p?Q*HYlKm31++bBr%[qe)OLAn7k4o - Q1TS&!L26]p^cl@bWJPm+kPq1G`7DCh\r9ma@qig:Jh?^3mJ7mFq9d[0O"JV>C#`fjd3glI - <@jor>PUWE!W2181O2$!O?&BW2!i&ff@uVb`qf]3H-];0SP[e5RZ"EL$(YVk8hjD!__d[A@ - JHAVjRCDjPtMkpMt`-7L5ejioaA[,8%BcaK-Sn35C2q=s!2*Up;/LS:QeKU)rkBW3b\V#l0 - ?E(inF5('m.>.n4RG1qRN/=+kh>FX+N[!6nC>5L<^qmFqd]Y([igY-e"h;$d$04&JLoONao - \ODDlG29S'g!EVE9UK5V=nV1:f,h-"&[YN*cr-P?/QF.);ugkDNbPJ`3d&kVW;#N'6[K@d+ - !6\-J\KO,7pEBRp1pWP7Z;<%r]^/=PP71ae,^Q9rpFE999"gd1B)qORh[P\Gh]ZDG']^ed8 - FOB98+"c<12*2!Pg!@VPP3A/a_2q@l6`3M2?4rG;m8&J)Z;4hLGS([VacVo%U$9RsObmM>t - QiNu'HUr5]I#et7,#WFE%?5*eXeS52BJ<0Z^qd*Sn![r0j&@EtB'rVH2f<2l%s?1-:GRgh0 - \g"E]EXh>C1fU"XAl?IPu1i:sRDV_nM5QAA*pQDh^V-^cWX\+j.#"O.0[F]eRHpU.d`5s.5 - mD=PbI=6NZeZ*3Ma(s;0XlKl,ZrEI?;P=4F<@5(P!,r5SBW9apD)8Ii?bUp`_a__lbr'`u* - Dp$E[VWK``JXO7JLUj9h5t\W`^[r[hL"]Sj83MNQ7=r=)fNAtA?)Ar*^4uH@=sBm<1uV^h* - FFL5(3:7[?It#]6LplG^]4;F_0r[\9:[eIL@,I=[@B6uVX@8^Y?j(aGl.-tA*kOY - ',MHtj?Z-#md@g'^A%Y]_u7NqoBWTpQ75a%G>.$K2)[ADaKP&Zp$.g-Q)-WCDJlV>&&#aNe - lr@AAg1EY9PCD%JsIl"=t0N^"FIW-8WtLc0$Xj\H61,E7M$m-fk6r-*MGfR$@i'NVnlO'fs - Bl3`uinR;`$Rg".J(EF)l;CpKDYej#pQ[eX'Tg8UJ6njiSI?K^ukVqJ4n'?PN#!n8PF_]mT - X]mYb\iV7(-h8p?GN#7i^PROG1*DADiKhhg(u/QF.)<%(%*PmK#W!*k+]>O(:kP7?Ao`n/i - :@=s5fL?eb_WD]Q&*&q?Vgt&T3BB2!_#4H89H:senJ%k@+rr);8>;^#7FL:HgY?\WdW\J@0 - oB&alhamG7pU=T#f3a#5HWYnPou)\#\u0Fu"q@ZF(\G+Nf6"bS4D<(a)tmG>/QF.)<%(%*P - mK#W!*k,H>,iupiWlk]^8"f8@M^Y%Gh>j]^]2%9#iisd[pbGJqtAP\\RW[?7YW\3V:M\K:O - BmD?@'_Jhg9P2dRAN8n%\nZg+f]E&e^r9ZJ0aW+gY@P\$rj?39$_sFm>4!dgHKidN2HL6Nq - X"99ff8'hZhNAO9#n!1.)&9?kT#M2mT;3HF12YIpSmjukbLmej:D',)%%n)Gl)TP^<"9h@q - (rS?%7O$/f#Sut/>\Lgg'G29?=cBp?(L0`ZJGH^_E[;+6t@9BQIq'<'O:Goi1XHm&'H?JUp - ^AdtE)l>".-1-%R(F`8Cg9k]SN,1:RW_@**:kFu_'3Zjc\-1WRqX1uam^^Z@9q0_9>8J%j( - ).JDj5\Uf;lBKbl\e*-4k'RjT+Y/r@FL]$AW#m]F6:]OH1sgi*j%N_6id[C:u+-Yc=NpP(Jb55OKfRl>3@rr"eE+V*0Wk/ToaPAO^$!qe - 4ZgV;t:L621!$X]r9#).1+S?Fb*q][tRI'e31EGm19<99ff8'hZhNAO9#n!12X%QMT!!+!! - =[^u4"fNutPg>-VPUjBmK)ltkKllTY$]`0NH$g,(@u]d>*&<`>>qkro9&(b)A"2;KqTdD;K&BM\7=.aLhT*U - 8?"cQ3npOWA:0D!ec8MdGE6+&L4YQ0X - 7J>G&r"Ws8D\g?dXY/O%M+>>0AmD,R0#&Xc_9>-q7scr-P?/QF.);ug - kDVRP&QV+T:==0H8_T(D-k^Nf:CbhR;EC5j,h9R.4"O'S/6`k^Sc1^t - rT1cqn%ooGu(%&.'r:A5ij3+p]p$:5!pKH;1n])`,k80WDJ24.MGu8!4 - W0fQ>5%/XD-/^L8HEWi60BieU9Vq?soZ$+==Nrh0VWES!TJ.oS`QB[;+7?hKnA1SRog-DlG - HG1$608[P7#glitj8AO9%D'!tW+cr'n[,rfs=SMtJYmZLoNTrYbfP*0pr&fr*s4c"qH2'aG - 8H`4f8$ig"^O5>&dAB>J+QW1kX++C0%GER.eQ>``M:7TZP60Qt+U]"O!ET>'\]E6ZYV94IW - $70Ab181NGJ4jkDQ>5KeQdO4.P$9[34iG$\pM(4J@S>5l8iV>"]]H1N6I!P,DFm[m_EYGQZ\(9D([;+66#;NK[k2k^hhT\VKCUp!:-8[PYHe3q]F6D7>^*tZ - ,dn`3Y*i+)Qju1Q4g!EW.6;*"FZrEI?;?=QZ3-e/6e>SN'oZEFLQ]mVCoD#;aWOeA!uiI!+[LJ,KE_l(fK?ks/TnjZ!SW0j-rD0K3SEOd3Ybhu9PCD%J - sIl"=t0N^"=J,eUIL6k/N'S1YI8`Sfs>>WN^%7+,i*H^>H1\aG1CG$DJj@^naSO+[6bXe7J - HD\@df=!5Ao6NVR4j/L^/mWSnm]3P*Z>FPZ>&$Z%9$sA%[E!R - lq<'Oi1MrVW;k^&1KU)rkBW3b\V#l0?E:T;E]_q?D\ts#`RPd!^4CcA>h2t.l0f%8PmG#%h - .8ls4<`YO&M.L4.PV-6FHU'MK[k1gmfW`uMrVl]_\hC\J4553QDG!P:55F7Qh+c,UIVH?CM/`mP>e;M(#?R(>.*Xl9:)_#goQf&B?hLQ)&=Z!AEhO=f"V41KpF - 2%=t5c0V94IW$32]pq-0ktT=Vd>'L)Nkj,Ap*K4A6&I_Bplg:CdOm2@OjVb`r9*UW0r^G`g - XHhQgR*Di\@]mpBF]*BM^.$r^)'h;$em7 - k7iSn:hAkN:41BrJb`BjH2sPN#?-sNK,Z!^-$Q'%qXs0d]=WtCT/1,?nNAbKjN3Spm[C)*c'gLo^OCTSG..+3\[f8^ - ^EPVn;FQl%I9c4]O$32=f99ff8'`_Kj9=.YA4?VD,?RU$^F-s(6\+]Fb'BO#kb*B;GcQ58tGe8.db*FVpI$"0qk? - Bg]k09A7**IBU[VacV]"2Lu)H!"^`pD6VQgkC>);N-IUOW=C@eTs,!uELj0Q#ONZ"(fa*BL - QOn(nKm2QTr]gASe[rR\g`-$Oa<-5tu-n%st,L(.jH6 - ocP>jb4LW0R`EXf;r+2M'HN*A&jTmqWO[afXnauePZQj-9,C6jiWjpdu1;cQ7&&A0qHImOjabKMZXuoN^1MWTe>XW\MHI9[8sLmj%N?3#BB82PP$WJ!-(BpOXDXDOq'6:/PqcTZ.5 - M+'j%g#M2E78&mP/JUn);Ir0f"TXnI=tTEN>JIIkrqYaEe.eo^W?QDmg[jUS)gQhQ*W>j-1 - H=r[%3'3BB#f@0@q0B4ECmKKc+7XO*jHEA5Y6f@;ekJh3Pan3k6,j:6:f*8DOcLMEB&ji52@Bm#PMC@")`MZ9>e. - 0=p?iFF>,m[SSF#M)BtoMtl-m].Qdd-]W_@**:kFu_'3Zjc\-,lLWBs?TcJZNkc2%U6)!@f - hI`fgU11b>R=0=CT:"&7hBWFTt92"mMp+BCIQmmB1&*"1U[?E+BY&rsYakiZh[CN+@(5q:` - hgRBV,U7(Br:mbcBW3b\V*YJlW_@**!8nJp[&)Up)]LIJ).G\T>/#Rql*4 - <12*2T`crI-F?_PE!aY.ak&B&pA7%o'2o>M%dquSUIK5:^#8_LT,51KcC?mQ4DVqpU&aW=^ - HXD+Y\2:R*ZcBk^AG(s-DJ(0D;*L(nc/CENsQIHZu=k$Dh%YRp8rk;HKqI?5Q"?b^WDZe7n - #kCV59S8!W1!`bn]jBp%<1W\8dc`I%d2=BO5(V+\cl+$+Kl,9oSKeElV_`JXs2*8%T1O4`Reldq&ELl[Tm8kN"STG\DS - AS!/5,`"SreQ(t,peUG+7un]+s5UM&f::pR_)H8e&8.H!fVVB4`$D+QUZ:@ncC[=nR[U7&C - (Ed,PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P - =4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G - :qE,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff - 8'hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.) - ;ucmu-V$gp#qZlacr+FA9*G:qE,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc< - 12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);I - r0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G:qE,r*V#Zr@#*!%1 - 90PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4 - F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G:q - E,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8' - hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);u - cmu-V$gp#qZlacr+FA9*G;3Fm7>NjQ'k%ZN/nhZrEI?;P=4F<@5(P!,t@E)&_nWqsGDA]TJ - GCUj=Wnm#IA]'3ZlMTV]eaQ3mUEa'u;qkg6$M/N%=p4EKYDl59W,03YALBW4g[Q7*V#Zr@$E/W1Du/mPo*U&V0@q==FVm8H/*!;8`P - PmK#W9$gII6;%I^(\5TgIm!SkUP0bb9URZj[V\r+5lc'o99ff8'hZhNAO9#n!*=1>r;"L#. - mL84hH$pmaiMOoe^FY/5$Fs[BW4g[Q7GV8cTeJ%.0/te;Ir0fKb - CalRF"h4_"h+aQ8WU6:f2cFMj>h+=t5c0V94IWMYo%h4oNa$6[SOn=gr9SA7VM2cY_FFM>q - nmjN6cTCt5ioN#FZpTPd3kp%;6If9,h4S+N - OP2>$N]mBA:%3%4lhnT2C"Ug>45H]>#^k7>qL:Xq+Bq3E,ruF=Q]]s24YTm>O9PCD%JsIl" - =t9)uoB4FqQnY4?]mBE;Tu4AI'e4=hcsb4i3B(j2:q]63Ir4)W]m0),g(ebYUe.Sa$,F8gW - A:0D64$hq9PCDEFaNiKC#?XQd@s'H/uSFo;5-J%Q7\l+U/^S$$G'06:6dJ>?K59B;PZj&E3 - KGAZ$Q*.0k84Fl-^k=3niG[")pJ.W_@**:kFu_'3Zkj='T"ckF[6A@QD-ZHgeYg""9j88kM - _Cg9n==C.LmOl.\p+9O,&Eh>$O#]6h+=t5c0V94IW$(P"\rB1hA9OHTlF6O.opK.OsQuD[r1$5g2@4".\Hnr<@5(P-p^Lk - #qZlE-S@#Hq\Mr'gV%sClCCCqo>;)'BUk:*M\hG1Lp4pChgG#imC*0L'i9LJ.MGu8Pb=kqK - U)ts&f)6`Z=HO*4/e1+?@#39:8>U]N/Z7G-cK:tmFnskg,(ArE)*c>RF"j*">*V#ZrFPs=g - M_N]=XQd61k[+2GEdmUVP!rc0aB$qZBX87j!/$_hJWogGCJsE)*c>RF"j*">*V#ZrFOBIt) - t87n23bfO@06K'HW3!TiM-GL$Ru\od0W4*K8!UU4"93RL`96;*"FZrEI?;W/6T6:0``Wk5l - iM%V,9qN8@3l`/fa'PP>!_08(-:o6pS?+Y:5H],71^cBe?AO9%D'!tW+cr/j#eui:o_sMh? - +nb?o(ccWtqXs/MT0Ag8RsSe`o^qdN7urQ-IDUXD?[r#sN>aYq2@+O$KlYA&/UQQ@8'7)I[ - t"F,#AfEd$90D:W_@**:kFu_'3ZlUgk?+PSppNMX8;)\r6PDeS2p2\N>omHEoP#oET>(;rU - 56Nq_tsX)IL4+fm^O;(pnGOf#*7R4(_^(<5:NA;Ir0fKbCalRF"jjbUaN&_hJV[pXAEXX8i - 1rmkS)]Fk,*qpNA3-d\M_&3s)o!=t8I#BW3b\V*YJlW_@**E+Un))FFW35TfX#5:OX!BEdaDY1ccO:cO,k)EX^Ah,.On'g_p - P5L1G^i3R_0*tm&ZSuY$JZXc>MCF:&M>bVqR!`,;1_=jN3U$euY8sCY"_!;Z["%VG3Nq()F - >ga,UND/ss@5-Z>te=]pLj+'uBlfl+Y(2IXIUWDf^PGEDU'qtBDM:/4hIX5!*6ZY.UAdn.3 - g`EBQ^djB'(mG>N\r:@I?kJTYc27IpCA7WWu`emi6p?^Jl6lJ:=r9_sIq=.H[C8@p"(d"[f#3M:[6H/oBE0F[Vjp4H - hZr\"q;4.f]LGJ*C$faTr#nbQ3npOWA:0D_Dto8HM,ZU+#VJE7u\F`HEoTM$"q155aoflIDpO.oo@@V(Q,h]SD - 8tGeqAacH'%(gpeNYT3]'PIH?_q*dF#`2`J4gPq+e1g2tQ+0uo=s\)71V3,p-)4T*fdW+rHhWt/Y#A4rk005@?Ua/mIq`qc:mHW,r9=]*)Zk(jG*e4+XO$EVgi4smo=0?X1Oae3OW_@ - **:kFu_'3ZlUP?OD0\`]P?^)X^Y<"H5<^3&V&=YgYjbl\1\L_[3 - t-]=8TSO[YQ7P&+>KA3nUirccUQ'Jb%nRAcWe6TZC1M4=HogG,\V-\V#04):>k0U#%+44lH - PURi`Z\%Ct?[_UtmbPM:-YA%a:trEqXa9XCn`Rk:j_k=(gJVlBGOA_j-Bjpg]4fTdpYL8Cg - +A2r1N_j-.p&lE^)DLWHLL4X^OO+R$16HS'.m>W]i4.GWW(1)mfWk#Mg('VoX(/PHa[kM^/ - d+s]2bk1WF*DhU9<34J_8W-YJ:(JABC!8D-+BkU=/J_A*3VU>Zepi=K>ISgKob!8sLn!jd0 - =lgU>AF\J[e.PmK#W9$gII6;*"Gb08'dnr6VRnhKo44ibaea:O8?Z(@(\%R'C(,JAHu[d&u - 9%ho]l<46UGR@-02e##hQ',0hN-oj;5q!d7n4uqgJFm@HgL"b[[4am2!M_DeXedgQ3If9+? - ;,NL36UQ6K]SD8tbRBCD.FPP8:RU+@3_rCS]mB?E0>/X;h(iQa9URY)jqiWuVb`ZZ>E4IN* - AA`a`9+UE]6a.M3"rCl]8d+GcC\LFQ9%Y[kigRJH - XQpmn1]7uDiWU;\DO`/ - H6E"(qC.q<[D)60dQC8:O]e=-^16-=Ka)HYB>b#s - Hsl=EJqJ[tHgEIc[U-+A\VGTL_]WrM1B"Bpeui:/1F:f&;Ir0fKbCalRF"jjKY4t1F;G609 - 9usNGF*,(HLtnHcNN)l1o%d5qrZu#fJY%f[a[XQ9''8q]k-W!@[BN!ZXIM6h,8/)'u7b!C0 - FeEZY%J+SRI?f-,RR;D4$:QQ?qoM1"1Uk?EID=KS0II?4@.H<2!pKRV(BM7pI@Q]tM[]hQU - G+N)(QX41fRscK7ke>Z$-*Jo#d"Q7lVE^b<[M&6C7.s'ieM>,k80WDJ24.MGu8S5!$bQBAr - VmaS5"lC$MP@^5Rie&U8*d+t-IBk#i1BC4MQmA+^[_D^1EehJbad&kXFcC-W6L;S"l)`MZI - s8MohQsm7/`Ki)[B'juq[a]a&p6k\K^q3UK>4pCE;qAZ$NbPIZX]i-nMpKY;2a@)q"4QGAI - J\2?'1bnpDqqk-kn>IelY6tN*,P!M,#5%+*dP]rajdCpe(U4WJsIl"=t5c0V94IW$>6\^gG - U;BK[#uFX.JRhHM6]>qJtd@/R,ZjiCe>Hg/MBV&$YMEh5:4VR;3>DIQUaVi# - ei=JGic`ue>V8RY8OO,oY*;R8 - 'q?647>-t5.Qi4"eXI!:CfcDs>o('*Z-qU,/b(Q&f-"s85Tr#WZN#=E@GEG_)>WLtmrnqYR - a,d^MEp.rS#7e+aDQ__lL$md/>ICetCoN,+rC1qod\YM9OkW8MC!iZ/]k@,W$SR;gCj]9`> - 3_qWQ`=&dB)8Cnnb(L@>BPlEfi!MA1M0`H]fX0Ce>cM!HVCD1P9pLsd&gM2HVE@8'e31mHM - +;Sq#gg'fP)7f-;Cf50M/"8b(Q&f-"s85Tr#WZ(g1XRqQ&t@4U_++ghn^C8u)5!1WQ7>Lm[5U$ - njH2rIe>Q6PC/s*Qr8(/\IB:!pO+U[%dn`3!P*0:%H?U3RFI*HT=__IK$Pk:tC05JlXB;a% - 316n^&\>fnB?89>1]E^^cTLem_hJW>aBcE$mG,7YVl+0["q=mep!niR@DM#0P=_LFb(Q&f- - "s85Tr#WZ<3KV6G>Vf?%:JQH,9rsqc'ej'6\PmaY#hg`kg?.A/R#MugU8+aFt?q1<3-1+Zt - N=26j\Ku<3BKZWlNTP[T"t3Z.f6AUQ<.bk*mM]LA:ZCc^H`WpYUI-Z=M(Q8X'#Ckp,dmY$/ - 5Jp$:3_+"]Y2"tT$E]X,:kB^c'gM - !R6>idA2-"r0eSV:ph`Dp/pn?n2iX^sV[^\ATG - PA+;X$T->`!P"o;^\V0`]R\H"G:d-j1p3J7RMiE_HSNpXnU;<>_55F9'ic6<)fA.O'\T[A/\1AKp\?_TngV/+5FJgDX89Z - KP#5n2LD`(!W:J]l]HabsYT7?k9SaX%FT5q`"DBF\#.MGu8Pb=kqKU)tCP+.qVA@Z:==7,@ - sf@SWqi_$:a]63F_k006KN?]4qU(81/DPHkCT:p-qmEq\amN<)R&QV&.7MJ!M5JOO;cTZ/1 - nUDGSp"@MA^MJ:1F^(kJ-Q=$q*"M")dh)2jp`tQJ%3+Sm.GbH,9&I:,o3m9-V>g,OdiX);E - S[>&qsHOu'@Uft2Vc_QgXW?+`Bho-L%=?Kc^m:(UL5Dr-hloV96VB7pYUHZ3&fZZqYg0GlO - G*Ke%0\f%,M6DWjDZ->JGplqqqEkAE6(d*cSc5k>'hf;c6N3qn6:IG0`>GS<69ZjK@k/![t - 3-g7Qu&Y[Bc-EohCuC>HJ/mZ_f(>`BXZNZL?`43el+D)d"Bph-4Ip76Ea1&b,6U8?"cQ3np - OWA:0D_Ps%hIG2bW-R0j'oh>DOb*=KR9:+5#F30Rk=05Y;AAF0D2]DJtg`qkBP*hVME0@** - <8k]J$^E2Ad[cjUZh*>(1\g:9T76W.GLORK_WOI^6rJuI+_oN7YGiFQqf<,u2EbFa*?@#1J*/oh7HLtn,d2FiT?uU"\[+*iNEcO3am& - 3!)_5\$-04)Ya;/8q@s*]EOWm4Nrqbq=h-1 - =-C$YL,#P$076T4k8.;5\9Tqt'^>,k80WGj=k[VX>sDE[U81TIAK^BP2iX?0jq68M_&DVMC - (6h00TFbfAA^V@Scc"a5-h)[g4/(3$UHd2?2k2k\Bq&NC9=I?o*c#'GhBDC;,hs&FjO>W)a - XC&`Vp/$GN(LFRgSaf9@6q$66cerkc*8FGq>e-U+2;=!'.pfl5dJ0*dIf$88bA6V94\T[kJ - ).^%ll0lUTfo(,n*b165`\gU:tRVYcL=;56Tp&# - 0$.L_iHsVq%H:b(Q&f-"s85Tr#W*)#:jq-oJ$&q-RUUC#ms-e##jGG3#%Ghf?gm7f'Z0t>oD;3Y"BH&mJe/cfih*!e[ - g8[^_Q]R<%gF0i7nk3bRmGG[np6ahjeK3]&B:m`LnJ>P[dFLH]M3]V)=t5c0V94IW$E#Xlc - 5bY/=2Tb%e-R`K(]Z#%)*OJ%4tR,ZrAG>99ff8'i&>oZt[+0Y%GqIWLi7%[;4AhGIG,-n$[*&f[s<^ - cdoOg>WYM*Kt]= - V]fB'PD?QBnD]O+hKMda5-UV#?qcq&eu1FRIr;[ZP\?G^+JC`fJ`P=&8_6D19^66F9^[cr- - P?/QF.)<&bU;:QRF4EB(SQcHb"SDj'X.ofsUJpn@EV@Z?hJSut/8\Lgg+qsCl##OKm8McBl - Uqtk.>=K5=LK1"=qV2?M#H^Eb?Sp3U!6bb?11"miX2W(*;`/##Z,>Xab8Tt_9[T)(stR9#_t!j/0-B*=6Fj - $(&]&T17;S.,>W]ab=VG402E;fY+\pKm9S8;^aqmBD>gY5qVSpU5"eJKGP+@,hEX&lKBoCR - .>o@Ua'GMPP)fi":rBqi9mCX:5:%3.?(HZ14E9s[>_c-4B_>e%$3YhHi?]WGDIDVB`--rE> - .aY/fD6US7/:pt1C,N%""+Peu^p:gllgt/]DeZ*E9XKcVg9$gII6;*"FZrEI?;W1TP:S4f% - [.sFVO&]!I5E'tLq8A+'17Pdnj+cu:G3$`,]&T17;K_GQo>rAP=>f%,j2Z:Lbk(#D)]?f$/ - bS&aks/$k1W,I)LgQ\q - AY1V$^5&<7)b1p?^JDK=q3[le6tJDVWm!\Ja#&?U*oaI/`s)2@lCJR]8N\p4HqcD;1rdj*, - `mGhDKQ;Wa^Mb(Q&f-"s85Tr#W*(qG!VjMtrY@cSRinlsMT[u?Hq5F^M-FUusUDng/>J/K4 - B\mN=6O,l4TP[.L.?='5kP=`Objr99l?@2&sm2n:d'U&>>-RW[??F+6q+mf,eJds'tL\^oBHhp2(OkXKa([B^@=U\&>5%` - $:-SHP^JIJA&s/5XhrN?j#b)n%JII_2_e5"@T9^ZMEY(qsij"XI7W4m'V*+labm<]]ZM3rF - RqMhKuAm\T9(H`_P9sD1r@Zr.]>$_@n=(hd?lt6`jP"KZd!r3UL*W>U7NsAkZU3EWSl;>_& - Zn#qQgY'J(c^<2icLGFAKM_SSXL:.9X'mFehDn5bu9D+\Y5ED&HDr4$]u2/:VPgJdB"0J%/ - --*(j]"R=dcJ,]8A^rORD>57-X;PZhqC'T`1W@TRjW(N*l4fCfLA?"(f-5S48+Pai_Vba94 - 'YAsX=K5H+/n0%*JFHHA-Vp_&Zn#qQgY'ULI[V@Fl/( - GF(Gbl8m"C4%qJG6"U="nT@p^6@H1=A->HiIZ$$A]pASgJdAu03>;]@;/5K9-$*;XDn'eW` - @7/ZOmc]_Oi[e8P)Lj*Aj4]Z@!sp.d#mUe07nue,]XU#WFhjnmp\pLk/GcW9W_7#(qL'c'$ - fUqtga;aYF>&=)$6efo@(7<1P(5!jGWaJY`E#^f'7sQ3p:mlAKd60M\F=.b+,ZVG3O,Ik0# - ?O)sF*7;YG49;PB]._u82PURj4k/E5p=kZa-;Q1$l$@IauX?lWf7R6b3Vdq#U.a+=;Wm[V1 - $YkeR=mF(j,DDVX0O]QP$S:TfWHt1qNfFm[YLS3(i?9?fe@0W*q!Pc_aN]q=NHcZJ99g/m. - c:@Zj(7Imq)1)?]=:Tq:)H?jcB2^lKF.oiSpgnop1.W - s./I/3>Ep0!]Z1t&ilfOrUn - e:n)(1T=+u4%apBU6Dul7S-a6QXC.t6`SN9^u;l0tG&fA$M0(h2>eh$W$Tg%'UnB5)eYZ.$ - uV1nc9l8RUJPM'TZ5Ok4%DdI/`Zd'6!*BSG?(2:(?\o-=bC'Rb0r5TMCp_E\cD.mVHUe-b\ - :AXV=GMbQ5r`l;5.L[k.:11&O$aHJ# - V8tfD/#CsDk:qFV+R#qm'H0;]bCCHg6=!_K%`Mc=mGkVl]'BZbimfj0==?7[FD<_[o,:)'G - Mgd2F_.b@RTQu(!)t0HX^HYKZ].PY#qr\\eMOP'e32Pp%;=4QVrC2apBU6Dul7S-a6QXC64 - RCR@+q8S1o?cE5$J'C=Pqd67XQ:q-3[\YJ5b"_QkpG/6-;!Bc0'[ZuGp8lIF)EZRh;mX]r: - &Q"gk)VKU="Q?r>q@GqY-*^4tMhVS&&nKYG4PI8n]kKZs!SsPe1K\G'-;P]+f!V>L#=7>Xl - If3GFnHOX)baC7m\oc&^1FI<@B&o:cISk6.WilIsPnR7LhuYH0:11':"DQGg)0M%&042FhT - 0@6GP.KX]Pq#epDhYbQg9tikD$6.SZaR6JB[K/VI7m4+JWE_O'OS.VM4F.te#6+giX82[m8Y`'5p@Ks*$$%M.o$jX;e-_6Y5;$R^2fIQKDSk5cS_=Q)D_3gT,5%g6'DR54"&p$7bkPRhnJalU^4/%)Ksh7Mm=LN#`Y9KGoD(8dpJH?!!,9s$B*Z#V_?/;\NKaKA*_,=jqQ@cq\T[ - !pKW`1G+Y>&?9GTkiD@IW3kdOJ3!Wr%_l0g_jV;&X]Y_?tfs7G/97j"_#qQg1!L>2_YZ,#!&4[rP7NI+mqssUHSiqG1'M2R - WL+mi>>\T2PgY5XGB3ad-Q7B5L'Sn@J\"&FpEK_Jor)'s9E_:\)H:f\c5*I?i(+ue9oB&Y^ - MoFA!pu."lk\-g$-l,ai<.BCIlC/B2o&T?7p6JMu,LgYsZ5NVG=9Vj5A;P9WW`QBAb^*ZrE - WSl;>_&Zn#qQgY/=SP7U5j_$0JbM+EH*^^L%!m3U]-L>042H&Dr6Fh3?TGpA^8C:2f>k,#" - t4a>On,a9e'/C,ht.`hnFNgVP[%T6>`W?j2Sa]N-at[7_sY(E,b<@7>pTjV-G./QBp%S>.8B$C'kOs7-UFjSJQ8eCms*>,Ba285n$_AQ/54=AbHqV/G/&R - :Yh=?+O!%OXpV>#3O'nMcrBpVG3h[U/\-YK36g'[jC;(%[H\od2R\7S$);Guu?]ij'"?ORO4R[/ - ?snm/hK8Q9PeNfG[R+oB+uD;2Lq[RU&n - ]1P$mtI5<#RG,$^-,,)`5gP\BS3-nUg(n?-'/\od0lET0BkT4M._Z:U6,TqS10VT;ndk007bkKaP6c.ojN)>?Vfg9hG33[A - -rb1Eh(4$#D\CY%jnOX$SaB]>>Hbk;*b$E[OA^3B%;W&d:468i]7FR@d>J\QL(ll#K8LD7J - ujr5Mf&fqjMLkn$0i'?bf]a"ub`;Z`QgU?qRq2*p.>0+a<]2ke&)*.)B"dUVcYZ/CA=K7n, - ;LsZ<*ZeX_7Ld@G=B`"CcX*YQXeA+;g=b0HhS#BeQ-!.ombPKVY$<.MR>c8IDVVa0_#eCfl - fQH](G&ZBZZ`;9IQi#GJE<1X6N6oY7un]c$HQnphVR,_,E - hIb3b!eUc^l.5AdnPK))uT.W;]t'=g?RMLA+*%af(]!-^fC"6EZR-[r8mh\_5]jeu`.8Fd] - $irqJi[@>&(,L9X]XZ=HO9cl'TF+Vd1jrd;bH*W>m0s7Y2cZ[MXE5[\Z/o!2iMZL86s##hE - p4ad%/^V>81D3FpUW:ATLCBk7bOEUFmicLoBEX@6gCTaJ/ - ,\$DdNusuSF(U=G/Q1HJS2G)JE"+@6Au1Y<:EJMbY-+pg*^.[4$O>*/:J]=(gUBtK33dJ`` - i4m5e?3)HEOWm)`/ru8A"&mV]=YZgcXm#^.WKHJSN:m+m`Y(6s":`_3P\PS"I9D)!)&Rj== - Q"QaJas,-B!2SbhU)7@o*N.48%pkn'Iaqa,V/Z2/;d>GMe8R3"[--3tR_#6D6`".TNKJZ!t - \"q=9C@Ck2Wk`;XNCiPUGF7>jd:1OoE%5Q:Ff]mB?T[r+p!K:GKns".*B6tUrKrV,3-4Vh\ - US.Sb!\T6fQC##R[Rt_@k8\c^m9N:T?oT7sfK*r;?04eG@;O_/t>E!g - Y;`YZ/CA=K7n,;Lp/SHhONDG>JDt^nsQ`t - Dc5#JLh98;QUgpA=Q,uG2.=K#$RPEShr/Uiu)N>mf0'q2@+K!i"oE]Y^5eZ)WE(-jKJ`^`X - 3o'G$cQ6"uKkkN\hP:M[7G_ZbLL(>@iCXt$u4$*ZP#P,pr5EKA<@).hr(DDWU!*[5>3+g"j]9MA-4"q?gO:]H'8R2O3/eSEa;;5 - o)Q*&qnfAV]pBdmrdtIer:V;9)3kYZ*W6V#i9b;WS%I$8f]ggUBVb^SV^(o?TOKr`n"Eo&n - >KqXeJ.q[Jjk*fV'qqY^/qfZp?\N/;,*)k!p+#G"Ir@Udf`9bja\S:oCOP!.L0F__.>qGjJ - XR&*5%QC@__VB^+>.^u&LLO]@&Q_fE_99uMU5Uq[-/Rk\InV7-#Eqo-4Z,]B^YZ*W6V#i9b - ;WS%I$FE5u:f+cImF32+Un^81$B2a7]Qis5V-d2[(+jjk_?FX8%@4",N>jgB0O\Zb(+rk53 - (p8.,Y[f&Gl%%]qrCURg:)"HZ;DgG*BSFDC85-)e5ndOZIIqg'0E7jq-1=GAZW`$ffX\o^MO-6cH@&ZDd":#0m))EUXhRokK7e5`g5A\uVf<8P>Wf7Fnh;-mcf&2W]Y$ANYR - $6X.0EGR\b!M+>qbKlOKS>*lj[ia"6U?2!nOL]$H$OZaAK:&Dod#$4IU;P_HVt\@E[5uLR^ - :KX4?YimIJVRDdSa$FdF$A&[\Lk@\Nk]Ie0eJ_baG7$G#N,*Wg26$aHQal.OVH"^]di?SA8 - $RV?mY>,\*NGV+N0u%O#`B[VacY)`P&R>EBa%rr0@7[`!55f.^aV&32tKV?0Cb$ZXAm#7`S - +ekGkb^'Y`$:S0gVc<3Hp`JYPML(.XbAQ5%]KiTMDSs5P^aN-r:-HVZd]6sGFe##k:o]_Rl - 9qORqp5_H;:h3W=b*FXVcThGcP%BVVC@[]MMmmW^?F+66-kH?(O":kOgiO,],.3=4g!O - R<'TB_C/kF&YeLhnHcJ>>,:4-dS;CPAr#k21VOG#qQg1!L>2_YZ.7taEWXP?2j]d0554qV* - [B&X]r8/Rl1ET#:idnnRr.4#F;4\;Q3^!g4BJ97*Y6GN4Z]K)aRN->Uc\h=0Gp:2b74^0d? - c)$kR&-o1@]fPhBOPt3FeudQ-?QTjl+gtb+q"XBSMi5cNJ,Un5%>u# - UDIHs.J,]B;kKagX<2uaEJ:KY$k1$A/LTq7D1UHrNl]Y3Ec'pYUP*4mBRN0e%oB+T(=&818 - X=;>Qo]ah;p$1*%mbK*H$F-)W]QpjQBt7j#)@8Q1[r.aUZd-kA&t7&Ng%1O_>oGkP["O:l. - TWWAY"Dbsfc&V5:#AVoO]0.:R145(!"iP:'.\LPI['OkdaoD>ZWuq2\F3j, - aqXHhZsh4I!/oj9&&?'3HaB!\@>H@&ZD(q"jjTfs>>6PUSbAoOu[Ka`lWjQZ8Of2fE"HUs5 - Af-SdQ.r-0u+4EKYD^V@P;Kl,YWp$]ZqDV)$30dBRuTgFG?(+`RnABCiOWtHKtQ;*+P@\57 - Wl!V!M<'Ga,FQ15q"Uc*uf[u9oH,kpc]63Gj^OL`;>?`I&VfV%H.JWnA=Q8B$n(bI[G4!ui - './f\Empm[M6-[NKpjl7P5gl=3TRps1M.'C,uQ48=]5(jq=u$nG`ZV!Y[PG*%MP[RfW\eB( - +hRhkWjN7e>Q6)NfI2D>Z"=Z;^%`Qp?^HY99t\=P0K-Veui:?AT.MEo?X4ep?gW/mbN6GUubKF]"qXp%":[Zc6(V'Y"Y?sNUn<$p!\Qojl,q!cV.p?fJ:n`%HA&,Z1unLj`hJ>LBp//<+)Q7=8d; - uhH?J>E;IF9sKu:11&O$aq;?6 - d/"I:MbYZ/CA=K7n,;?6cD!gX/ncm>nq3J"".0#1BH"I9ApckEW_!.Z\QV90)q'lX2>.OVH - "!.^YkV#gX=#qT(O@&\YaYZ*W6V#gYh"=t8fTM&[lEWSl;>_&Zn#qQekTI4-H!!$:+99g/m - .c:@ZWgpk&!<@G_f@RLD+@CkliE[Z.!/LiF.OVH"^]di?SA8#'z9H707SA8#'( - LX4_!_W[s!!!!QEF>bd!_W]%J>LBp//8-b!!'gQJYgKq//<+)Q7=8d;ucmu!!!Z;Q7=8d<5 - 8Z>Wgpk&!<<*"!)+A7Wgpk&!>f.CEWSl;z0QCL"EWSl;>_&Zn#qQek!!!#7`.=c-#qQg1!L - >2_YZ(T&!!!!4#F6heYZ/CA=K7n,;?6at!!#\4=K7n,;?7SAWH&&5"TSN&!&/D#WH&&5"^H - SSapBU6z^r1f#apBU6Dul7S-a6PMz'*jgQ-a6Rc"^%dp^et15!!!!m**B52^et1L@&\/J9* - G:q!!"]m@&\/J9*JRNV90)q'`\46!5QO(V90)q'lX2>.OVH"z!##U'.OVH"^]di?SA8#'z9 - H707SA8#'(LX4_!_W[s!!!!QEF>bd!_W]%J>LBp//8-b!!'gQJYgKq//<+)Q7=8d;ucmu!! - !Z;Q7=8d<58Z>Wgpk&!<<*"!)+A7Wgpk&!>f.CEWSl;z0QCL"EWSl;>_&Zn#qQek!!!#7`. - =c-#qQg1!L>2_YZ(T&!!!!4#F6heYZ/CA=K7n,;?6at!!#\4=K7n,;?7SAWH&&5"TSN&!&/ - D#WH&&5"^HSSapBU6!!$!8f@Tchl-kZQNl-S\Z`p[l>n0\nW2M+?:X?.I[n`JT[:@7;#7hm - :>nPF&YZ*W6V#i9b;WS%I$31'`&/#UrjiS;S(RMo:rjtmo2C2"^ba+!%^\sIBJNtsLio2"B - HK=&D0miW\mbPM,XBF#rbUi/?hR$u1mi$c6J>LBp//<+)Q7=8d;ufUXf\"h4B?o/agJ=4mA - a.X>QS2]@8kS)KP]Zj$r*3N5kKK>MCY#Qr)`G?UpPsGd9(M&bPAGid;G@:7&RE"lD:u4+;l - - @oU'V8<*B\RccC?oDp*E4h*.@_XrUf=fn*6,L9\om*) - am9#\g=ihk"\T$=#F6heYZ/CA=K7n,;?8I/gt^\<#Jaq`B%O4nk?TDJ#(rUPZY%)1C!`N(V - OqBo!L@K[>e>/2h5d:gEHcV>C^l[;N"7I>:11&O$aE_(F\dqWcV3]SiW8\8c#E^=9,\LNfS8JYf6]Ub - )2]Pq,NE/s]8EG3rE.o)%mjo<) - %FYgdc^PbgQlqNU6=b*MG9OWuCd_GYsTJYaQ:%4i5[1`'8/(*kRf:ggPe[XPq0I]Xh9M@!dEp8\oOJP6F.PO&j<(*p@V':`X!_^e,=B\m+O6NH3 - PB`G9`9Z$YF6Ch#gm=NkF*`1[o<)%FYgdc^Pbf!>:7OkWVdmc-N30ooJan;f,'j\L'gXYm= - DHFJq=EdfBESfYeZ)V:6UQ-cai_JS$\cpQ=gM`1Y#,4-WTc)o9-oouPq#de&($4N0,RoGV# - oZZ91AIk==So90!NhVbO+&nbEXUPeYDs3cTf0io7hI?iZK<=e]4&`B?rbenmo`T.SUmbC-# - &5;NnlnZ;3*FY?"Q0CtW%%DQu,(9*N[XO6RF'=-H1U1KW)4f$+;1BK=0LK - 'Pq-?R@X+4dKfaMHo^(8;8"^#M#@& - ^eS"F:09MWcq%"^#M#@&^eS"F:09MWcq%"^#M#@&^eS"F:09MWc - q%"^#M#@&^eS"F:09MWcq%4*N;>4 - IgW#'OkN\/mc1]cE8c?+\1?Ct:_M - +1$:F>8#Xf^u\3HJ6(>e+Fh(=IVOF&7%U/;t3dg_l_hSbf?2Z6*/rn_ - "aM1>7LCPVSr^MkcV-KVQg?d:d&%Tr&gU>?@meeC;//?QJ@&XF+\`hI>,9e>QpoS,NQ8s$K - UfL6h:n[q.4$A&jfU,)s7n<%(]=3"QhIXlrALTC"6A5csX]p"bJ-!i[00ascHq6eaKWQUK- - ?c:Q7[OO+G/oU`mFntkT0GPM2pKRjaJb8H3pC-P;Nc"r`:8QY68W&K^5rBbSiqE]GOCt[Dd - J`i<39>hN5f5;GThRc`j+%Gf[u`VGENH%/mXpBKB.\27uF7c`f1poOr+T3q)'j8JsK$i9DD - J6rqncd;iI"\+!4;(s+(7WQ7>m,q!W:baAK^$rE6I=&XcXuq[!Q8[r:/IE,b$oZY,OQj7(aM#/[SN>i?k3VI4o]]:g>:6m;ik/gNN;"27h"f&%nac8)[r:0dc'ug\B[3,.$Pk:4 - EcN@jfZB=)("[O&^etcX#*t,hRZ#HB2)$_'p?^I$MA0J=)PuJ\?[a/N*4:RTY@#$c4*GFk! - X5A7R1\FE6\Z"hF`i-(jpbf0A7S>M$!h2m-8f@M1_haq$`75RnQ,'fhO5@Y0n<`(. - >/Rl>7@2FY#QH[C*[EKr(XP5XU?5]jDDa,YB4hGpT-`3tJLR@BZrEa'c+9CZ.Q7Og7>$:7TtLH#ou=P@Hm2R5Sp99U[ePn(tb#5(+RT==U&s^etb4F4#uD - '($m<'Lg#4^]!l\UIUBp-o*2!B[itX6s/Ldq,MnBoiLkC7;YbrV%Tb4]6:=;D[b&kUIG]DD - &L/faT/VO\T0HPOXEqrfs><=,U>p]5s7ju(^qoqXAJDUP<]*F;d(KAaPrL8'4PU&qXfpA(i - XS=oTUe'W`5slCgg>EkDI(c^m;sl)107$k1RH.p&n8bEjaVU[%:']4Lu;8B#[%e]5^c'Vf' - f`f(c[YW5]82(C(jnDM+ip8)otefR,*PYd3/Q5U>Id@io4"Zo8B3HM'N9#Ld(Pu"AWV(Q)e - .'9ft5($2%Uji:=0bt<:(M@5f_ueu`/!lI8\2P.Gf%8h37UYZ+#oJYaQHk - +VrN4`]USTgFHt)B5K+W(h)EXS`E^&e5j=9T9D.@3V"0]V%ZL'$>BWpkZ^$e[*c@^qfg>lR - U_VCgVW0Q8%ch)O=!UEkQel'^su=_hZ33+otfG,37%?Hi*O(&j!(VV39#iAa%S&+MWcq%: - S(PS*R@]rG3pdTd9g>`D;2L!]>@OW>O&1dVfLtGXa%UL1he/H>r=/j/1aKJa2g'bWDb0AVj - ?>.3dpjH2>T`Gq'($k6suu$OuI=9J,fIK<+jace=8O?;SO%oJ"Y6!/#eX(a\@q0-]iiTe0s - 86_hXtHKi5]a&\SC7MBJ@GFtM8!gUhF`_J0Ji1,ZB\I - /,mMnqd.8R@+rifJ40P%hGo[Q75b0=gM]\4*DT!A4ZI_h7Igq7`;WB`JTU=)00>)GH/Tpm[jm69O=gR7@!<]2mR:9fA2f[iqhS"9B^Qr - *2B[M?\!62%'[FC<`8$_lOe60P8rDp%(2/_3:\4jGRjmqNVQe^nWq>W/DpkFQjP$+dGr#3AhgbYh - j(HJO'OKqS?naEOdY,:NG0#BWIMA"MQAXl`YZ(bQ>Vp2pAB;U^cTN-[=^,+&3HHN"/hUuKD - r/-0]65e'P`3"beREn+/;9ai+SHlm.p&mdGk#6oj_m][NupT`5+fsE;AUrjaOjVsnJqi>#; - 7a6F9dL2*Ze(2nP2hS`6_G[6maf[>ol=897?Ku(#u@&mFnu>o^pA[!nk8B%NQbeb0gP->K4 - Mo[+*a\=I(tf.TNLU@`=4k0>I(=HW!bie#-!NDr5GBA!='n7MA-kC'rjGo*m^taUO6b-.;c - 0qXNUdgUD)S>-s+aokJO0^O?!FYsK4!D;;Y+Xf^u^4aT_:kq;&8`'g>NLCYIRG7P&hMj.ja - KV'k&$k-ZoKVi>(QIi9FbLcmLkc%LY)Dl-Cd`?q>!sFK)s/`F]Oohn/nrH>jVG/!fCe,%+l - -cC3Q;T"qc$0L.#F:8226^$_d9O%lWFVZ"Y[Bb_JO/2-I>+$c+=$7_)`Ed4*_U:ocHbcFNZ - C3IV+i]l,eh:.JEFRoqh/26AZ&)Zl?)\hf6fn:DpJ^ - CM0OY$j.<71"mV2nWp&+XW_G0.5O^lLr-1$[5^3fTl`f(d(MA.3UN/39tr00l_WB^=MK9MK - 4FW)lQUYEG,1S`k+p"*Q0's^pkfed2SjCIlQnfkPeJ\N'dHoQ8,`;[2]fcp@62qcd[q=CR[ - jiWi]^tJVWksK<=>`r$`:;(`3:<&bcWUT#mQc.e'+4RK$5OEbX&n\FI$(8r7!$bMV - :sSS;!T:KSNE1C_7Op[ZM^k)[VT*dKk\WDL?3D:@WnYFT4[Q%a]^1SZ_RKrpS\!?.LcP5p" - $6Le;fbC?8Ne@mQ6[Q"s8G1 - AV\BB%MWcq%#_h=.*M1CkI,6^=BZpoHtlSJA(c?39YiP;Pmjft - -K,h)Gd-8.P,TjCWE*&#_G0.5Ob9Spkf/RC&JIH^//30N>,U;7N0e3HO&jH - WP#r7A5sB;Q'65Pq/3.L[kBAo2">24Zkj*N>U,BT07NJTpnLUQ7ATFkih5NjiRn=S0LN6QD - pdABrPufDSd>:GCF6:!;,R,9=X)+ldfYFeGfFDKg0_<^]E,Zjo?qId;*-h#bnkCb>Nb9I"[ - !5,'<(t7<89)%:n_&XfX1_&U/GC29I_hV;Ah.O4oW%[C(\5MF&ab,s+r5SUUP68ZQgb[V`l - 5Nu^T\$r:k9jQM^==POVR> - 6A7WMC+3]B!LAW,26^$_d9O%iWT;rbC*hAtIG5`Ug_/q_CZHN;C(XE& - aYmXV9YJbLYC%U>IPl"dS(A6\Z!]/u*+-U5[RjAd3A]RJcmP$S7f?4?'Usl;NiCgS,!XlL2Lf0&4ND5Q)k0Z_C: - 7;Qj?9,2.AR< - /(\I#qWQ5;IQJHmFoGE;jSA%cr - *)Wr(-cD/_cV9rVH9WDmDU-_GV]33G[1siPos$bXqcQcY/V:I4;RGl-aV+DqVFmE;LMS9dM - lV3h$f9LZI$^i%2o2c@D>I2,>IB!]*BW9)^0D_M3I'uCt%YkQ::/">l - Dr1i9;C0r*B?qXaY4MA\(2h'(Q:c;bC=T?+\Mes:q.J[[^O"D.;kg,8TL"2T7ujOW%[XK:; - A$SHQAQfRMhWc?0JJSl`nnCUj_osd# - Mu-.T`cX&["r59D.rLUqVVRNj<6>&mp_YbHVu$;C0pd%$\?hcCI$Egka?/Fl:&de.&D"TgO - Sjb&`f8J;"Q&*;&4J.XDV_nRm\n9b'.8G`<7XqR'.-D7:a^8;DV_lAg&A\m/6-_] - iSibF?+4tB/JE#q5_0!"4"CY,/=$'"Y1 - aHM'!>&N99"mhCso,9jFV1!Y.\`/3mrh_N@G2b(8r7!$b;V4K_jMHYbHV3kab?.OV9YPh:Ul*6A]dR3X=+dfe?WZ/;YQ$Jm,#E[\3e.dPn4iP>-D6q3Fs!Z - >^4u0Be2&,.h4+1:8uaBc^$4k0&2'+/=$(gW7n=W[k>#@W6`cq5cu+H)]P!0SICgAkV]SD" - OUI2A?!V0*M\o4'GMgB6cZl)[7A5O6(+WFE\k - c;EpqNZ&5RoXDRi*\EM\`_0[nfOcOALI<@&\0=V4R1"G':_S(sPsZA=Mp0.2 - IqOX!Ao:7WZVWi%DP<(*p@V':`XU*3/mGO?HYN&P\3aPTh+G3ssld]H`_bW`XbokNcB7.RS - ,e1?kG2Che-PdI$>71i0-?I.+,S3;4"\3cH32>PDug>pa8=KnIB0!o<>6BUFK(kJMUY*0iF - lD(B?Z4_&nBU27r`CXo/4?S9IFE_p^:nW?/9p!7IB[EDJT0CBS?#kIl,'j\L'gXYm%9_uhl - dr+IgqS>Gre?k#D_A\frr)_,p=W``G#=1qq!k,d_G&3Pa[$_\+`H5MdX!AY74bioq=<$`U+ - /*>g^pVb4\JKm+&g\S]T\i``!L>4G:6sRs2Jh"ggka?/[:-t-e.&D"Z"( - hQ7='<-P<6"m%?\76q3OkU*g7!`("$f)Wq="\NoQbV"F!D>lR)H\J@B - J(4/e>T;oC)PMSs/?QXbF:Gon5^MK*&@E$YHKUeaMj&R9<6=e/G8)GPLN(7]Y(%_p@u'.&L8n=Y:0LJoR*:)W9!7d4TgR=87o_@o=YEc_XoRKL\pW - MU#tmoaC"*(po&Rn[?*%'Q@&\rg"%u&obsb!c8gn#Y\8W=\7urtHM>R&9;`cN-NY8b@2Jq/ - =X3K-Fp$q(_e4*tDnA9u*Q9&j70]>Ki1hgEP^'J+?921+F&VCM[bu1H8T.[dA8sLmJhhpF7Gq>Y.iPL.sJ]=l2QAXl`YZ(bQ>dS(A^]4;FE#HFgn - r(^d\@T7L48\Bt1P$=cc-:r,SiqGoQS52j/PXJf8L%2[))Z/nKV"&i&PI7gF;/Vg:n^3FT# - 3H,>V%`9EYFg#F!gQ!R'[PZ>#anNBjdp'l_NC7^An1ZC*Q3Se8u - -$oB+!`J,hU!kgZSqn0SJY/o33Y"Bnp - ?GVO>b$,"q@J>l[$J\'?CR5/=d',)[68s<&/>pKG'/WS-)`mT - Ksb^JW`foadS(ALCYK(iJ"U4#5SQiW&G4!ui2r`r\74g8bNZ8ig?5 - -V8$!QVm;5:)WS2bLTCer$ELo!R/6r8[,K*Mof].X4^/[\EK6:N@J4?VE=`eL#$e3d"o9@Z - XBWR?Z/Y[@KS^F`ToK\DI6/2\RoTlAu-_AhdmZ(q4+)$0:="SEN)<2NE]C?4qnWJFj_919E - :79c&r'buue?U!F@lIDp_r*-'!e>6.NCY#S\[_oD^?c@m;hn=@aW]Us%eG]:=;qj%DkYVpb - -+%@56F`RKH1JUmnNuX2A-UR^F6:\\Zsle%4@rg$Z=qX[Wn%/CPu&X7Mj>kpNk4,\]tLC>) - 9l%cSND$2hN4.nR;qA(;hUo9O-VA%QFchUeu``K_I0@!?3?P - +.g(sdG+B-J\o]_RelIin"41--h7-YKe99i>IXfX0tVq%_CK;C#,>,mL=$[#\7%]ROXN5N\ - s+7%O^0AIeHhFMrW5=1`Q#n=3,kO3kKZ)/k+oFtHqPc-ldh'L<9;8f.8Ai',/:?m"uN.W,31"(L)*,G%P - GBQ'sRGNZC44_80R'Q7]8BY2hf@S2dcBM\[iGZW+G:lB*;]=DI0KT`[#e`q%'BPbf#H[V\\ - )$Sg=?]6:1'(BIX($m%ELUbPLd4'&j4lC+2_J>J.'mJd(]`JPD*mP/b.#n@GWC!`659'G*C - 2g'2pZY(Z[?DY)D"M/^>,2=D`e;RN@//?QJ@&XF+\S08d$1$3HVq.(!bNk7K^Y`n`\<5nI" - X9,re('Vd)0&-33Yd=+V37G$W`=tR]O--`jis8RN"q4:5tbdWkr7@`_=36m,NLD)6(InnN> - l=k7=Dm2=0>fJ*7bT:0L3.>HhZs-[rke&HXR-h*2$%lPesqMiu$N-ZDIQtn%XepjS%ieLJb - Fn$Fr<+]66oJZA"u)>\iC6(m^'C26^$_d9MpAe2ha;FAmb:T0Hti-QsY,>.&)r@hn!gkK]V - 3kZU5:^qbL'=dgQ$h7Hb3Y0m9I:l-aY8b^'6f4aZ5XhS!uSGOO.e+&N6.,q7=5o?TX"X"%,LeG8_!W - D,O(qGbu9#1Dd^rVEqG9aJODWPAE*S)X1=0k846q.7>e=ag2(:m-* - VTh7#;OTVbRu71:S'?Tr$Oc\uSeV?qH7_KT.'J>FH9%4i5[1`)u><@' - C>0:b7QQ@7;olIDpKQ+1el!Z@;ZKn]@!qN?CR)3+:Vh4+79:b(Vijq=O$5(ITc$FR.L0173I^lBS9FkG:hqMD^;UqF\jiX!VA5 - #WBgEJR24$1&!7ujC8G`Nn/+t"GBd9XJ6H2$a_j2[4a;Pf8LY,tp;Nd^pHhbr@EGse-*3\< - @4jJZ:lmdT2Qf<8OWG1#^3\">m7:3I5[`ejYVs+Xdb;l37Qe>ZBC8sRhQQMd.i1#rE1nF2P - 8<=ebb)cEo1p;I)+7J%L#.Y;=d)RWNGOTM;C;5d;7acjNM]=YCCI&%%\/1hbjc]F6?:h82K%:uW\>M:+-q,LdmF$tisXQO*^'5_+-RAggt\D:l\ZE-[VacBq!d5u?Tt[;UIPhlS#B5]9#a>V*NR\b<6 - WS1aD!<9GG9Va.RhIB,mDl;ap]ng8r/FbCtc7qgA>FMi5*9AUjXO4/`b-ZZkY))=Us4r4AR<=utFrqhH]+%k2c]IYr9Ml?XSqsUQQ(?+H,hnFN>l - IN:i=V<,2-qK?2-NG\4d;*-h#bnkCh,4RJhnO*^YbC'GcCI&+PEV1CpQ,?*GhgE)-ic>OccZhk`n)FhFj1fak>X3^f - '8ZcCaXea2c0<8`'Jp/N&6!gU<@q;*q*bjQl-$fle`;R\\A$;]u)[8@p\!"I=r/26^$_d9Q - `3If1+Q;VP(UZ*CS*k05DUW0#4JP"MWISMJr - cg6S3*ASGFcC[569E[fP0'T*\[/p[;,@Y--=#A8E^RX@rb?DOD_JH@2pSs6dp):>piG3RFD - ]e96^qsX:Jhj:nR9u0_k^H@qapYUHN50%p,_M&0M12,@HV6ZR`9A-U^7BQ3^+L"g5YCWMoL - utEZ925C@2=$8C4+@%j-OJNO5%SMFlf[FYoff'1F6Cg`mK38iZpq:L'M'Hik0/rJaV?fm`" - 3*,pI;C:']-NM7ns]m^YKSU>-pYP%Qen&'UTMjKnP*^GB\7^R:M+SBDf#Nl-cC`ld(OD[;/ - !QoLM`<7%nNl2&H`4+$Lt5G3@/A1Rk=5/4ATGo]X+tK.nW]W@.SfiRCe:1D;)F - 8lfR=Vn6KV:Kq+C(7ZA>!'K$boMWd"'#cTo_/&]B - E:i@S9TBa:T3ub_?OBW1)g_`JC>VG/)*\h,WZa97U#7jq&%"@a+"lo4JU*0J>OYT+MrbR6. - Po6f*7'D0<,)GBu@]>eC,UDI!V+X2ck0BMZA]b]B"rK::gl*+,*$$&\*'*TVfeXi`U*N+k/ - 68j>n0$oL\T>F,Um$n%5a7.jlK[Y,Ne3gmh9;9Cao>YQAe"QS%N[`'#)^n6#>GH_AM7E),g - tu?k-f$TWmpIf_al1j7073TNC9kM!\#^SduB=BHF/9)1`TJi@W - )>eG=/h;*MPlIBF;baLD)n`%M_:/5$&DEW+*&G_q^I/"hdnUQ,idLL8*7(8r7!!pUC' - '%(5[D@CHM-R9b67Yb3&m;(X1,S4h(Lm?rqsZh&)lL+]^#X77#?n_]mBA:qXs/%:7TtKGOI - crr3J\A#'K4\q=+j#C=R(S\8durD7XoXC27Us@Ddhh2fG/C"U.OfoGUg]JnQd@<)#&rrd=" - _o&IcOk?TD7!!!H191AIk==So90!J=JLlRMPZ=Sslkt7J9S>^Ko&WF%_,ldoF]`LhqoGUg] - JnQd@<;!bIodZ*Er;#sYmbN6ep?`LL4F6MT60HOa=l+(s=gOu+VL\dK!+;82;A$SHQAQfR$ - S5:@*#osH\Ra6j<ch=kV]SD"OUI^WTqm;B29;Zbagh>d@s'&Pq)IO2rCiTBj,9&XI503^q72Y!!'A8//? - QJ@&XF+\\M+nUI'YAd]?@]AnGWk04*_qlR)H\J@BJ-Mg2 - )#jU`JYO6_bY@:c>@E8*>fX7]8HXh!;$IH("$f)W - FrRs4Pj7'D0<,)G@_9*G:q!'i:j("$r-Wq//8-b!!!/j-be?k/nV5q?J - Omp#17i?5Bt6GnktB)Y6*99*]KWL0&^_-Lctl5"TSN&zTIR3$na)*n:Z,M3zzzzzzzzzzzz - zzzz!!'gALl.-Si,Ji2Q(X2s]T4!3z!!)5KFXp70CUY-hccCZQ"8tT4+#a0"z!73*u1%Ab/ - \o:_8D.UWcVZ;N&z!!!"t_lFUQ4Y6!2X.Qge7+M;>6ko\%z!*$dEqc3(@Vn(_%<<*"!z:^M - cjnB[nIgq?L)qT,,nVj-!WuTCG*q!!#sVr94Ggk=]jX9\Yu"AD - hkE!<<*"?n,u95/VerU=&V?>]TMs'A`s*!5KJ)+aM\jbM;PWgEG_'@*];=LCjLd!!"@gTtNCqO&\$-V$m";a!L4=MuWk< - &JG"edTBT=2]kb,i@GLe`mG!!"]eJj2[4m'20>\4+lO*P!=I+H6&W"9>CD_u"?W=Q+-H.m5HNT0C9\Vu - Qet!2+DnW]0[GMq0\_V^%L*"[L+5^[ea5Vkr0e2-S=grKqd=zXK5TOK_st%lQIM*X-^%W%0 - /HMJB&,#0eGW`oCh-c;ucmu!3d+O)*;T[>4,l;XbVjFp[#DE@2K!U+X&#VH.<5hpD+c[eDP - J3TCFrlz`:;o^:\XR+gda+\Lr5qhYqbd]O!aom/g8''ViT`PrKa11o]isI`Np)fO!ao-!!" - jtG1VZ-#;c4tpqJ]jqM4W*ScAcTGX(^=g35FKRu'=Lr:""K`tJFQ!!$1K0d19%hcL+[R1/B - Fq!e8ehM2dF+GEb7me*ql_YlBeO"=L[JG8R:!!!"L[L)R:*RGg"/LZf(*UJh.]YjW.!WYV" - +.p'onMp9TLMem$g,UVq.nTmD!!#8:[r4CLCmGE?\_Y)hkW%Eh'`^M^;c(D3>BfKo%Gdg]V - kpS(#4OgVzcjfkVl>J - pEJTX3R!;ucmu!3"&3*S7e3Gk@=d?'_$GI@p8="X$I%R#n[to*$WPHkE9(cCX[fI:9es%IM:(><\6JOqsXXe!!#:a6q51T*U:LijJ0o - r20ds+a7"9q@0!SKQd.bZf@>HLjfcjd)mqCY-D'rD"onW'5aK4SI;j\:jkRm@\r;o.h'V;@ - #mlI$%l+.]-TX;+e^>\tYBmlo@#l'%+$t5pA,lT0!+[8@gjFYh\CA]tZ**QQ"n=dt!9fgu% - t-nX=i^JMf5#\SY^bU(QM3ZL!!!!aQ=KAYbbV%DH?WP=o\^aB_8,q-"/%S^A)]GL4,r^^<6 - _[8GBk9CzA4;;=/RNmeqcHDHR5TMPYKnTQLDg0knDp:h(i*dPQaXW7g>OIKisYnf!._.D>[ - 5.AZ*)kP7/BZ^:.l+Bgdk&SO/`3$,!%2sPOf[iKW93mNSb?jO#QA*!!!#7PbFB\pcL!7SpE04`IH&+3M7f#b`k - 2gHKdzJFjZeaXc]gE??W@SIFqoo%^5A=K2RUFMu2;Dg/hGX!:q<0OC8NTAY.M!<<*"!5;2p - 6K7>\41L?RXoCUmf>=XjekmS6GLidKkgz1*n,,HL+HEm\?X1 - 'e>3]X-Oe5$]X.on,_I(T5QF2-19Ap*);&HH%.qdl/F19BB%:I,T*O$43Zg3bnn$R56+0i?nbhFo - 3c6=bi6ehIChPQIMoru'EA+5!!!SHod`hM\$tB]NlmfY1Nga->I460d)U+^B)r"Tj8Ho?k+lkLYHf\uEdP?EiA' - f-z!'ha?[p@rVTZYFABt;0-eVVZ"8DY]q!6X6co4cmP"'-380m3;"?!<<*"!'i.@K>D!D!U_0_A8n` - ;L\BP]NK*+L7K=QkM"#*P%Hi%[>0?df6In1=2]-e3&-)\1!!#WQOH;GGqG-J=.thG(n!/\% - hMdGFWr`_A()jU:ojY[RbILt>#`8MmI7["L;ucmu!9f4%kd\`a]5f!)+XquC!YZsFA,)pDV - u(RB`r0@4;Y&/pmI>0&][$rczKaA9JZ5KouqcF4tc/;nYp[#C*q)O3(W<'g7_s`$CRcVS9= - P@i25`jJhrnB:[17%[6!<<*"!2'ZB_4SbM4*)K`+_fE/X+U;(F2=ImGb6!!X7Q1!^mFkD0g - Ch8A]!Y*T-Ni2('"=7!;&t3a7)rYf5VmV+mIG(ElhM*j1[^LGb6*$/+W>[qh;@=YeH&&`b* - /DYg=fT-O9\P!!%Q7"T!n6(uW>\oS$fad=_]'m.S$b#1Ieu,ES"KGicg&C#c[A5P(#@ArO- - =8FU9KV[3>'!!%P3nFm;.eo*G?0c6'V`X[,OHLME1XT9m`)A7>2j2UTfCUg#%87i_o^aUr[ - N;&_Az?rZ!t$Q@f9-23N=,*5)R*OiRc#kSYhIBikOnDp:(_kI7#*6H,T]`/mTp](9o!6CVA - GniBauJl@8S9/=OcOrbM!R.KBGK!'gm0?O%)*NH\>ZQ9dYS2` - [LUrA&otklXV8KS7:u2kD[j^TXQs'(2YG+t=fA3;J'>];P]0!!!$!%ptr)R.XOUYo19)pU2 - Ror'GY#7"?XKDhGK9^4]W!fIj!rr<$!"]@/Wgiof=!qlKEo8j)VU5VQK>IGAYPZ?2 - UPIb7eOaRHC^:K,jF(V@zBE056Ih,o4IJegJQjKNHmr6&6gtRmW%e&usLa+&dn_^s^SQDGf - m^%fJM1d:E.5l&UiR,\Tm)E&oaN,4TB,M7)cp.0h8 - M>if#PqXVkC2,-MJ(5AS^Gi)][&>5zNBp$1A/rR:/;L0gmd9D=NSh$WlfG%*h^9`tnNPdEI - u+Gl^4,mWoBI!6VH;YXZ=#oJ3sGZb!!&)b)+Q8_G_#[I%T,=d\h1C\]D'BtgTOrg,UME3@& - ">NQf*#Tc.:,U-B3/UZEWA<1*C=EXlFD+AH2]1!!%$^UFGA+-b,6'&>Q):eac/8pDht0o=; - >;@KM!g4<4NZG^CEp;O;f$<'3/7SNZ=Y)b@k6CB2&HDe2!'jU*3H,of - 1THWTTA'C>b3f-+Xt2ko\Q-??_$a*S.lRVY^WY1]F*SFc2mtG!!)4&^\>Qo%E:.@#ZH%l>[fK - uKAG=rS"7kFhLFkFjepFrp]c6EX9j65NfN^V)g(i*b7dB.[r/pa_Z%o@$!W2X>D&>g&]TbK - \M<;X3:@Luz+A37])DuB%480=0U>>IGZl_$e0A!rk17o?MODI - #`T+N`bk[be - GmX)`Na!4%bT+^7m9I-:)^AT^4&WAPs%1\F71$An#T]9,U"=npO*q[!!!!Ab@*(AL_4SJ%3 - c(0Qqj_6(@Tt'=UU:t!rr<$!9f^^7m-=bPk!4fG6%u$A5)Ge9Ddkz!%;*coV>:GA_ - ]e:889j/&q['EIbg=I^%IQ_*>\\U!!!!Qn`ki.L]L9+a,gRY+=^sXaGkY__7]6Ez!'g\G@8 - ZWnn)QZq6kBJu4HB,j@UnDChdlfg!!!"LBTeMe41AJ'ZEW@QUdPas;'\:Um>i:!bPUE/z!+ - ^*!G"#U2:8VJHbPNT>LH"TS - N&!!%lg+.p("knNl3-6b[A0c8#IZ*IKEA^gIn`$F46;#gRr!!&ZSQS1JhgXUlPQkMasKJA+ - *3b#W;z!.Enno4c)*c.kg\#_F2Kbau*bpsWm4G>/&;!!!"l3q;`sS"7l-=n!Mb+p^&N_DuD - /7gJoS40BG0#2])Iz!+7oODnd:?HR8Ek."WR4\r7Kao^pOXhY0P@z^k'joaEc6YEZ^Df#_J - klIbqfb&M^reNW9%Z!!%Ng#".st4Z@^k0&\uN71^`&VbcJe-]WHB^*s*`zPMkPDs"W*MgrH - ?!Jn3P.Z$#Yb+3aUg#QXZ"g:R*W.-j$Hj8WGuR - J;+a,*2&-Or2FGEgK^qGR/hH@0cCT$Q1T+qB%Jdm3HHl=G7hL0@msI=*m'?[GK(Sa0D^mg/ - O\1dk\]KopmAN#,j%oaVpg)-=m;oUlJkrM3`^o]n.?8i<5tM%Vr/pcF^63/(nC^f>Af&QmO - ZmOVHM^(%GlRi'%]<+2k"Lg?T490YA94>Is(,,Uk]746J5N2AVq6j,P(pD9er"-,[Ek9B!8 - rEVh@Q/6D-cYQ<`0./?rlgnk0'Go2#mVG]t5qtHMjtB#;21)Rm';fj,).G)#sZ)j4r>]"ga - )=cao9oWenXdKbi"hde_5=ct=0q!#[2I(t_]*Cs)PNi7#*0;:4IpH0(lFrVajbV\]=5RB4* - (F32;)i7"m*&`+I"._`ZF/bFl'!5Ot`8e(4ErPeELP*NXnrP>)[5%k-#J7-Y]?[d"Ok2ghH6,AV%o)cJ1MisPk&#]esOpR8api7#!-i@L.W]4()XY-+AC-P-7Xr4 - \KZmhX7(&q"_c1^q(.FPEXMSY8h"!!'NaA27/3i,$^2B^cU;dR.beG#A49kpoLGPG-;>!!%6Tf<9=`6u+-/b7-X=9DXQ8Z>u]DeQk,I"Vh# - f;6R+0j3=FT6B0P06dPI(#.3CW?/Jre3V6GU!!#CNe;8)[cJBCcfTpVd^%QJlm&MY1cOU!U - GUS`seDWd>o:FYII.3GDcPFj]Er'<^k[O\p!$8_&JRhJtj0LNKK+Hq(I^aSuD5d?mgu.*uk - gKS5!/=9V?[pVH-_I!92Y]Nil.9sQ8#n.9H%[gN!+T%lT%LILZg>c%i5<)^`d;ku@oFsL9T)s>4CL - GX!.[;\fA"&apD:/KHFB"/&=].p<)_W:rMKVqn0b&fkC`Z#SpT1(ejr0`id"bn4unrL8;4e - $!kIPA!!)L)%1Wl>q4dQLIr#WZj@c8Q860X-ZJ?=+ - 5DHn;!<=7k[($!5\8'pN$2MEXIVDcG^0-?Febo3[NR7DP!!$Q8?b5[lW&XMCPdS>/!,9B;1 - HeoJ>'K"QGNeo=!!(#r6t2h_^tD05Z7>g&Y:lk7h@N=,4WFb.!5`Dbm>)NW:EH,EHomDk2K - _@cb2noFHjTiR,K.hG[s)]hCi4Dnn7CQBH6i,i5T.sj:N*2eH(t1:4S2nb!!)rJi8A!a;u= - `!Q'95L#2^GsLYA!_q9.[LFhAl`9)3-%cVdZCqWp;X+n:]Adb-hMf - k!!(fH<9h4OX[W\uV`e&lI'\q6@X$^TR_GR&]lj__!2EfnXn[I\B3okW/GPs5i@)%hn/KJQ - n`iahe5SC#o^mmPP5kT5+nklrCEI@Uo'D=Pi2_WTcPFg_\81tSSK2"0mi)6,i8I;)#+JAs7 - 9<#f[hmI3uN!!'eGqPj(QrDdKr]tS"Qhu#U@ma4ssfNapl&rBnSjg#VhqM14+)AFHB6jRYJ0;FA` - K)sr8tn1aZ\sER8IEoDB8Y.S5l*7Gh;'%HH3=3Jpn'(o>s#:bbj#pi4EDt3S"!]jIeCFMLK - eZQ\/kFW!rr>2[uRLp7r$AP?bQL8S - kPK%nCdKjU1q#"3"-n?aJq5!.hHX!Bq+9;HB@ngF1H7`uLm77__6=1<)!!"67It.%;`Qn=tkKC?c/ULu_k6;H6Of[=A3@26)I(ZS_^ - >VUUHX!DU'EA-k^@_'i``fMbg>B8K6g_LhJ$`TaZ.E4[A4Cp;#APd^k^e/!heK/H[YR`&*?!b5%@oG9lK#!Aei(pUge1Iebbg - Hn(VnE]oAo(jfY(9U&Xoh!!)f#;Q7JOf=P6?>\uOXmZ_OS'[3O7CjibY:`uAJXC7B"=)_6-(fN)$[?e.O - hIpos] - -Q -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/AlgoApprofondie/diapos/graphics/Logo-PCLL.svg b/AlgoApprofondie/diapos/graphics/Logo-PCLL.svg deleted file mode 100644 index d42bd44..0000000 --- a/AlgoApprofondie/diapos/graphics/Logo-PCLL.svg +++ /dev/null @@ -1,585 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - -   - -       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AlgoApprofondie/diapos/graphics/debian.eps b/AlgoApprofondie/diapos/graphics/debian.eps deleted file mode 100644 index ff431ef..0000000 --- a/AlgoApprofondie/diapos/graphics/debian.eps +++ /dev/null @@ -1,318 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: 262 316 372 461 -%................................ -%%Creator: GNU Ghostscript 510 (epswrite) -%%CreationDate: 1999/12/10 21:20:34 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%EndComments -%%BeginProlog -% This copyright applies to everything between here and the %%EndProlog: -% Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. -%%BeginResource: procset GS_pswrite_ProcSet -/GS_pswrite_ProcSet 40 dict dup begin -/!{bind def}bind def/X{load def}! -/rg/setrgbcolor X/g/setgray X/w/setlinewidth X/J/setlinecap X -/j/setlinejoin X/M/setmiterlimit X/d/setdash X/i/setflat X -/m/moveto X/l/lineto X/c/curveto X/h/closepath X -/lx{0 rlineto}!/ly{0 exch rlineto}!/v{currentpoint 6 2 roll c}!/y{2 copy c}! -/re{4 -2 roll m exch dup lx exch ly neg lx h}! -/q/gsave X/Q/grestore X/f/fill X/f*/eofill X/S/stroke X/rf{re f}! -/Y{initclip clip newpath}!/Y*{initclip eoclip newpath}!/rY{re Y}! -/@/currentfile X/|{string readstring pop}! -/Ix{[1 0 0 1 9 -1 roll neg 9 -1 roll neg]exch}! -/It{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! -/Ic{Ix false 1 colorimage}! -/@85{@/ASCII85Decode filter}! -end def -%%EndResource -%%EndProlog -%%Page: 1 1 -%%BeginPageSetup -save GS_pswrite_ProcSet begin 0.1 0.1 scale -%%EndPageSetup -0.843137 0.027451 0.317647 rg -0 0 m -6120 0 l -6120 7920 l -0 7920 l -Y -3233.33 4125.86 m -3218.39 4125.66 3236.15 4118.18 3255.66 4115.17 c -3261.06 4119.39 3265.94 4123.63 3270.29 4127.77 c -3258.15 4124.8 3245.79 4124.73 3233.33 4125.86 c -f -3313.52 4145.85 m -3322.43 4158.14 3328.92 4171.58 3331.2 4185.48 c -3329.19 4175.58 3323.84 4167.03 3318.76 4157.99 c -3290.83 4140.4 3316.12 4168.43 3318.74 4179.1 c -3288.72 4141.27 3314.61 4156.42 3313.52 4145.85 c -f -3343.14 4222.89 m -3344.95 4249.8 3337.84 4241.28 3335.46 4231.03 c -3338.23 4229.57 3340.44 4212.05 3343.14 4222.89 c -f -3176.66 4590.68 m -3184.64 4589.26 3193.91 4588.16 3192.58 4586.25 c -3201.32 4588.18 3203.3 4589.92 3176.66 4590.68 c -f -3192.58 4586.25 m -3186.96 4585.08 l -3192.21 4585.56 l -3192.58 4586.25 l -f -3441.26 4212.69 m -3442.16 4188.53 3434.21 4176.79 3427.02 4156.03 c -3414.1 4149.6 l -3403.54 4129.06 3415.15 4136.56 3407.57 4120.23 c -3391.05 4105.56 3357.51 4074.34 3346.77 4071.48 c -3338.92 4071.65 3352.08 4080.74 3353.8 4084.29 c -3331.71 4069.13 3336.06 4061.53 3302.29 4052.3 c -3301.3 4054.51 l -3218 4015.31 3102.28 4092.98 3103.8 4198.94 c -3102.92 4192.22 3101.27 4193.9 3099.43 4191.2 c -3095.13 4245.71 3124.61 4300.46 3174.33 4322.85 c -3222.96 4346.91 3279.97 4337.05 3314.79 4304.56 c -3295.66 4329.62 3257.58 4356.19 3212.45 4353.73 c -3168.24 4353.01 3126.88 4324.92 3113.07 4294.41 c -3090.43 4280.16 3087.79 4239.45 3077.93 4231.99 c -3064.64 4134.39 3102.9 4092.24 3167.63 4042.63 c -3177.79 4035.77 3170.49 4034.72 3171.85 4029.5 c -3150.35 4039.56 3130.67 4054.76 3114.47 4073.37 c -3123.07 4060.8 3132.34 4048.58 3144.33 4038.98 c -3124.04 4045.83 3096.95 4088.11 3089.06 4089.83 c -3124.01 4027.25 3230.84 3980.08 3286.81 4003.49 c -3260.92 4002.53 3228.03 4002.96 3198.94 4013.71 c -3186.7 4020 3170.1 4033.01 3173.07 4035.44 c -3249.42 4006.93 3328.29 4013.86 3394.36 4066.81 c -3411.16 4079.91 3429.52 4102.18 3434.83 4102.48 c -3426.85 4090.46 3436.2 4096.7 3430.07 4086.09 c -3446.8 4113.1 3422.78 4097.09 3447.37 4132.73 c -3456.46 4120.23 l -3453.07 4142.67 3484.31 4169.89 3481.12 4205.35 c -3488.29 4216.19 3489.11 4193.67 3481.51 4168.73 c -3492.06 4196.4 3484.31 4200.85 3487 4223.69 c -3489.92 4216.01 3493.78 4207.86 3495.75 4199.75 c -3488.88 4226.5 3502.78 4244.78 3506.24 4260.33 c -3502.82 4261.83 3495.64 4248.51 3493.98 4280.09 c -3494.23 4293.81 3497.8 4287.28 3499.17 4290.66 c -3496.49 4292.21 3489.42 4302.73 3485.13 4322.9 c -3488.22 4327.65 3493.45 4310.61 3497.69 4309.92 c -3494.96 4325.95 3490.26 4338.18 3490.07 4350.49 c -3477.67 4376.39 3485.67 4347.03 3475.64 4361.61 c -3462.44 4402.75 3486.57 4371.16 3488.21 4389.84 c -3508.19 4360.89 3519.59 4315.99 3524.83 4297.4 c -3520.83 4320.07 3514.39 4342.04 3506.49 4363.29 c -3512.59 4360.72 3496.72 4409.92 3514.4 4377.34 c -3495.52 4446.79 3433.62 4511.69 3376.67 4542.13 c -3383.62 4535.76 3392.42 4527.76 3389.27 4526.5 c -3360.94 4543.35 3365.92 4544.68 3361.85 4551.8 c -3338.8 4561.19 3337.27 4551.03 3322 4551.78 c -3278.52 4574.86 3270.13 4572.4 3230.1 4586.85 c -3231.91 4578.33 l -3203.1 4587.93 3198.34 4574.71 3167.21 4578.31 c -3165.32 4579.78 3177.19 4583.67 3186.96 4585.08 c -3159.11 4581.4 3160.41 4590.58 3133.15 4584.07 c -3139.86 4588.78 3146.98 4591.91 3154.14 4595.91 c -3131.43 4594.53 3099.9 4582.69 3109.63 4593.47 c -3072.58 4576.93 3006.77 4553.72 2969.84 4519.09 c -2968.68 4526.85 l -2951.76 4506.54 2894.89 4466.19 2890.36 4439.86 c -2885.83 4438.81 l -2877.04 4423.9 2871.33 4407.01 2864.35 4391.68 c -2852.84 4372.05 2847.47 4384.12 2849.11 4381.04 c -2826.46 4335.12 2815.19 4296.54 2805.48 4264.88 c -2812.4 4254.53 2805.65 4202.56 2808.26 4160.97 c -2796.9 3955.53 2952.44 3756.07 3122.46 3710.04 c -3147.38 3701.11 3184.43 3701.44 3215.96 3700.55 c -3178.77 3711.19 3173.97 3706.17 3137.73 3718.81 c -3111.6 3731.13 3105.88 3745.18 3087.36 3761.25 c -3094.69 3748.3 l -3058.39 3761.15 3073.58 3764.2 3044.04 3773.55 c -3051.87 3783.77 l -3040.1 3784.67 3020.7 3803.59 3015.4 3814.1 c -3002.52 3813.59 l -2987.06 3832.66 2978.81 3846.43 2979.42 3857.09 c -2975.26 3849.67 l -2970.55 3857.75 2918.35 3921.25 2945.43 3906.47 c -2940.4 3911.05 2933.71 3913.94 2926.46 3927.13 c -2931.97 3933.42 l -2918.96 3950.19 2907.99 3971.68 2908.83 3978.84 c -2915.78 3969.46 2920.6 3967.7 2925.38 3966.09 c -2892.47 4047.73 2890.62 3970.58 2865.71 4049.19 c -2870.97 4049.61 l -2866.94 4055.72 2864.47 4062.31 2861.23 4068.8 c -2863.53 4091.65 l -2839.85 4119.01 2856.91 4208.1 2860.34 4256.95 c -2862.69 4276.81 2880.11 4297.96 2893.34 4331.13 c -2885.28 4332.51 l -2900.7 4359.39 2973.3 4440.5 3006.94 4436.34 c -3023.23 4456.8 3003.7 4436.42 3000.51 4441.56 c -3036.3 4478.59 3047.55 4467.72 3071.7 4474.39 c -3097.73 4489.84 3049.35 4468.35 3061.69 4480.28 c -3106.72 4491.77 3093.59 4506.42 3152.32 4512.25 c -3158.52 4508.73 3137.95 4506.81 3132.79 4502.24 c -3170.29 4520.6 3251.48 4516.41 3304.23 4492.06 c -3365.41 4463.45 3434.17 4378.92 3436.89 4299.39 c -3439.97 4298.56 l -3438.41 4266.94 3444.81 4230.37 3433.71 4196.79 c -3441.26 4212.69 l -f -3070.23 4105.36 m -3068.12 4094.89 l -3077.95 4081.54 3085.75 4067.08 3098.28 4056.68 c -3089.26 4074.27 3082.57 4081.54 3070.23 4105.36 c -f -3093.44 4106.26 m -3088.24 4112.02 3085.18 4118.94 3081.72 4125.82 c -3085.02 4113.71 3091.78 4103.3 3098.05 4092.7 c -3093.44 4106.26 l -f -3504.27 4195.56 m -3502.08 4190.04 l -3498.06 4161.46 3489.36 4133.18 3476.03 4106.95 c -3490.75 4134.62 3500.25 4164.89 3504.27 4195.56 c -f -3179.63 4597.85 m -3189.73 4601.54 3204.45 4599.88 3215.19 4602.31 c -3201.21 4601.14 3187.3 4600.44 3173.57 4598.69 c -3179.63 4597.85 l -f -2824.92 4409.23 m -2827.25 4387.69 2808.72 4379.32 2829.02 4393.54 c -2839.92 4418.08 2824.78 4400.31 2824.92 4409.23 c -f -2801.04 4309.49 m -2805.73 4323.86 2806.57 4332.48 2808.36 4340.81 c -2795.43 4324.27 2802.4 4320.74 2801.04 4309.49 c -f -0 g -2758.02 3347.25 m -2757.57 3346.78 2757.57 3272.19 2756.64 3252.72 c -2755.72 3236.97 2754.32 3203.15 2720.96 3203.15 c -2686.67 3203.15 2678.33 3242.54 2675.55 3259.67 c -2672.31 3278.67 2672.31 3294.43 2672.31 3301.37 c -2672.31 3323.61 2673.7 3385.72 2726.06 3385.72 c -2741.82 3385.72 2750.62 3381.07 2757.57 3377.38 c -2758.02 3347.25 l -h -2623.65 3292.56 m -2623.65 3161.9 2693.16 3161.9 2703.35 3161.9 c -2732.08 3161.9 2750.62 3177.66 2758.49 3204.98 c -2759.42 3163.75 l -2768.23 3164.22 2777.03 3165.14 2791.39 3165.14 c -2796.49 3165.14 2800.65 3165.14 2804.37 3164.67 c -2808.08 3164.67 2811.78 3164.22 2815.95 3163.75 c -2808.54 3178.57 2802.98 3211.93 2802.98 3284.24 c -2802.98 3354.67 2802.98 3473.75 2809 3509.9 c -2792.33 3502.01 2777.95 3496.91 2746.44 3494.14 c -2758.95 3480.7 2758.95 3473.75 2758.95 3412.6 c -2750.16 3415.37 2739.03 3418.61 2720.03 3418.61 c -2637.09 3418.61 2623.65 3346.33 2623.65 3292.56 c -f -2874.95 3316.21 m -2875.42 3354.67 2883.3 3388.97 2916.19 3388.97 c -2952.34 3388.97 2955.1 3349.12 2954.18 3316.21 c -2874.95 3316.21 l -h -3000.05 3311.56 m -3000.05 3365.78 2989.4 3419.08 2920.82 3419.08 c -2826.3 3419.08 2826.3 3314.35 2826.3 3292.11 c -2826.3 3198.05 2868.46 3160.98 2939.36 3160.98 c -2970.85 3160.98 2986.16 3165.6 2994.5 3167.93 c -2994.04 3184.61 2996.35 3195.27 2999.15 3209.63 c -2989.4 3203.59 2976.89 3195.72 2949.09 3195.72 c -2876.8 3195.72 2875.87 3261.54 2875.87 3284.24 c -2999.15 3284.24 l -3000.05 3311.56 l -f -3150.8 3291.64 m -3150.8 3248.55 3142.93 3190.62 3089.18 3190.62 c -3081.76 3190.62 3072.5 3192.03 3066.48 3193.42 c -3065.55 3210.1 3065.55 3238.83 3065.55 3272.19 c -3065.55 3312.05 3069.71 3332.87 3072.97 3343.09 c -3082.69 3375.98 3104.47 3376.44 3108.63 3376.44 c -3143.85 3376.44 3150.8 3327.77 3150.8 3291.64 c -h -3017.82 3241.13 m -3017.82 3206.84 3017.82 3187.38 3012.26 3172.56 c -3031.26 3165.14 3054.88 3160.98 3083.16 3160.98 c -3101.23 3160.98 3153.59 3160.98 3181.85 3218.89 c -3195.29 3245.76 3199.92 3281.91 3199.92 3309.26 c -3199.92 3325.94 3198.07 3362.54 3184.63 3385.72 c -3171.66 3407.48 3150.8 3418.61 3128.57 3418.61 c -3084.08 3418.61 3071.11 3381.54 3064.17 3362.54 c -3064.17 3386.17 3064.62 3468.65 3068.32 3510.82 c -3038.21 3496.91 3019.66 3494.61 2999.75 3492.75 c -3017.82 3485.35 3017.82 3454.75 3017.82 3355.12 c -3017.82 3241.13 l -f -3288.99 3163.75 m -3279.73 3165.14 3273.22 3166.07 3259.78 3166.07 c -3244.98 3166.07 3234.77 3165.14 3224.12 3163.75 c -3228.75 3172.56 3230.6 3176.74 3231.99 3206.84 c -3233.85 3248.09 3234.32 3358.38 3231.07 3381.54 c -3228.75 3399.16 3224.59 3401.93 3218.1 3406.56 c -3256.09 3410.27 3266.76 3413.05 3284.35 3421.39 c -3280.65 3401.02 3280.18 3390.8 3280.18 3359.77 c -3279.26 3199.88 3278.79 3182.75 3288.99 3163.75 c -f -3437.37 3294.9 m -3436.46 3265.7 3435.99 3245.31 3428.1 3229.1 c -3418.37 3208.24 3402.16 3202.23 3390.11 3202.23 c -3362.29 3202.23 3356.28 3225.39 3356.28 3248.09 c -3356.28 3291.64 3395.21 3294.9 3412.8 3294.9 c -3437.37 3294.9 l -h -3309.93 3237.89 m -3309.93 3208.69 3318.74 3179.51 3344.7 3166.99 c -3356.28 3161.9 3367.86 3161.9 3371.57 3161.9 c -3414.21 3161.9 3428.56 3193.42 3437.37 3212.87 c -3436.9 3192.48 3437.37 3179.98 3438.76 3163.75 c -3447.1 3164.22 3455.44 3165.14 3469.35 3165.14 c -3477.22 3165.14 3484.64 3164.22 3492.51 3163.75 c -3487.41 3171.62 3484.64 3176.27 3483.23 3194.34 c -3482.31 3211.93 3482.31 3229.55 3482.31 3254.1 c -3482.78 3348.63 l -3482.78 3383.87 3473.51 3418.61 3403.99 3418.61 c -3358.14 3418.61 3331.26 3404.71 3317.82 3397.75 c -3323.39 3387.56 3328.02 3378.77 3332.18 3358.83 c -3350.26 3374.59 3373.9 3382.93 3397.98 3382.93 c -3436.46 3382.93 3436.46 3357.44 3436.46 3321.31 c -3427.65 3321.76 3420.22 3322.68 3407.71 3322.68 c -3348.86 3322.68 3309.93 3300 3309.93 3237.89 c -f -3704.27 3209.63 m -3704.74 3193.87 3704.74 3177.19 3711.22 3163.75 c -3701.02 3164.67 3694.99 3166.07 3676.01 3166.07 c -3664.87 3166.07 3658.86 3165.14 3650.05 3163.75 c -3651.89 3169.77 3652.84 3172.09 3653.76 3179.98 c -3655.15 3190.62 3656.08 3226.31 3656.08 3238.83 c -3656.08 3288.87 l -3656.08 3310.65 3656.08 3342.17 3654.68 3353.28 c -3653.76 3361.15 3651.46 3382.46 3624.56 3382.46 c -3598.15 3382.46 3589.36 3363.01 3586.1 3347.25 c -3582.41 3331.03 3582.41 3313.42 3582.41 3244.84 c -3582.86 3185.53 3582.86 3179.98 3587.49 3163.75 c -3579.62 3164.67 3569.89 3165.6 3555.99 3165.6 c -3544.85 3165.6 3537.45 3165.14 3528.19 3163.75 c -3531.44 3171.17 3533.29 3174.88 3534.21 3200.82 c -3535.15 3226.31 3537 3351.43 3532.8 3381.07 c -3530.5 3399.16 3525.85 3403.32 3520.77 3407.95 c -3558.31 3409.8 3570.34 3415.84 3581.94 3421.85 c -3581.94 3372.73 l -3587.49 3387.11 3599.07 3419.08 3645.42 3419.08 c -3703.35 3419.08 3703.8 3376.91 3704.27 3349.12 c -3704.27 3209.63 l -f -0.843137 0.027451 0.317647 rg -3292.9 3486.97 m -3254.53 3448.61 l -3216.17 3486.97 l -3254.53 3525.33 l -3292.9 3486.97 l -f -end showpage restore -%%PageTrailer -%%Trailer -%%Pages: 1 diff --git a/AlgoApprofondie/diapos/img/cesi.jpg b/AlgoApprofondie/diapos/img/cesi.jpg deleted file mode 100644 index dafbe55de24691c42c68b12402a75d4f863000ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60367 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 diff --git a/AlgoApprofondie/diapos/img/logo-cadoles.png b/AlgoApprofondie/diapos/img/logo-cadoles.png deleted file mode 100644 index de8ddc0506f341a1bb5d22eb69e46950fdfedb10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17924 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 R0H6Q>002ovPDHLkV1n_Dg{c4l diff --git a/algorithmique/INFAL58-algorithimique.pdf b/algorithmique/INFAL58-algorithimique.pdf deleted file mode 100644 index 57a688b458e2839951b22c6d1c5eabd7e10be286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440729 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

    Cn; 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 diff --git a/algorithmique/cours/Makefile b/algorithmique/cours/Makefile deleted file mode 100644 index 8b94f17..0000000 --- a/algorithmique/cours/Makefile +++ /dev/null @@ -1,216 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Algorithmique.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Algorithmique.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/Algorithmique" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Algorithmique" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/algorithmique/cours/_static/cesi.jpg b/algorithmique/cours/_static/cesi.jpg deleted file mode 100644 index dafbe55de24691c42c68b12402a75d4f863000ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60367 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 diff --git a/algorithmique/cours/algo.txt b/algorithmique/cours/algo.txt deleted file mode 100644 index c2f8ed7..0000000 --- a/algorithmique/cours/algo.txt +++ /dev/null @@ -1,291 +0,0 @@ -Algorithmique -============= - -Al-Kharezmi, auteur du traité "Kitab al jabr w'al-muqabala", est l'inventeur -des manipulations algébriques (algèbre = **al jabr**). -C'est Léonard de Pise, dit Fibonacci, qui emprunta le nom du célèbre -mathématicien arabe du 9ème siècle, mais l'algèbre existe -depuis bien plus longtemps (Depuis Babylone, puis ensuite l'Egypte ancienne). - -.. glossary:: - - - algorithme - - terme désignant une suite d'opérations constituant un schéma de calcul - ou de résolution d'un problème. C'est un processus systématique de - résolution d'un problème permettant de décrire précisément des étapes. - C'est une suite finie d'instructions permettant de donner la réponse à un - problème. - -L'algorithmique est l'étude et la production de règles et de techniques -qui sont impliquées dans la définition d'algorithmes. - -Implémentation d'un algorithme ------------------------------- - -.. glossary:: - - implémentation - - Adaptation de la méthodologie de calculabilité au calcul effectif - sur une machine abstraite ou via un langage formel. - -Il n’y a pas de parcours à sens unique de l’algorithme vers l’implantation. -La quête d’une implantation efficace nous amène souvent à effectuer -un retour vers les algorithmes eux-mêmes, et à en modifier des points -essentiels. L’aspect théorique de réflexion sur les algorithmes, -et l’aspect pratique de l'implémentation sont donc en symbiose. - -Un existant émerge de la décomposition structurale d'un -domaine de base. Le fait essentiel, c'est la genèse des genres de l'existant les -uns à partir des autres. - -L'essence d'une forme (un algorithme) se réalise au sein d'une matière qu'elle créée -(un langage). L'origine d'une matière fait naître les formes (concepts) -que sa structure dessine. - -- Notion structurale de non-contradiction -- Notion extensive de "réalisation dans un champ donné" - -Deux aspects réciproques : l'essence d'une forme se réalise au sein d'une -matière qu'elle crée, l'essence d'une matière faisant naître les formes que sa -structure dessine. - -Abandonner l'idée trop simpliste de domaines concrets et d'opérations abstraites -qui posséderaient en eux-mêmes comme une nature de matière et une nature de -forme ; cette conception tendrait, en effet, à stabiliser les existants -mathématiques dans certains rôles immuables et ignorerait le fait que les -existants abstraits qui naissent de la structure d'un domaine plus concret -peuvent à leur tour servir de domaine de base pour la genèse d'autres existants. - -L'algorithme comme généralisation de la calculabilité ------------------------------------------------------- - -L'importance croissante de l'informatique comme outil scientifique -impose d'élaborer un nouveau mode de description des méthodes de calcul (appelées algorithmes) -susceptible de satisfaire à la fois le critère de sécurité (maîtrise du résultat) et la possibilité -d'implémenter les calculs sur un ordinateur. - -Exemple d'algorithme ---------------------- - -.. raw:: latex - - \begin{algorithm} - \caption{L'alorithme de Bellman-Kalaba} - \begin{algorithmic}[1] - \Procedure {BellmanKalaba}{$G$, $u$, $l$, $p$} - \ForAll {$v \in V(G)$} - \State $l(v) \leftarrow \infty$ - \EndFor - \State $l(u) \leftarrow 0$ - \Repeat - \For {$i \leftarrow 1, n$} - \State $min \leftarrow l(v_i)$ - \For {$j \leftarrow 1, n$} - \If {$min > e(v_i, v_j) + l(v_j)$} - \State $min \leftarrow e(v_i, v_j) + l(v_j)$ - \State $p(i) \leftarrow v_j$ - \EndIf - \EndFor - \State $l(i) \leftarrow min$ - \EndFor - \State $changed \leftarrow l \not= l’$ - \State $l \leftarrow l$ - \Until{$\neg changed$} - \EndProcedure - \Statex - \Procedure {FindPathBK}{$v$, $u$, $p$} - \If {$v = u$} - \State \textbf{Write} $v$ - \Else - \State $w \leftarrow v$ - \While {$w \not= u$} - \State \textbf{Write} $w$ - \State $w \leftarrow p(w)$ - \EndWhile - \EndIf - \EndProcedure - \end{algorithmic} - \end{algorithm} - -Exemple d'algorithme avec son implémentation ---------------------------------------------- - -Soit l'algorithme de factorielle suivant, - -.. raw:: latex - - \begin{algorithm} - \caption{Algorithme de la factorielle d'un nombre}\label{factorielle} - \begin{algorithmic}[1] - \Function{factorielle}{$n$}\Comment{La fonction récursive factorielle} - \BState \emph{parametre} : $n$ entier - \If{$n = 1$} - \BState \emph{Sortie} : 1 - \Else - \BState \emph{Sortie} : $n * \Call{factorielle}{n-1}$ \Comment{On appelle la fonction dans l'algorithme lui-même} - \EndIf - \EndFunction - \end{algorithmic} - \end{algorithm} - -et son implémentation en python : - -.. literalinclude:: code/factorielle.py - :language: python - -En voici une autre implémentation (en OCaml) : - -.. literalinclude:: code/factorielle.ml - :language: ocaml - -On remarque que le **pseudocode** est très proche de -la syntaxe du python : - -.. function:: factorielle(n:int) - -:: - - if n=1 - return 1 - else - return n * factorielle(n-1) - end if - -Qualité d'un algorithme ------------------------ - -- correction d'un algorithme -- complétude d'un algorithme - -Sémantique - - Étude du sens, de la signification d'un langage - Définir la sémantique d’un langage formel consiste à lui donner une - signification mathématique. - -Sémantique opérationnelle - - on définit la sémantique par sa mise en œuvre sur - une machine abstraite. - -Sémantique dénotationnelle - - on associe à chaque construction syntaxique un - objet mathématique - -Sémantique axiomatique - - chaque construction est décrite par la manière dont - elle transforme des propriétés ou des prédicats. - -Proposition - - une proposition est un énoncé qui est soit vrai, soit faux - -**exemple** : ``2 + 3 = 5``. Proposition vraie. - -Prédicats - - Une proposition dont la valeur de vérité dépend de la valeur d’une ou plusieurs variables - -**Exemple** : ``n est pair`` : vrai pour n = 4 mais faux pour n = 9 - - -Axiome - - une proposition qui est supposée vraie - -Un ensemble d’axiomes est consistant s’il n’existe pas de proposition -dont on peut démontrer qu’elle est à la fois vraie et fausse. - -Un ensemble d’axiomes est complet si, pour toute proposition, il est -possible de démontrer qu’elle est vraie ou fausse. - -Théorème d’incomplétude de Gödel (1931) : tout ensemble -consistant d’axiomes pour l’arithmétique sur les entiers est -nécessairement incomplet. - -**Les concepts de base en algorithmique sont les axiomes** - -inférence - - règles d’inférence, règles permettant de combiner des axiomes et des - propositions vraies pour établir de nouvelles propositions vraies. - -Démonstration - - vérification d’une proposition par une séquence de déductions logiques - à partir d’un ensemble d’axiomes. - -Lorsque le champ donné (le domaine) ne contient qu'un nombre fini d'individus, -on peut définir un choix de valeur des variables permettant de vérifier la -proposition obtenue par la *conjonction* de tous les axiomes du système proposé. -On dit alors que ce choix *réalise* un système d'axiomes. - - -Il ne s'agit plus de savoir si la définition entraîne l'existence, mais de -chercher si la structure d'un système d'axiomes (*règles*) peut donner naissance -à un champ d'individus qui soutiennent entre eux les relations définies pas les -axiomes. - -Concret et abstrait --------------------- - -Il est possible qu'un même genre d'existant joue dans un schéma de genèse le -rôle d'abstrait par rapport à un concret de base, et soit au contraire dans une -autre genèse le concret de base d'un nouvel abstrait. - -Une pareille présentation des choses implique un tel renversement par rapport -aux habitudes de pensée classiques, qu'il faut encore insister sur le sens -nouveau que reçoivent ici les expressions de "concret" et "d'abstrait". - -Les systèmes d'axiomes sont souvent conçus comme des structures purement -formelles, abstraites. Ces structures sont si profondément engagées dans la -genèse de leurs réalisations, qu'il valait mieux désigner par ces termes les -structures de base. - -Un système d'axiome *peut* devenir le concret de base. - -Ceci permet d'exprimer non seulement l'engagement du concret dans la genèse de -l'abstrait, mais encore les relations d'imitation qui peuvent exister entre la -structure de cet abstrait et celle du concret de base. - -Dans certains cas, la genèse de l'abstrait à partir d'un concret de base -s'affirme jusqu'à réaliser une imitation de structure entre ces genres -d'existants qui naissent l'un de l'autre. - -**C'est pourquoi on représente souvent un algorithme en pseudo-code**, -c'est-à-dire en fait dans le mode de représentation (issu du langage préféré de la -personne qui l'exprime) dominant chez la personne qui exprime un algorithme. - -Comment rendre un algorithme lisible ------------------------------------- - -- Le bon algorithme utilise des identifiants explicites. -- Le bon algorithme est structuré. -- Le bon algorithme est indenté. - -Complexité d'un algorithme --------------------------- - -On peut approximer la complexité des algorithmes. -C'est utile pour pouvoir comparer des algorithmes. - -complexité - - estimer la complexité d'un algorithme, c'est estimer le nombre de calculs qu'il utilise. - -Si f est la fonction caractérisant exactement le coût d’un algorithme et n -la taille des données, on s’intéresse à la façon dont augment f(n) lorsque n augmente -on va montrer que f(n) n'augmente pas plus vite qu’une autre fonction -g(n). Du point de vue mathématique, on dit que la fonction f est dominée -asymptotiquement par la fonction g ce qui se note f = O(g) - -- Complexité temporelle : c’est le nombre d’op«erations effectuées par - une machine qui exécute l’algorithme. - -- Complexité spatiale : c’est le nombre de positions mémoire utilisées par - une machine qui exécute l’algorithme. diff --git a/algorithmique/cours/annexes/agile.txt b/algorithmique/cours/annexes/agile.txt deleted file mode 100644 index 5884c11..0000000 --- a/algorithmique/cours/annexes/agile.txt +++ /dev/null @@ -1,83 +0,0 @@ -La planification agile -======================== - -Le mode itératif ------------------ - -- livrer des versions successives et utilisables qui convergent vers - la version finale - -- ne pas perdre d'énergie à maintenir des specs détaillées non nécessaires - -- de nouvelles orientations fonctionnelles sont possibles, même tard - -- les specs détaillées sont écrites "juste à temps" - - -La planification agile ------------------------ - -- chaque livraison est un projet qui est planifié en tant que tel -- utiliser l'expérience acquise pour affiner les estimations -- préservation de l'écologie du projet au quotidien (code, tests...) - -La confiance, feedback ------------------------ - -- livraisons régulières -- progrès visibles par tous (pas d'effet tunnel) -- pilotage du projet par choix du contenu des livraisons -- investissement du Product Owner -- chercher la collaboration plutôt que la confrontation - -L'agilité ----------- - -- le projet n'est pas joué d'avance -- cultiver la souplesse -- révolution douce -- sortir de la confrontation, jouer le "nous collectif" - mettre tout le monde sur le mme pont et amener tout le monde à bon port - -Les outils agiles ------------------- - -- planification par itérations de 4 semaines -- entrepot de source partagé -- intégration continue -- tests automatisés -- pair programming sur points cruciaux -- sprints -- extranet : - - - hitoires utilisateurs - - test cases - - gestion du backolog et des tickets - - suivi de l'avancement - - documentation - -Le product owner ------------------ - -idéalement, - -- connaissance du métier à informatiser -- fibre projet -- dispo à 100% - -Les tests ---------- - -- automatiser -- viser l'exhaustivité -- tester une cible mouvante -- migrer les tests d'une release à l'autre - -Questions importantes en environnement agile ----------------------------------------------- - -- quelle durée d'itération ? -- comment découper en itérations ? -- que faire lorsque le product owner se retrouve sur le chemin critique ? -- la planification est faite en mode "juste à temps" et "juste assez" -- on ne s'échine plus à blâmer, au contraire on cherche à gagner ensemble diff --git a/algorithmique/cours/annexes/exercices.txt b/algorithmique/cours/annexes/exercices.txt deleted file mode 100644 index 1597a02..0000000 --- a/algorithmique/cours/annexes/exercices.txt +++ /dev/null @@ -1,19 +0,0 @@ -Exercices complémentaires --------------------------- - -+ **Manipulation de chaînes de caractères**: - (création, accès à un caractère, concaténation), listes (création, ajout - d’un élément, suppression d’un élément, accès à un élément, extraction d’une partie de liste), tableaux à une ou plusieurs dimensions. - - + traitement des chaines de caractères - + s.replace() - + s1 + s2 - + un exemple de regexp simple - -+ **Fichiers** : - notion de chemin d’accès, lecture et écriture de données numériques ou de type chaîne de caractères depuis ou vers un fichier. - On encourage l’utilisation de fichiers en tant que supports de données ou de résultats avant divers traitements, par exemple graphiques. - -+ **Piles** - Algorithmes de manipulation : fonctions 'push' et 'pop'. On utilise des listes - (ou tableaux à 1 dimension) pour leur implantation. diff --git a/algorithmique/cours/annexes/index.txt b/algorithmique/cours/annexes/index.txt deleted file mode 100644 index dc5acf1..0000000 --- a/algorithmique/cours/annexes/index.txt +++ /dev/null @@ -1,10 +0,0 @@ -Annexes -========= - -.. toctree:: - :maxdepth: 2 - - exercices - surete - agile - scrum diff --git a/algorithmique/cours/annexes/scrum.txt b/algorithmique/cours/annexes/scrum.txt deleted file mode 100644 index 3777780..0000000 --- a/algorithmique/cours/annexes/scrum.txt +++ /dev/null @@ -1,176 +0,0 @@ -scrum -===== - -.. glossary:: - - scrum - - Scrum est une méthode agile pour la gestion de projets - Le terme Scrum est emprunté au rugby et signifie mêlée. - Ce processus s'articule en effet autour d'une équipe soudée, - qui cherche à atteindre un but, comme c'est le cas en rugby - pour avancer avec le ballon pendant une mêlée. - - -Scrum définit trois rôles principaux : - -- le responsable de produit -- Product Manager, -- le faciliteur -- ScrumMaster -- le développeur - -et bien sûr, l'équipe (auto-gérée). - -Des intervenants peuvent s'intégrer également au projet -de façon plus ponctuelle. - -responsable de produit - - Le responsable de produit (Product Manager) est le représentant des - clients et utilisateurs. - C'est lui qui définit l'ordre dans lequel les fonctionnalités - seront développées et qui prend les décisions importantes - concernant l'orientation du projet. - -Le terme responsable n'est d'ailleurs pas à prendre au sens hiérarchique -du terme, mais dans le sens de l'orientation. - -équipe, développement - - outes les décisions sont prises ensemble et personne ne donne d'ordre - à l'équipe sur sa façon de procéder - -facilitateur - - est chargé de protéger l'équipe de tous les éléments perturbateurs - -planification --------------- - -Scrum utilise une planification à trois niveaux : - -- release/projet -- sprint -- quotidien -- ScrumMeeting - -quotidien - - Au quotidien, une réunion, le ScrumMeeting (pas plus de 15 min) - permet à l'équipe et au ScrumMaster de faire un point d'avancement sur - les tâches et sur les difficultés rencontrées. - répondre à trois questions : - * Qu'est-ce que j'ai fait hier ? - * Qu'est-ce que je compte faire aujourd'hui ? - * Quelles difficultés est-ce que je rencontre ? - -sprint - - Scrum est un processus itératif : les itérations sont appelées des sprints - et durent en théorie 30 jours calendaires. - En pratique, les itérations durent généralement entre 2 et 4 semaines. - Chaque sprint possède un but et on lui associe une liste d'items - de fonctionnalités à réaliser. - Ces items sont décomposés par l'équipe en tâches élémentaires - de quelques heures, les items de fonctionnalités de sprint. - - Pendant un sprint, les items de fonctionnalités de sprint à réaliser - ne peuvent pas être changés. - Les changements éventuels seront éventuellement réalisés - dans les sprints suivants. - -releases - - pour améliorer la lisibilité du projet, - on regroupe généralement des itérations en releases. - En effet, comme chaque sprint doit aboutir à la livraison - d'un produit partiel, une release permet de marquer la livraison - d'une version aboutie, susceptible d'être mise en exploitation - -gestion des besoins -------------------- - -tâches (backlog de sprint) -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Lorsqu'on démarre un sprint, on choisit quels items des fonctionnalités -seront réalisés dans ce sprint. - -L'équipe décompose ensuite chaque item en liste de tâches élémentaires -(techniques ou non), chaque tâche étant estimée en heures -et ne devant pas durer plus de 2 jours. -On constitue ainsi le backlog de sprint. - -Les items de backlog de produit sont les fonctionnalités qui deviendront -les items du baclog d'un sprint. -Ces fonctionnalités sont estimées en points relatifs, sans unité. - -planning poker - - façon ludique et efficace de produire des estimations - sur la complexité des fonctionnalités à développer - - pour évaluer les scénarios utilisateurs (user stories) - du carnet de produit (product backlog). - -à la fin d'un sprint : - -- revue de sprint -- rétrospective de sprint - -comprendre ce qui n'a pas bien marché dans le sprint, -les erreurs commises et de prendre des décisions pour s'améliorer - -mise en oeuvre --------------- - -Scrum peut être mis en pratique avec trois fois rien : deux listes suffisent. -La liste des items du backlog de produit et la liste des items du backlog -de sprint. La saisie et la mise à jour des données est simplement -un peu moins agréable. - -glossaire ---------- - -Directeur de produit (Product Owner) (responsable produit) - - personne responsable de produire et maintenir à jour le backlog de produit. - C'est lui qui en détermine les priorités et qui prend les décisions - concernant l'orientation du projet. - -ScrumMaster (facilitateur) - - membre de l'équipe dont l'objectif principal est de la protéger - des perturbation extérieures. - Il est complètement transparent pour la communication entre l'équipe - et les clients et n'a aucun pouvoir hiérarchique sur l'équipe. - C'est en revanche un facilitateur pour les problèmes non techniques - de l'équipe. - -Backlog de produit (Product Backlog) (fonctionnalités) - - liste des fonctionnalités qui devront être réalisées par le logiciel. - -Backlog de sprint (Sprint Backlog) (tâches) - - liste des tâches à accomplir pendant un sprint. - Elles correspondent à la réalisation des items de backlog - du produit affectés au sprint. - -Mêlée quotidienne (Daily Scrum) (quotidien) - - réunion quotidienne de 15 minutes qui a pour but de faire le point - sur ce qui a été fait depuis la dernière mêlée, - ce qui est prévu de faire jusqu'à la prochaine - et quelles sont les embûches rencontrées durant le travail. - -Sprint (sprint) - - nom d'une itération dans Scrum. - Cette itération dure 30 jours calendaires en théorie, - mais en pratique on utilise plutôt entre 2 et 4 semaines. - Pendant une itération, l'équipe doit développer une liste d'items - du backlog de produit qui a été définie au début de ce sprint. - -Graphique d'avancement (Burndown Chart) (avancement) - - graphique qui montre la tendance du reste à faire total de jour en jour - (pour les sprints) ou de sprint en sprint (pour les releases). diff --git a/algorithmique/cours/annexes/surete.txt b/algorithmique/cours/annexes/surete.txt deleted file mode 100644 index 44da9b7..0000000 --- a/algorithmique/cours/annexes/surete.txt +++ /dev/null @@ -1,93 +0,0 @@ -Outils de sureté d'un programme --------------------------------------- - -La preuve de programme -~~~~~~~~~~~~~~~~~~~~~~ - -Le niveau maximum de sûreté d'exécution d'un programme est la preuve. Qu'est-ce que la preuve -formelle d'un programme ? Selon la définition de Wikipédia, ce sont "des techniques permettant de -raisonner rigoureusement, à l'aide de logique mathématique, sur des programmes informatiques ou -du matériel électroniques, afin de démontrer leur validité par rapport à une certaine -spécification." Bref c'est un raisonnement logique sur un programmme qui permet d'être sûr que le -programme est valide et ne va pas planter. - -La preuve de programme est très peu utilisée dans l'industrie, car très coûteuse et très -difficile à mettre en place. Elle quand même utilisée, mais dans des secteurs où le risque doit -absolument être évacué et où il n'y a aucun droit à l'erreur. Par exemple, le secteur médical -(informatique en bloc opératoire), militaire (peu d'informations nous parviennent dans ce -domaine), l'aviation civile (le logiciel Astrée pour Airbus), la fusée Ariane (depuis le bug qui -avait fait crasher Ariane 5 ces questions sont prises très au sérieux), et le milieu bancaire -(surtout le domaine des décisions boursières : un programme chargé de lancer des décisions -d'achat ou de vente à la bourse qui comporte un bug peut en quelque centièmes de secondes faire -perdre des millions, voire des milliards d'euros à une banque. Le programme ne doit tout simplement pas -bugger). - -Le model checking -~~~~~~~~~~~~~~~~~~ - -Le model checking, l'analyse statique et l'interprétation abstraite procèdent d'une méthodologie -moins lourde de validation des programmes. Ces méthodes analysent exhaustivement l'évolution du -système lors de ses exécutions possibles et permetent de dire si globalement, dans un contexte -donné, le programme va fonctionner correctement. Encore très lourdes, ces techniques ne sont -utilisées que dans un contexte industriel de haute sécurité. - -Les tests d'acceptation -~~~~~~~~~~~~~~~~~~~~~~~ - -Il y a plusieurs types de tests - -- unitaires -- fonctionnels -- acceptation - -Très utilisés dans l'industrie, les tests unitaires et fonctionnels ne testent que certaines -parties du programme et permettent de dire que le programme va marcher grosso-modo à peu près. -Beaucoup moins coûteux à installer, ce sont des éléments cléfs des méthodes agiles. - -Les Outils de linting (validation) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- vérifications syntaxiques -- vérification sémantiques -- vérification sur les imports inutiles ou mal formés (imports croisés - -Exemple en python : pylint - - -La dette technique -~~~~~~~~~~~~~~~~~~ - -Au bout d'un moment le code devient du code spaghetti et les techniques sont obsolètes. -Les tests permettent de solder la dette technique plus facilement. - -**avoir le courage de payer une dette technique, et affronter une dette technique -sinon il peut y avoir un coût à payer qui sera pohibitoire.** - -On solde la dette technique parce que à un moment ça va devenir beaucoup trop -cher à payer. - -Les méthodologies agiles -~~~~~~~~~~~~~~~~~~~~~~~~ - -La manière dont le code est produit importe énormément. Par exemple, une -méthodologie ou le **refactoring** (réécriture de code) est permis et même conseillé -a plus de chance de produire du code organisé. - -Les méthodologies agiles produisent en général du code mieux organisé. Ce sont les -méthodes de travail les plus en vogue aujourd'hui, elles mettent l'accent sur : - -- Du logiciel fonctionnel plutôt que de la documentation exhaustive -- La réponse au changement plutôt que le suivi d'un plan -- Le logiciel fonctionnel est la principale mesure d'avancement -- Une attention continue à l'excellence technique et à une bonne - conception améliore l'agilité -- La simplicité est essentielle (il est facile de faire, il est - difficile de faire simple) - -Le principe de base de la méthodologie Scrum par exemple est de focaliser l'équipe de façon -itérative sur un ensemble de fonctionnalités à réaliser, dans des itérations de durée fixe de une -à quatre semaines, appelées **sprints**. Chaque sprint possède un but à atteindre, défini par le -responsable de produit, à partir duquel sont choisies les fonctionnalités à implémenter dans ce -sprint. Un sprint aboutit toujours sur la livraison d'un produit partiel fonctionnel. Pendant ce -temps, le facilitateur a la charge de réduire au maximum les perturbations extérieures et de -résoudre les problèmes non techniques de l'équipe. diff --git a/algorithmique/cours/apercu.txt b/algorithmique/cours/apercu.txt deleted file mode 100644 index ea09668..0000000 --- a/algorithmique/cours/apercu.txt +++ /dev/null @@ -1,79 +0,0 @@ -Aperçu des algorithmes fondamentaux -=================================== - -Les algorithmes sont partout. Absolument partout aujourd'hui. -Il n'est pas un domaine de nos activités qui ne soit liés à tel ou tel algorithme. - -En mathématiques ------------------ - -- l'algèbre (étude des structures de données) -- l'arithmétique modulaire (théorie des nombres) -- la géométrie (affine, algébrique, invariants topologiques...) -- les diagrammes (diagrammes de Venn...) -- les colorisation d'une carte -- comportements stochastiques - -En informatique ----------------- - -- les algorithmes sur la manipulation des structures de données - Exemple : les algorithmes de tri, de recherche dans un arbre... -- les parcours de graphes (chemins le plus court, voyageur de commerce...) -- la cryptologie (code gray) -- les stratégies de jeux - -Tirés du monde réel --------------------- - -- les jeux (casse-tête, dominos, échiquiers...) -- énigmes, logique et paradoxes -- problèmes de raisonnements. Il n'existe pas beaucoup de méthodes - ou de moyens simples pour traiter et résoudre les énoncés de logique de raisonnement. -- La "marche de l'ivrogne" : processus de progression discrète (pas à pas) - dont l'étape suivante est lié à l'état présent et pas du tout à la mémoire du passé proche. - Il revêt seulement un caractère de type probabilité (stochastique) dit markovien. -- algorithmes de colonies de fourmis (chemins optimal pour arriver à la nourriture) - -Le voyageur de commerce -~~~~~~~~~~~~~~~~~~~~~~~~ - -Le problème du voyageur de commerce, consiste en la recherche d’un trajet minimal permettant à un -voyageur de visiter n villes. En règle générale on cherche à minimiser le temps de parcours total ou la -distance totale parcourue. - -Il suffit de construire tous les chemins possibles et de calculer leurs longueurs. -Avec ``n`` villes il y a ``(n-1)!/2`` chemins possibles. -Avec 36 villes on trouve : 5166573983193072464833325668761600000000, -si le nombre de villes augmente, ça devient vite rédibitoire. - -Résolution par - -- algorithme de parcours de graphes -- algorithme glouton -- algorithmes génétiques - -Les algorithmes génétiques s’appuient sur un principe de sélection des individus d’une population qui présen- -tent des caractéristiques se rapprochant au mieux de ce que l’on recherche; cette population évoluant par -ailleurs selon des critères d’évolution génétique à choisir. Dans le contexte du problème du voyageur de -commerce, un individu est une tournée, un chemin et une population un ensemble de tournées. Il s’agit -maintenant de dé...nir un critère de sélection ainsi que des règles d’évolution de la population. - -- approches métaheuristiques (exemples: colonies de fourmis) - -Exemple de résolution - -.. raw:: latex - - \begin{algorithm} - \caption{Algorithme du voyageur de commerce}\label{commerce} - \begin{algorithmic}[1] - - \BState \emph{Données} : $L$ \Comment{Liste des villes à parcourir avec les distances entre les villes} - \BState \emph{Données} : $L'$ \Comment{Liste du parcours des villes à effectuer} - \State \emph{début} - \BState ... - \State \emph{fin} - - \end{algorithmic} - \end{algorithm} diff --git a/algorithmique/cours/cesar.py b/algorithmique/cours/cesar.py deleted file mode 100644 index c3d25ac..0000000 --- a/algorithmique/cours/cesar.py +++ /dev/null @@ -1,61 +0,0 @@ -# coding: utf-8 -minuscules = 'abcdefghijklmnopqrstuvwxyz' -majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - -def rotation(chaine, x): - """ - Effectue une rotation de x caractères vers la droite: - >>> rotation('abcde', 2) - 'cdeab' - """ - return chaine[x:] + chaine[:x] - -def index(c, chaine): - """ - Trouve l'index de c dans la chaine: - >>> index('n', 'bonjour') - 2 - """ - for i in range(len(chaine)): - if (c == chaine[i]): - return i - return -1 - -def chiffre_minuscules(chaine, x): - """ - Chiffre une chaîne composée de minuscules - >>> chiffre_minuscules('bonjour', 3) - 'erqmrxu' - """ - r = rotation(minuscules, x) - resultat = '' - for lettre in chaine: - resultat = resultat + r[index(lettre, minuscules)] - return resultat - -def chiffre(chaine, x): - """ - Chiffre une chaîne quelconque - >>> chiffre('Bonjour les amis!', 3) - 'Erqmrxu ohv dplv!' - """ - r_min = rotation(minuscules, x) - r_maj = rotation(majuscules, x) - resultat = '' - for lettre in chaine: - if lettre in minuscules: - resultat = resultat + r_min[index(lettre, minuscules)] - elif lettre in majuscules: - resultat = resultat + r_maj[index(lettre, majuscules)] - else: - resultat = resultat + lettre - return resultat - -############################################################################# -# Programme principal -############################################################################# -print(chiffre_minuscules('bonjour', 3)) -print(chiffre('Bonjour les amis!', 3)) -print(chiffre('Erqmrxu ohv dplv!', 23)) -print(chiffre('Eudyr, yrxv dyhc ilql fhw hahuflfh!', 23)) - diff --git a/algorithmique/cours/code/factorielle.ml b/algorithmique/cours/code/factorielle.ml deleted file mode 100644 index 5065a2c..0000000 --- a/algorithmique/cours/code/factorielle.ml +++ /dev/null @@ -1,17 +0,0 @@ -let rec fact = function - |1 -> 1 - | n -> n * fact (n-1) ;; - -let print_fact n = - Printf.printf "factorielle %i = %i\n" n (fact n) - -let main () = - begin - print_fact 5 ; - print_newline () ; - exit 0 ; - end - -let _ = main () - - diff --git a/algorithmique/cours/code/factorielle.py b/algorithmique/cours/code/factorielle.py deleted file mode 100644 index 734719f..0000000 --- a/algorithmique/cours/code/factorielle.py +++ /dev/null @@ -1,12 +0,0 @@ -def factorielle(n): - if (n > 1): - r = n*factorielle(n-1) - else: - r = 1 - return r - -def print_fact(n): - print "factorielle {} = {}\n".format(5, factorielle(5)) - -if __name__ == '__main__': - print_fact(5) diff --git a/algorithmique/cours/conf.py b/algorithmique/cours/conf.py deleted file mode 100644 index b115013..0000000 --- a/algorithmique/cours/conf.py +++ /dev/null @@ -1,370 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Algorithmique documentation build configuration file, created by -# sphinx-quickstart on Thu Mar 16 16:07:00 2017. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig', -] - -# ajout des cours avec solution des exercices ou non -def setup(app): - app.add_config_value('correction', False, 'env') - app.add_config_value('exercice', False, 'env') - -exercice = False -correction = False - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.txt' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Algorithmique' -copyright = u'2017, Gwen' -author = u'Gwen' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = u'1' -# The full version, including alpha/beta/rc tags. -release = u'1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'fr' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -today_fmt = '%d/%m/%Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -default_role = 'literal' - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'alabaster' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -html_show_sphinx = False - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -html_show_copyright = False - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Algorithmiquedoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -'papersize': 'a4paper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -'preamble': """\usepackage{amsmath} -\usepackage{algorithm} -\usepackage[noend]{algpseudocode} -\makeatletter -\def\BState{\State\hskip-\ALG@thistlm} -\makeatother - -""" - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'Algorithmique.tex', u'Cours d\'algorithmique', - u'promotion GMSI B3', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -latex_logo = '_static/cesi.jpg' - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = False - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'algorithmique', u'Algorithmique Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'Algorithmique', u'Algorithmique Documentation', - author, 'Algorithmique', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - - -# -- Options for Epub output ---------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = project -epub_author = author -epub_publisher = author -epub_copyright = copyright - -# The basename for the epub file. It defaults to the project name. -#epub_basename = project - -# The HTML theme for the epub output. Since the default themes are not -# optimized for small screen space, using the same theme for HTML and epub -# output is usually not wise. This defaults to 'epub', a theme designed to save -# visual space. -#epub_theme = 'epub' - -# The language of the text. It defaults to the language option -# or 'en' if the language is not set. -#epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -#epub_identifier = '' - -# A unique identification for the text. -#epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -#epub_cover = () - -# A sequence of (type, uri, title) tuples for the guide element of content.opf. -#epub_guide = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_pre_files = [] - -# HTML files that should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_post_files = [] - -# A list of files that should not be packed into the epub file. -epub_exclude_files = ['search.html'] - -# The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 - -# Allow duplicate toc entries. -#epub_tocdup = True - -# Choose between 'default' and 'includehidden'. -#epub_tocscope = 'default' - -# Fix unsupported image types using the Pillow. -#epub_fix_images = False - -# Scale large images. -#epub_max_image_width = 0 - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#epub_show_urls = 'inline' - -# If false, no index is generated. -#epub_use_index = True diff --git a/algorithmique/cours/control.txt b/algorithmique/cours/control.txt deleted file mode 100644 index 7770490..0000000 --- a/algorithmique/cours/control.txt +++ /dev/null @@ -1,294 +0,0 @@ -Les structures de contrôle -========================== - -L'instruction de saut ----------------------- - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de saut conditionnel}\label{saut} - \begin{algorithmic}[1] - \Procedure{Euclide}{} \Comment{c'est l'algorithme d'Euclide} - \State $\textit{stringlen} \gets \text{length of }\textit{string}$ - \State $i \gets \textit{patlen}$ - \BState \emph{top}: - \If {$i > \textit{stringlen}$} \Return false - \EndIf - \State $j \gets \textit{patlen}$ - \BState \emph{loop}: \Comment{C'est le label (l'étiquette)} \label{etiquette} - \If {$\textit{string}(i) = \textit{path}(j)$} - \State $j \gets j-1$. - \State $i \gets i-1$. - \State \textbf{goto} \emph{loop}. \label{goto} - \State \textbf{close}; - \EndIf - \State $i \gets - i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$. - \State \textbf{goto} \emph{top}. \Comment{C'est l'instruction de saut} - \EndProcedure - \end{algorithmic} - \end{algorithm} - - -.. raw:: latex - - Ligne \ref{etiquette}, le bloc `loop` est aussi un label (une étiquette), - c'est-à-dire une marque posée qu'il est possible de retrouver dans le programme. \\ - -.. raw:: latex - - Ligne \ref{goto}, l'instruction \texttt{goto} (aller à ) est le saut vers le label. \\ - -Description générique d'une instruction de saut:: - - Instruction 1 - Saut Label1 - Instruction 2 - ... - Label1: - Instruction n - -.. important:: les sauts conditionnels sont à éviter, même s'ils sont implémentés - dans le langage cible, car c'est le meilleur moyen d'aboutir à - du **code spaghetti**. - -L'instruction de branchement conditionnel ------------------------------------------- - -On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple d'instruction de test} - \begin{algorithmic}[1] - \BState \emph{entrée}: $quality\gets 0$ \Comment{C'est cette valeur qui sera testée} - \BState \emph{locale}: $a\gets ""$ - \BState \emph{sortie}: $a$ \Comment{La sortie est la valeur de $a$} - \BState \emph{corps}: - \If{$quality\ge 9$} - \State $a\gets perfect$ - \ElsIf{$quality\ge 7$} - \State $a\gets good$ - \ElsIf{$quality\ge 5$} - \State $a\gets medium$ - \ElsIf{$quality\ge 3$} - \State $a\gets bad$ - \Else - \State $a\gets unusable$ - \EndIf - \end{algorithmic} - \end{algorithm} - - - -.. ifconfig:: exercice - - **Exercice** : Compacter l'algorithme suivant en une seule condition de test:: - - Si il fait trop chaud Alors - Si il ne pleut pas Alors - Ouvrir la fenêtre - Sinon - Fermer la fenêtre - Finsi - Sinon - Fermer la fenêtre - Finsi - -.. ifconfig:: correction - - **Correction** : - - :: - - Si il fait trop chaud ET il ne pleut pas Alors - Ouvrir la fenêtre - Sinon - Fermer la fenêtre - Finsi - - -L'instruction switch --------------------- - -L'instruction switch permet de faire plusieurs tests de valeurs sur le contenu d'une même variable. -Ce branchement conditionnel simplifie beaucoup le test de plusieurs valeurs d'une variable. - -Les instructions d'itérations (boucles) ---------------------------------------- - -.. important:: Toutes les boucles concernent le paradigme de programmation impératif - et ne sont pas valides dans le paradigme de programmation fonctionnel - (puisque l'ordre d'évaluation importe) - -- arrêt conditionnel (break) -- passage d'un pas (continue) - -Répéter ... jusqu'à -~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de répéter ... jusqu'à} - \begin{algorithmic}[1] - \BState \emph{locales}: $i \gets 1$ \Comment{déclaration et initialisation de i} - \Repeat \Comment{c'est le label de début du répéter} - \State $i \gets \textit{i+1}$ - \Until{i == 100} \Comment{condition de fin de la boucle} - \end{algorithmic} - \end{algorithm} - -La boucle **pour** (for) -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle for} - \begin{algorithmic}[1] - \BState \emph{locales}: $sum\gets 0$ - \For{$i\gets 1, n$} - \State $sum\gets sum+i$ - \EndFor - \end{algorithmic} - \end{algorithm} - - - - - -.. ifconfig:: exercice - - **Exercice** : Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, - et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres - -.. ifconfig:: correction - - **Correction** : - :: - - Variables N, i, PG en Entier - Debut - PG <- 0 - Pour i <- 1 à 20 - Ecrire "Entrez un nombre : " - Lire N - Si i = 1 ou N > PG Alors - PG <- N - FinSi - Ecrire "Le nombre le plus grand était : ", PG - Fin - - -.. attention:: ne jamais manipuler le compteur dans une boucle - -:: - - Variable Truc en Entier - Début - Pour Truc <- 1 à 15 - Truc <- Truc * 2 - Ecrire "Passage numéro : ", Truc - Truc Suivant - Fin - -La boucle tant que (while) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle while} - \begin{algorithmic}[1] - \BState \emph{locales}: $sum\gets 0$ - \State $i\gets 1$ - \While{$i\le n$} - \State $sum\gets sum+i$ - \State $i\gets i+1$ - \EndWhile - \end{algorithmic} - \end{algorithm} - -.. ifconfig:: exercice - - **Exercice** : Ecrire un algorithme de validation d'une entrée utilisateur - - :: - - "Voulez vous un café ? (O/N)" - -.. ifconfig:: correction - - **Correction** : deux solutions possibles, une - - :: - - Variable Rep en Caractère - Début - Rep <- "" - Ecrire "Voulez vous un café ? (O/N)" - TantQue Rep <> "O" et Rep <> "N" - Lire Rep - Si Rep <> "O" et Rep <> "N" Alors - Ecrire "Saisie Erronée, Recommencez" - FinSi - FinTantQue - Fin - - :: - - Variable Rep en Caractère - Début - Ecrire "Voulez vous un café ? (O/N)" - Lire Rep - TantQue Rep <> "O" et Rep <> "N" - Ecrire "Vous devez répondre par O ou N. Recommencez" - Lire Rep - FinTantQue - Ecrire "Saisie acceptée" - Fin - -.. ifconfig:: exercice - - **Exercice** : "C'est plus, C'est moins", c'est-à-dire Ecrire un algorithme qui demande à l’utilisateur - un nombre compris entre a et b jusqu’à ce que la réponse convienne. - -.. ifconfig:: correction - - **Correction** : - - :: - - Variable N en Entier - Debut - N <- 0 - Ecrire "Entrez un nombre entre 10 et 20" - TantQue N < 10 ou N > 20 - Lire N - Si N < 10 Alors - Ecrire "Plus grand !" - SinonSi N > 20 Alors - Ecrire "Plus petit !" - FinSi - FinTantQue - Fin - -Et les autres boucles : répéter... jusqu'à, etc... - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle répéter} - - \begin{algorithmic}[1] - \State $sum\gets 0$ - \State $i\gets 1$ - \Repeat - \State $sum\gets sum+i$ - \State $i\gets i+1$ - \Until{$i>n$} - \end{algorithmic} - \end{algorithm} diff --git a/algorithmique/cours/donnees.txt b/algorithmique/cours/donnees.txt deleted file mode 100644 index 990629e..0000000 --- a/algorithmique/cours/donnees.txt +++ /dev/null @@ -1,577 +0,0 @@ -Les structures de données -=========================== - -.. glossary:: - - ATD - - Abstract Data Type, structure de données abstraites. - La représentation des données est forcément un choix. - Il est impossible de rendre compte globalement d'un élément du réel, - il faut en faire une interprétation abstraite. - -**Exemple**: - -- Un être humain peut être représenté par les données présentes dans sa - carte d'identité. Mais un être humain n'est pas sa carte d'identité. -- Un être humain peut être représenté par les données présentes dans ses préférences - de surf sur internet. Mais un être humain **n'est pas** l'ensemble de ses logs de surf sur le net. - -Les séquences -------------- - -Les types séquences (listes) - -.. code-block:: ocaml - - # 4::1::5::8::1::[];; - - : int list = [4 ;1 ;5 ;8 ;1] - - -Un ensemble de valeurs portant le même nom de variable et repérées par un nombre, s’appelle un tableau, ou encore une liste, ou une variable indicée. -Le nombre qui, au sein d’un tableau, sert à repérer chaque valeur s’appelle l’indice. -Chaque fois que l’on doit désigner un élément du tableau, on fait figurer le nom du tableau, suivi de l’indice de l’élément. - -**manipulation** : - -- `insert()` -- `append()` -- `remove()` -- `find()` -- `print()` -- ... - -.. code-block:: python - - zoo = ['bear', 'lion', 'panda', 'zebra'] - print(zoo) - - # But these list elements are not - biggerZoo = ['bear', 'lion', 'panda', 'zebra', ['chimpanzees', 'gorillas', 'orangutans', 'gibbons']] - print(biggerZoo) - -- Lists Versus Tuples : types mutables, immutables -- Lists Versus Sets : non ordonné, collection simple - -- Recherche dans une liste, recherche du maximum dans une liste -- Recherche d’un mot dans une chaîne de caractères. - -Algorithme de la longueur d'une liste --------------------------------------- - -.. code-block:: ocaml - - # let rec longueur l = - match l with - [] -> 0 - | ::s -> 1 + (longueur s);; - -Cette fonction est prédéfinie en Ocaml : `List.length` - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme qui déclare et - remplisse un tableau de 7 valeurs numériques en les mettant toutes à zéro. - -.. ifconfig:: correction - - **Correction** : - :: - - Tableau Truc(6) en Numérique - Variable i en Numérique - Debut - Pour i <- 0 à 6 - Truc(i) <- 0 - i Suivant - Fin - - exemple d'implémentation en python - - .. code-block: python - - >>> liste = [] - >>> for i in range(6): - ... liste.append(i) - ... - >>> liste - [0, 1, 2, 3, 4, 5] - >>> - - -.. ifconfig:: exercice - - **Exercice** : Calcul du premier élément maximal dans une liste, - proposer une implémentation en python qui renvoie le maximum et - la position du max dans la liste. - -.. ifconfig:: correction - - **Correction** : - - .. code-block: python - - def max_list(L) : - k = len(L) - max, x = L[0], 0 - i = 1 - while i < k : - if max < L[i]: - max = L[i] - x = i - i = i + 1 - return max, x - - couple = max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - - Exemple de généricité : ce code fonctionne avec une chaîne de caractères. - - .. code-block: python - - couple = max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -.. glossary:: - - Matrice - - Tableaux de dimension multiple, c'est un tableau de tableau - -.. ifconfig:: exercice - - **Exercice** : Écrivez un algorithme remplissant un tableau de 6 sur 13, avec des zéros. - -.. ifconfig:: correction - - **Correction** : - - implémentation en python - - .. code-block:: python - - >>> matrice = [] - >>> for i in range(12): - ... matrice.append([0 for i in range(5)]) - ... - >>> from pprint import pprint - >>> pprint(matrice) - [[0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0]] - >>> - -Algorithmes de tri ------------------- - -On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre. - -Les algorithmes de tri ont une grande importance pratique. -Ils sont fondamentaux dans certains domaines (exemples : map-reduce en database non relationnelle). - -L'étude du tri est également intéressante en elle-même, c'est un des domaines de l'algorithmique très étudié et connu. - -Tri par insertion -~~~~~~~~~~~~~~~~~~ - -Cet algorithme de tri suit de manière naturelle la structure récursive des -listes. Soit l une liste à trier : - -- si l est vide alors elle est déjà triée -- sinon, l est de la forme x::s et on trie récursivement la suite s et on obtient une liste triée s’ - on insert x au bon endroit dans s’ et on obtient une liste triée - -Description de l'algorithme - -- la fonction inserer permet d’insérer un élément x dans une liste l -- si la liste l est triée alors x est inséré au bon endroit - -.. code-block:: ocaml - - # let rec inserer x l = - match l with - [] -> [x] - | y::s -> if x<=y then x::l else y::(inserer x s);; - val inserer : ’a -> ’a list -> ’a list - # inserer 5 [3 ;7 ;10];; - - : int list = [3 ; 5 ; 7 ; 10] - -Tri rapide -~~~~~~~~~~~~ - -soit une liste l à trier : - -- si l est vide alors elle est triée -- sinon, choisir un élément p de la liste (le premier par exemple) - nommé le **pivot** -- partager l en deux listes g et d contenant les autres éléments de l - qui sont plus petits (resp. plus grands) que la valeur du pivot p -- trier récursivement g et d, on obtient deux listes g’ et d’ triées - -.. code-block:: ocaml - :caption: fonction de partage d'une liste - - #let rec partage p l = - match l with - [] -> ([] , []) - |x::s -> let g,d = partage p s in - if x<=p then (x::g , d) else (g , x::d) ;; - val partage : ’a -> ’a list -> ’a list * ’a list = - # partage 5 [1 ;9 ;7 ;3 ;2 ;4];; - - : int list * int list = ([1 ; 3 ; 2 ; 4], [9 ; 7]) - -.. code-block:: ocaml - :caption: algorithme de tri rapide - - # let rec tri rapide l = - match l with - [] -> [] - | p::s -> let g , d = partage p s in - (tri rapide g)@[p]@(tri rapide d) ;; - val tri rapide : ’a list -> ’a list = - # tri rapide [5 ; 1 ; 9 ; 7 ; 3 ; 2 ; 4];; - - : int list = [1 ; 2 ; 3 ; 4 ; 5 ; 7 ; 9] - - -Définition d'un itérateur -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - >>> l = range(10) - >>> for i in l: - ... print l[i] - ... - 0 - ... - 8 - 9 - >>> l.__iter__() - - - -Les listes chaînées -~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - typedef struct list{ - int elt ; - struct list* suivant ; - } ; - - -**Outils de manipulation** : - -- `next()` -- `pointer()` -- `insert(l, a)` -- `remove(a, n)` - - -Les piles ----------- - -**manipulation** - -- `insert()` : insérer un élément à la fin de la pile -- `dequeue()` : (remove and return) : retirer un élément du haut de la pile -- FIFO : "first in first out" - - -Traduction d'une structure de données dans une autre ------------------------------------------------------ - -.. code-block:: python - - >>> listOfStrings = ['One', 'Two', 'Three'] - >>> strOfStrings = ' '.join(listOfStrings) - >>> print(strOfStrings) - One Two Three - >>> - >>> # List Of Integers to a String - ... listOfNumbers = [1, 2, 3] - >>> strOfNumbers = ''.join(str(n) for n in listOfNumbers) - >>> print(strOfNumbers) - 123 - >>> - -.. code-block:: python - - >>> l = [('host1', '10.1.2.3', '6E:FF:56:A2:AF:18'), ('host3', '10.1.2.5', '6E:FF:56:A2:AF:19')] - >>> result = [] - >>> for hostname, ip, macaddress in l: - ... result.append(dict(hostname=hostname, ip=ip, macaddress=macaddress)) - ... - >>> result - [{'hostname': 'host1', 'ip': '10.1.2.3', 'macaddress': '6E:FF:56:A2:AF:18'}, - {'hostname': 'host3', 'ip': '10.1.2.5', 'macaddress': '6E:FF:56:A2:AF:19'}] - >>> - - -.. ifconfig:: exercice - - **Exercice** : Proposer un algorithme de traduction de cette structure de donnée - - .. code-block:: python - - [ - { - 'address': '192.168.0.0', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - { - 'address': '192.168.0.0', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.12', 'high': '192.168.0.45', 'only_unknown': True }, - { 'low': '192.168.0.8', 'high': '192.168.0.35', 'only_unknown': False }, - ], - }, - { - 'address': '192.168.0.1', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - - ] - - En cette structure de données : - - .. code-block:: python - - [ - { - address: '192.168.0.0', - mask: '255.255.255.0', - dynamicRanges: [ - { low: '192.168.0.5', high: '192.168.0.12', only_unknown: true }, - { low: '192.168.0.50', high: '192.168.0.55', only_unknown: false },j - ], [ - { low: '192.168.0.12', high: '192.168.0.45', only_unknown: true }, - { low: '192.168.0.8', high: '192.168.0.35', only_unknown: false }, - ], - }, - { - 'address': '192.168.0.1', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - ] - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> from pprint import pprint - pprint(l) - [{'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}], - 'mask': '255.255.255.0'}, - {'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.45', - 'low': '192.168.0.12', - 'only_unknown': True}, - {'high': '192.168.0.35', - 'low': '192.168.0.8', - 'only_unknown': False}], - 'mask': '255.255.255.0'}] - >>> newdata = [] - >>> for i in l: - ... if i['address'] not in [j['address'] for j in newdata]: - ... newdata.append(i) - ... else: - ... for k in newdata: - ... if k['address'] == i['address']: - ... k['dynamicRanges'].extend(i['dynamicRanges']) - ... - >>> pprint(newdata) - [{'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}, - {'high': '192.168.0.45', - 'low': '192.168.0.12', - 'only_unknown': True}, - {'high': '192.168.0.35', - 'low': '192.168.0.8', - 'only_unknown': False}], - 'mask': '255.255.255.0'}, - {'address': '192.168.10.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}], - 'mask': '255.255.255.0'}] - >>> - -.. ifconfig:: exercice - - **Exercice** : Proposer un algorithme qui permette de récupérer la liste - des adresses IP disponibles - - .. code-block:: python - - { - "local": { - "leases": [ - { - "mac": "02:00:c0:a8:00:66", - "name": "pcxubuntu", - "address": "192.168.0.200" - }, - { - "mac": "02:00:c0:a8:00:67", - "name": "pcxubuntu", - "address": "192.168.0.201" - }, - { - "mac": "02:00:c0:a8:00:68", - "name": "pcxubuntu", - "address": "192.168.0.202" - } - ] - } - } - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> l = { - ... "local": { - ... "leases": [ - ... { - ... "mac": "02:00:c0:a8:00:66", - ... "name": "pcxubuntu", - ... "address": "192.168.0.200" - ... }, - ... { - ... "mac": "02:00:c0:a8:00:67", - ... "name": "pcxubuntu", - ... "address": "192.168.0.201" - ... }, - ... { - ... "mac": "02:00:c0:a8:00:68", - ... "name": "pcxubuntu", - ... "address": "192.168.0.202" - ... } - ... ] - ... } - ... } - >>> leases = l["local"]["leases"] - >>> from pprint import pprint - >>> pprint(leases) - [{'address': '192.168.0.200', 'mac': '02:00:c0:a8:00:66', 'name': 'pcxubuntu'}, - {'address': '192.168.0.201', 'mac': '02:00:c0:a8:00:67', 'name': 'pcxubuntu'}, - {'address': '192.168.0.202', 'mac': '02:00:c0:a8:00:68', 'name': 'pcxubuntu'}] - >>> addresses = [lease['address'] for lease in leases] - >>> addresses - ['192.168.0.200', '192.168.0.201', '192.168.0.202'] - >>> - - - -Structures de données complexes -------------------------------- - -Les types produits nommés -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On les appelle enregistrements, dictionnaires ou tables de hachage. - -:: - - algorithme monAlgorithme - // déclaration d'un enregistrement - enregistrement Personne - chaine nom; - chaine prenom; - entier age; - réel taille; - finenregistrement - ... - Personne[50] t; - début - // Initialisation - t[0].nom <- "Duchmol"; - t[0].prenom <- "Robert"; - t[0].age <- 24; - t[0].taille <- 1.80; - ... - fin - -.. code-block:: ocaml - - # type adresse = { rue : string ; ville : string ; cp : int};; - # type fiche = { - nom : string ; - prenom : string ; - adresse : adresse ; - date naissance : int * int * int ; - tel fixe : string ; - portable : string - };; - # let v1 = { a = 1 ; b = false ; c = 'r'};; - - - - -- les sommes (constructeurs) - -.. code-block:: ocaml - - # type couleur = Pique | Coeur | Carreau | Trefle;; - # let v = (Pique , Coeur);; - val v : couleur * couleur = (Pique , Coeur) - -.. code-block:: ocaml - - type nombre = - Ent of int | Reel of float | Cplx of float × float - Ent, Reel, Cplx sont les constructeurs du type. - -Autres structures de données complexes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- arbres -- graphes -- dates - -- le parcours de graphes -- les calculs de dates diff --git a/algorithmique/cours/fonctions.txt b/algorithmique/cours/fonctions.txt deleted file mode 100644 index 330cbca..0000000 --- a/algorithmique/cours/fonctions.txt +++ /dev/null @@ -1,588 +0,0 @@ -Les fonctions et les procédures -================================ - -Préliminaire : rappel de théorie de cybernétique -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Théorie de l'information (Claude Shannon, 1949), (ou théorie de la communication) - -Canal de transmission:: - - entrée -> récepteur -> émetteur -> sortie - -.. glossary:: - - cybernétique - - étude des fonctions de réflexes conditionnés du cerveau humain - utilisation au mieux en PNL ("programmation neuro-linguistique") - ou en analyse transactionnelle, ou au pire en ingérinerie sociale. - -La matérialité physique est considérée comme le hardware, le génétique (le -réseau neuronal) étant assimilé au network hardware. - -Les objets mentaux (fonctionnements psychologiques et épigénétiques du -cerveaux) est assimilé au logiciel, au software. - -IFTTT ("if this then that") : la causalité mondaine est ramenée à un ordre de -comportement affecté à un assimilé-machine. - -L'humain est ramené à une machine. -C'est articulation entre "déclencheur contextuel" et "action en réponse de" -n'est pas une "black box" mais un "feedback" qui, pour l'humain, -loin d'être ramené à une entrée/sortie, constitue un **feedback** -utile pour la connaissance de soi. - -A la place, la communication est ramenée à une **boucle de rétroaction** -(comme dans un prompt) entre un système comportemental et son environnement. -La représentation sujet/objet (la perspective traditionnelle) est remplacée -par le clivage intérieur/extérieur. Behaviorisme, procédural. - -L'humain est donc ramené à - -- un ordonnanceur -- un comportement intrinsèque (boîte noire) - -- un stimuli pavlovien (déclencheur, trigger) est considéré comme un paramètre -d'entrée -- une instruction comportementale est considérée comme une action de - traitement -- le résultat est observé. - -Cette articulation entre "déclencheur contextuel" et "action en réponse" -est très exactement une forclusion de la profondeur monadique (Leibniz) de -l'humain à la black box informationnelle (et cybernétique). - -Pour quoi faire ? Pour pirater. Pour manipuler. -Le piratage consiste à - -- isoler les constantes (les procédures répétitives, les algorithmes) -- les observer (collecter les données) - -afin de - -- les réécrire (influence toxique, pishing - hammeçonnage) -- les détruire (attaque en règle) - - -Description d'une procédure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -En programmation impérative, un programme est une suite d’instructions qui font -évoluer l’état mémoire, le résultat est dans l’état final de la mémoire. - -- une procédure peut prendre des paramètres -- elle modifie l'état courant du système - -- Déclaration des paramètes -- Déclaration du corps -- Appel de la procédure - -.. raw:: latex - - \begin{algorithm} - \caption{Procédure de permutation de deux entiers}\label{permutation} - \begin{algorithmic}[1] - \Procedure{permuter}{$a,b$}{} - \BState \emph{parametres}: - \State $a: \textit{int}$ - \State $b: \textit{int}$ - \BState \emph{locales}: - \State $z: \textit{int}$ \Comment{Une variable intermédiaire est nécessaire} - \BState \emph{corps}: - \State $z \gets a$ - \State $a \gets b$ - \State $b \gets z$ - \EndProcedure - \State \Call{permuter}{10, 12} \Comment{appel de la procédure} - \end{algorithmic} - \end{algorithm} - -effet de bord - - toute modification de la mémoire ou modification d'un support externe - -instruction - - commande ou phrase en mesure de modifier l'état du programme ou de la machine hôte - (allocation mémoire, support externe, disque, écran...) - -Une procédure ne renvoie pas de valeur, mais provoque un 'effet de bord' (écriture dans une globale, dans un flux sortant etc.). - -Une procédure permet de créer une instruction nouvelle qui deviendra une primitive pour le programmeur. -Cela permet de structurer le texte source du programme et améliorer sa -lisibilité. Cela permet aussi d'appeler plusieurs fois, et à plusieurs endroit -dans le code, cette primitive. - -Appel d'une procédure -~~~~~~~~~~~~~~~~~~~~~ - -(ex: pseudo-pascal) - -**déclaration de procédure** - -.. raw:: latex - - \begin{algorithm} - \caption{Procédure de permutation de deux entiers}\label{appelpermutation} - \begin{algorithmic}[1] - \Procedure{permuter}{$a,b$}{} - \BState \emph{parametres}: - \State $a: \textit{int}$ \Comment{paramètres formels de la procédure} - \State $b: \textit{int}$ - \BState \emph{locales}: - \State $z: \textit{int}$ \Comment{les variables locales de la procédure} - \BState \emph{corps}: - \State ... \Comment{Le corps de la procedure} - \EndProcedure - \State \Call{permuter}{10, 12} \Comment{l'appel de la procédure} - \end{algorithmic} - \end{algorithm} - - -- les variables x1,...,xn sont appelées *paramètres formels* de p -- les variables v1,...,vm sont appelées *les variables locales* de p - -les valeurs effectivement passées en paramètres, ici `10, 12` -sont appelées **paramètres effectifs** de p - -signature - - C'est l'ensemble paramètre formel + resultat de l'appel - -fermeture - - L'ensemble procédure + variables locales + signature + parametres effectifs - est appelé une **fermeture**. C'est la procédure + son contexte qui permet - de l'instancier dans un programme. - -Environnement - - Contexte d’évaluation d'une expression ou d'une fonction - -Portée - - La portée d'un identifiant (une variable) est sa condition d'utilisation dans un contexte donné - (utilisation locale uniquement, ou bien globale, ou bien locale et globale) - La portée d’une liaison est la portion du code dans laquelle cette - liaison est valide (i.e. où un identifiant est lié à une expression). - -.. ifconfig:: exercice - - **Exercice** : Que donne ce code ? - - .. code-block:: ocaml - - # let x = 42 in - let y = x - 1 in x - y ;; - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: ocaml - - - : int = 1 - - -.. code-block:: ocaml - - let a = 3 (* première liaison pour l'identifiant a *) - let b = 5 and c = 6 - let somme = a + b + c - val somme : int = 14 - let a = 45 (* deuxième liaison pour l'identifiant a *) - somme - val a : int = 45 - -.. ifconfig:: exercice - - **Exercice** : Que donne ce code ? - - .. code-block:: ocaml - - let a = 3 and b = 4 and c = 8 ;; - let somme = a + b + c ;; - val somme : int = ??? - let a = 44 - let b = 5 - let c = 1 - somme - - : int = ??? - -.. ifconfig:: correction - - .. code-block:: ocaml - - let a = 3 and b = 4 and c = 8 ;; - - : int = 15 - let somme = a + b + c ;; - val somme : int = 15 - let a = 44 - let b = 5 - let c = 1 - somme - - : int = 15 - - Même code en python - - .. code-block:: python - - >>> a = 1 - >>> b = 2 - >>> c = 3 - >>> somme = a + b + c - >>> somme - 6 - >>> a = 56 - >>> b = 5678 - >>> c = 56789 - >>> somme - 6 - >>> - -Portée locale dans une expression - -.. code-block:: ocaml - - # let a = 2 and b = 3 and c = 4 in - let somme = a+b+c in - somme - - : int = 9 - # somme ;; - Error: Unbound value somme - # a ;; - Error: Unbound value a - -.. important:: - - L’ordre d’évaluation dans un let ... in ... est bien déterminé, - sans grande importance dans un cadre purement fonctionnel, mais important - en cas d’effets de bord - - -Exemple de variable globale modifiée localement (**attention, mauvaise pratique** !) : - -.. code-block:: python - - >>> a = 5 - >>> def print_a(): - ... print("La variable a = {0}.".format(a)) - ... - >>> print_a() - La variable a = 5. - >>> a = 8 - >>> print_a() - La variable a = 8. - >>> - - - -niveau - - Le niveau d’une déclaration (de variable ou de procédure) est le nombre - de procédures sous lesquelles elle est déclarée. Le programme principal - a le niveau 0. - -.. code-block:: python - :linenos: - - def _get_config(name): - # return config value - if not isfile(CONFIG_FILE): - raise Exception("Fichier de configuration non existant") - from ConfigParser import ConfigParser - cfg = ConfigParser(allow_no_value=True) - cfg.read(CONFIG_FILE) - - if name == "SUBNETS": - return eval(cfg.get('eole', 'subnets')) - elif name == "LEASES_FILE": - DHCP_PATH = cfg.get('eole', 'container_path_dhcp') - return join('/', DHCP_PATH, 'var/lib/dhcp/dhcpd.leases') - def get_routes(*args, **kwargs): - """ - Send list of reserved IP - return list of tuple (id, machine name, IP, MAC Adress) - """ - cfg = creole_loader(load_extra=True, rw=False, owner=MODNAME, - mandatory_permissive=False) - return zip(cfg.dhcp.dhcp.id_dhcp.id_dhcp, cfg.dhcp.dhcp.id_dhcp.hostname, - cfg.dhcp.dhcp.id_dhcp.ip, cfg.dhcp.dhcp.id_dhcp.macaddress) - -On voit que l'objet `cfg` ligne 6 et 7 a le même nom que l'objet `cfg` ligne 19. -C'est autorisé et les espaces de nommages sont différents. - - -Description d'une fonction -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Une fonction renvoie une valeur et ne modifie pas l'état courant du programme -en cours d'exécution ni ne réalise d'effets de bord. Elle renvoie -**toujours** quelque chose (même la valeur ``None`` qui n'est pas rien) - -- une procédure peut prendre des paramètres -- elle modifie l'état courant du système - -- Déclaration des paramètes -- Déclaration du corps -- Appel de la fonction - -En programmation fonctionnelle, programme est un ensemble de définitions de fonctions, -un résultat est l'application d’une fonction à une structure de données effective. - -- composant de base : la fonction -- opération de base : l’application - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de fonction}\label{fonction} - \begin{algorithmic}[1] - \Function{permuter}{$a,b$}{} \Comment{définition de la fonction} - \BState \emph{parametres}: \Comment{déclaration (noms, types) des paramètres formels} - \State $a: \textit{int}$ - \State $b: \textit{int}$ - \BState \emph{locales}: \Comment{déclaration (noms, types) des valeurs locales} - \State $z: \textit{int}$ - \BState \emph{corps}: - \State $z \gets a$ - \State $a \gets b$ - \State $b \gets z$ - \BState \emph{return}: \Comment{La valeur, le résulat renvoyé par la fonction} - \EndFunction - \State \Call{permuter}{10, 12} \Comment{appel de la fonction} - \BState \emph{result}: - \State (12, 10) \Comment{Le résultat effectif de la fonction après appel} - \end{algorithmic} - \end{algorithm} - -.. ifconfig:: exercice - - **Exercice** : factoriser le code suivant - :: - - Ecrire "Etes-vous marié ?" - Rep1 <- "" - TantQue Rep1 <> "Oui" et Rep1 <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Rep1 - FinTantQue - ... - Ecrire "Avez-vous des enfants ?" - Rep2 <- "" - TantQue Rep2 <> "Oui" et Rep2 <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Rep2 - FinTantQue - -.. ifconfig:: correction - - **Correction** : - - :: - - Fonction RepOuiNon() en caractère - Truc <- "" - TantQue Truc <> "Oui" et Truc <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Truc - FinTantQue - Renvoyer Truc - Fin - - Ecrire "Etes-vous marié ?" - Rep1 <- RepOuiNon() - ... - Ecrire "Avez-vous des enfants ?" - Rep2 <- RepOuiNon() - - -Définition mathématique -~~~~~~~~~~~~~~~~~~~~~~~~~ - -fonction - - Une fonction f d’un ensemble E vers un ensemble F est une - correspondance qui associe à chaque élément de E au plus - un élément de F. - -- E est appelé le domaine de définition -- F est appelé codomaine -- la **signature** de la fonction : `E → F (int -> int = )` - - -Exemple de signature d'une fonction - -:: - - Fonction RepOuiNon(Msg en Caractère) en Caractère - Ecrire Msg - Truc <- "" - TantQue Truc <> "Oui" et Truc <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Truc - FinTantQue - Renvoyer Truc - Fin Fonction - - ... - Rep1 <- RepOuiNon("Etes-vous marié ?") - ... - Rep2 <- RepOuiNon("Avez-vous des enfants ?") - ... - - -curryfication - - évaluation de l'application d'une fonction - -- évaluter `(f x y)` -- peut donner une **valeur fonctionnelle** -- évaluation de la valeur fonctionnelle sur une valeur des types de base - -:: - - let g = function n -> (function p -> p + 1) n;; - -Typage d'une fonction -~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - # let f x y z = if x > 0 then y + x else z - x;; - val f : int -> int -> int -> int = - -c’est en fait une fonction à un argument qui retourne une fonction:: - -.. code-block:: ocaml - - val f : int -> (int -> (int -> int)) = - -application de f à trois valeurs - -.. code-block:: ocaml - - # f 1 2 3;; - - : int = 3 - -en programmation fonctionnelle, -les fonctions sont des valeurs comme les autres - - -.. code-block:: ocaml - - # fun x -> x * x;; - - : int -> int = - -Récursivité -~~~~~~~~~~~~ - -.. code-block:: ocaml - - let rec fact n = - if n=0 then 1 else n * fact (n-1) - - -équivalent impératif utilisant une boucle - -.. code-block:: c - - int fact(int n){ - int f = 1 ; - int i = n ; - while (i>0){ - f = f * i; - i-- ; - } ; - return f ; - } - -Définitions par cas -~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - let rec fact n = - match n with - 0 -> 1 - | -> n * fact (n-1) - -**exemple** : la fonction puissance - -.. code-block:: ocaml - - let rec puissance x n = match n with - 0 -> 1 - | -> x * puissance x (n-1) - - - -.. ifconfig:: exercice - - **Portée locale dans une fonction** - Quelles sera la valeur de la variable `a` ? - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + a - - -.. ifconfig:: correction - - Correction: - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + a - >>> a - 4 - >>> - - -.. ifconfig:: exercice - - **Exercice** : Portée locale dans une fonction avec variable globale - Quelles sera la valeur de la variable `a` ? - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... global a - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + 3 - >>> - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... global a - ... a = 2 - ... return a + 1 - ... - >>> myfunc() - 3 - >>> a - 2 - >>> a = myfunc() + 3 - >>> a - 6 - >>> diff --git a/algorithmique/cours/fondement.txt b/algorithmique/cours/fondement.txt deleted file mode 100644 index 874365c..0000000 --- a/algorithmique/cours/fondement.txt +++ /dev/null @@ -1,198 +0,0 @@ -Présentation de l'art de programmer -==================================== - -Qu'est-ce que la programmation ? --------------------------------- - -programmation - - Description d’un calcul (traitement) dans - un langage compréhensible par la machine - (langage de programmation) - -Le processus d'abstraction --------------------------- - -Débuter en programmation n'est pas une chose aisée. Aujourd'hui, la tendance est au -"bas niveau". Souvent, on se jette dans le grand bain : - -- soit en s'approchant au maximum de la machine (admin système et réseau, noyau - linux, langage C) - -- soit en faisant du dev web côté backend, ce qui ramène à une administration réseau - de bas niveau (microservices, monde nodeJS/javascript, etc...) - -Soit on suit un cursus scolaire traditionnel qui commence souvent par une -explication du fonctionnement d'une machine abstraite de bas niveau, puis en -allant de plus en plus haut, mais étant sous-entendu qu'il faut rester connecté au -bas niveau (comprendre comment ça se passe derrière la scène). - -Dans ces deux cas, il est sous-entendu qu'on apprend plus de choses et plus rapidement en mettant -les mains dans le cambouis, ce qui est vrai bien sûr. Mais cela sous-entend qu'un développeur doit -rester le nez dans le guidon. Qu'il doit être un expert de son domaine en accumulant des technologies -sans aucun recul. Bien sûr il se doit d'être un expert du système dans lequel il évolue -(connaissance du système d'exploitation, binding avec le C, du ramasse miette (garbage -collector), interaction avec les différentes librairies, gestion et optimisation de la mémoire, -architecture par microservices, threads...) mais il doit aussi être capable de prendre du recul. - -L'approche algorithmique (algorithmique de pseudo code, algorithmique algébrique et modulaire) -est un véritable moyen pour le programmeur de prendre du recul : elle commence par se placer du -côté de l'esprit humain et de ses capacités de compréhension et d'abstraction, elle autorise une -pensée rationnelle sur l'art de programmer et permet au programmeur d'effectuer les bons choix, -en connaissance de sa discipline. - -Le lien est fait ensuite avec le plus bas niveau grâce une implémentation effective -des langages à partir des paradigmes de rationalisation de la penseée (modules, -objects, généricité, polymorphisme paramétrique...) et d'un outil de communication -avec la machine qu'on appelle compilateur (dont la description est en dehors de -l'objectif de ce cours). - -La tendance générale de l'évolution des langages est de se libérer de ces -contraintes de bas niveau, un peu comme en sciences physiques où les lois physiques -dépendent de l'échelle d'en dessous (du niveau microscopique/quantique) mais qu'à -l'échelle du dessus, on n'a pas affaire à des effets de bas niveau (pas d'effets -quantiques à un niveau macroscopique en général). Ce processus d'évolution est vrai -aussi dans le monde de la technique informatique lui-même (modèle OSI, comment est -construite une trame IP, indépendances de chaque couche (transport, payload) entre -elles). Même la tendance système est à la virtualisation qui accentue encore la -tendance à s'affranchir du bas niveau (le niveau système), le séparer nettement du -haut niveau (le niveau applicatif). - -Il apparaît régulièrement de nouveaux langages. Comment s'orienter ? Quel(s) -langage(s) choisir pour un projet de développement ? Au delà de leurs disparités, la -conception et la genèse de chacun d'eux procèdent d'une motivation partagée : la -volonté d'abstraire. - -- **s'abstraire de la machine** : un langage de programmation permet de - négliger l'aspect *mécanique* de l'ordinateur. On oublie le modèle du - microprocesseur, jusqu'au système d'exploitation sur lequel sera exécuté - le programme. - -- **abstraire les erreurs** : Il s'agit ici de garantir la sûreté d'exécution; un - programme ne doit pas se terminer brutalement ou devenir incohérent en cas d'erreur. - Un des moyens pour y parvenir est le typage des programmes et la mise - en oeuvre d'un mécanisme d'exceptions. - -- **abstraire le mode opératoire** : Il s'agit de choisir une représentation, un - paradigme d'implémentation qui est indépendant du domaine considéré (paradigme - objet, modulaire, générique, composants...) - -- **abstraire les composants** : Les langages de programmation donnent la - possibilité de découper une application en différents composants logiciels, plus ou - moins indépendants et autonomes. La modularité permet une structuration de plus haut - niveau de l'ensemble d'une application complexe. Les langages à objets constituent - une autre approche de la réutilisabilité permettant la réalisation très rapide de - prototypes. - -Description des niveaux d'abstraction par rapport à la machine ---------------------------------------------------------------- - -Les langages de haut niveau simplifient le travail du -programmeur là où les langages de bas niveau permettent de produire un code -plus efficace. - -- **niveau 0** : le langage machine. Illisible, c'est une suite d'optcode. - impossible de coder dans ce langage. - -- **niveau 1** : langage d'assemblage. Il reste très dépendant de la machine - et aujourd'hui il est rare d'en faire, sauf si on code un bootloader par exemple, - la gestion de l'accès à la mémoire est en réel (le mode protégé n'apparaît que après). - Il faut gérer les ressources,le langage est très optimisé mais presque impossible - à maintenir et rendre générique. Aujourd'hui plus personne ne code en assembleur. - -- **niveau 2** : langages dits de **bas niveau** : (exemple : le C, le C++) - indépendance par rapport à la machine, grande structuration mais très verbeux - -- **niveau 3** : langages dits de **haut niveau** : le raisonnement dans ces - langages ne dépent plus de la machine, et ils implémentent des paradigmes de - programmation indépendant de l'état de la mémoire de l'ordinateur, - ils sont indépendant même du système d'exploitation. - -Qu'est-ce qu'une machine ? ---------------------------- - -Une machine, ce truc apparemment si complexe, est en fait -un assemblage de bric et de brac. - -L'assemblage des connecteurs permet de simuler un additionneur, -en prenant en compte les propriétés de **reste euclidien** -de l'addition. - -La structure électronique est composée de : - -- un ordonnanceur. -- le stockage d'un **état**. -- une pile d'instruction - -.. glossary:: - - adressage - - Dès lors qu'on dispose de ces bases électronique au dessus du processeur, - un langage d'assemblage est possible, c'est le langage de calcul sur les registres. - - registre - - machines ont un espace mémoire et un espace de calcul (registres) - -Un ordinateur, c'est très très stupide, mais ça permet de disposer de : - -- une mémoire très grande et ordonnée, -- une capacité à effectuer inlassablement des tâches répétitives -- une grande rapidité de calcul - -Apprendre à programmer, c'est-à-dire être capable de -contrôler la machine. - -.. important:: Apprendre à programmer, c'est-à-dire apprendre à penser de manière structurée, - pour pouvoir accessoirement ensuite communiquer avec une machine. - -Compilateur ------------ - -Schématiquement, un compilateur est un programme qui traduit un -programme d’un langage source vers un langage cible, en signalant -d’éventuelles erreurs. - -Quand on parle de compilation, on pense typiquement à la traduction d’un -langage de haut niveau (C, Java, Caml, ...) vers le langage machine d’un -processeur (Intel Pentium, PowerPC, ...) - -- xml (libre office, word) -> postscript (imprimante) -- postcript -> image -- syntaxe wiki -> html (Wikipédia...) - -compilation graphique - - passer une description, ça donne un dessin genre ocaml Quilt < mon_dessin.txt - passer par une api qui permet de causer avec une interface - -**transpiler** : transformation d'un langage de haut niveau vers un autre -langage de haut niveau. - -- cofee script, typescript -> javascript -- (babel) javascript -> javascript ES 6 -- python -> javascript - -Un compilateur traduit un programme P en un programme Q tel que -pour toute entrée x , la sortie de `Q(x)` soit la même que celle de `P(x)` - -Un interprète est un programme qui, étant donné un programme `P` et une -entrée x , calcule la sortie s de `P(x)` - -Le compilateur fait un travail complexe une seule fois, pour produire un -code fonctionnant pour n’importe quelle entrée -L’interprète effectue un travail plus simple, mais le refait sur chaque entrée -Autre différence : le code compilé est généralement bien plus efficace que -le code interprété - -Typiquement, le travail d’un compilateur se compose d’une phase d’analyse - -- reconnaît le programme à traduire et sa signification -- signale les erreurs et peut donc échouer (erreurs de syntaxe, de portée, de typage, etc.) - -Puis d’une phase de synthèse - -- production du langage cible -- utilise de nombreux langages intermédiaires -- n’échoue pas diff --git a/algorithmique/cours/index.txt b/algorithmique/cours/index.txt deleted file mode 100644 index aa2ef7d..0000000 --- a/algorithmique/cours/index.txt +++ /dev/null @@ -1,19 +0,0 @@ -Introduction à l'algorithmique -================================ - -.. toctree:: - :maxdepth: 2 - - presentation - fondement - langage - algo - programme - fonctions - control - donnees - apercu - modularite - modules - tp - annexes/index diff --git a/algorithmique/cours/langage.txt b/algorithmique/cours/langage.txt deleted file mode 100644 index 67f858d..0000000 --- a/algorithmique/cours/langage.txt +++ /dev/null @@ -1,336 +0,0 @@ -Les langages de programmation -============================= - -langage - - Un langage de - programmation - doit permettre d'écrire des - programmes de bonne qualité - -Un programme doit être : - -- correct -- robuste -- lisible, bien documenté -- facile à modifier, extensible - -Un langage de programmation doit permettre : - -- la programmation structurée -- la structuration avec les types -- proposer un mécanisme d’exceptions -- présenter des caractères de généricité, de polymorphisme et de surcharge - -.. important:: La structuration et l'organisation modulaire sert à maintenir de grands programmes, - Elles sont une nécessité - -Approche historique et chronologique -------------------------------------- - -- Lambda calcul (1930) -- machines de Turing (1936) -- début des langages vers les années 1950 (A0, Fortran(impératif), - Lisp(impératif et fonctionnel), Cobol) -- années 60 : Simula (classes), CPL (compilation séparée) -- années 70 : C (référence du langage impératif de bas niveau), Pascal - (procédures), Smalltalk (programmation orientée objects), Prolog - (programmation logique), Scheme (programmation fonctionnelle pure), Modula, - C++, Ada, Turbo Pascal, Common Lisp, Eiffel (programmation par contrats) -- années 80 : ML, CAML (langages fonctionnels) -- années 90 : Perl, Python, Ruby (languages de scripting multi-paradigmes) - Haskell (fonctionnel pur), Lua, Delphi, Java (orienté objet, machine - virtuelle), PHP (impératif, dédié au web), Erlang (fonctionnel+ - programmation concurrente), javascript (orienté web, objets par - prototypage), OCaml (multi-paradigme, fortement typé, orienté sécurité, - programmation générique, fonctionnelle et objets, modulaire et fonctorielle) -- 2009 : go (google, compilé, typage statique, objets par prototypage, - prgrammation concurrente), Rust (fondation mozilla, multiparadigme, programmation concurrente) - -Les langages actuellement les plus utilisés dans le monde de l'entreprise sont : - -- javascript/NodeJS (70% du code dans le dépôt github) mais victime de son - succès (chaos complet des librairies) -- le go est de plus en plus utilisé, c'est **le** langage qui monte - actuellement -- Python, Ruby, lua, autres langages de scripting (de plus en plus utilisés) -- PHP, Java (stagnants) -- C, C++ (de moins en moins utilisés) - -Approche par typologie des langages ------------------------------------ - -- **A0 (1954)** : possibilité de découpage de programmes en - sous-programmes ; - -- **ALGOL (1958)** : concept de bloc de code (pas forcément nommé) et d'imbrication - de blocs de code ; - -- **C (1971)** : syntaxe claire et simple, programme fortement structuré ; - -- **C (1980)** : le **code objet**, qui consiste à essayer de faire fonctionner - un seul jeu d'instructions sur des machines différentes. Avant, le code - d'assemblage dépendait du processeur, donc il n'y avait pas un seul et unique - jeu d'instructions ; - -- **1980** : déploiement et succès des langages à objets ; - -- **1983** : turbo pascal (Borland) qui fut le tournant du C, - propose un IDE (Environnement de Développement Intégré). - aujourd'hui le turbo pascal a pratiquement disparu mais pas totalement, - il est soutenu par une communauté open source autour de **Lazarus** ; - -- **depuis les années 90** : deux grands groupes de langages. Les langages à - objets, et les langages fonctionnels. Les deux mondes s'interpénètrent (les - avancées actuelles du web, les microservices (Erlang, Haskell), - viennent du monde fonctionnel, le NoSQL, etc). - Les grandes avancées architecturales (système d'exploitation, linux, etc...) - viennent du monde de l'impératif. - - -Approches par modèles de programmation --------------------------------------- - -- **le mécanisme d'exceptions** : il est possible de rompre l'exécution normale d'un - programme à un endroit et de la reprendre à un autre endroit du programme prévu à - cet effet. Ce mécanisme permet de gérer les situations exceptionnelles. - -- **le paradigme impératif** : les entrées-sorties, les modifications physiques de - valeurs et les structures de contrôle itératives sont possibles. - -- **le paradigme fonctionnel** : manipule les fonctions comme étant des valeurs du - langage. Celles-ci peuvent être utilisées en tant que paramètres d'autres fonctions - ou être retournées comme résultat d'un appel de fonction. - -- **le paradigme objet** : La représentation du programme colle à la réalité en - reproduisant des entités relativement proches des objets réel. Attention, le piège - est de croire qu'il s'agit *du* paradigme universel puisqu'il reproduit en miroir le - réel. **C'est en fait un processus d'abstraction comme un autre**. - -Sûreté du langage, typage -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Tri par ordre de sûreté croissant : - -0. typage très faible (presque inexistant aujourd'hui) : 42 == "42" == 42.0... -1. typage dynamique faible : (javascript) (possibilité de changer le prototype - d'un objet pendant l'éxécution du programme, c'est la fête on peut faire - n'importe quoi) -2. typage dynamique fort inféré par le comportement (behavior, duck typing) - (python, ruby, PHP) Le contenu de la variable détermine le choix du typage - `var = 0 -> type int` -3. typage statique déclaré fort (Java) - `int var = 0 ;` (pas mal mais super lourd, pas **agile** du tout) -4. langages à types statiques muni d'un moteur d'inférence de types (Ocaml) - sûreté d'exécution, agilité, sécurité. - - -La syntaxe, la lisibilité -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Importance de la lisibilité (notamment par rapport aux méthodes agiles). - -- courte (python) -- verbeuse (C) -- l'importance des mots clef du langage -- délimiteur de phrase, de blocs (parenthèses, accolades, tabulations, blocs...) - -Langages compilés ou interprétés ? ------------------------------------ - -.. glossary:: - - langage compilé - - une première passe est faite, des validations son effectuées **avant** - la génération du code objet, cette phase est faite par le compilateur. - - compilateur - - programme qui transforme un langage de haut niveau en un langage de base - niveau - - - phase d’analyse syntaxique (source -> syntaxe abstraite) - - phase de synthèse (syntaxe abstraite -> code objet) - - - scripting (langage de scripting) - - langage interprèté - - générique (langage) - - Langage à usage générique, qui peut être utilisé dans n'importe quel - domaine (par opposition au DSL) - - domain specific - - Domain Specific Language, langage destiné à être utilisé dans un - domaine prédéfini. - - paradigmes - - représentation d'une vision particulière à partir d'un modèle théorique - - impératif - - l'algorithme ressemble à une recette de cuisine, - c'est-à-dire à une succession d'instructions à exécuter - les unes à la suite des autres - - fonctionnel - - l'algorithme ne dépend plus de l'ordre d'exécution d'instructions - pas de mélange entre les données et les traitements - - objets (programmation) - - le monde est découpé en catégories - qui permettent de créer des objets - - **développement par composants** - - les objets sont organisés entre eux par composants suivant des designs patterns, - (patrons de conception) - - garbage collector (ramasse miettes) - - la gestion automatique de la mémoire apparaît en 1989 - - machine virtuelle - - portabilité du code (mais diminution en optimisation et performances) - - JIT (just in time compiler) - - code objet, programmes fonctionnant autour de machines virtuelles - - -- **le typage statique** : la vérification de la compatibilité entre les types des - paramètres formels et des paramètres d'appel est effectuée au moment de la - compilation du programme. Dès lors, il n'est pas nécessaire de faire ces - vérifications durant l'exécution du programme ce qui accroît son efficacité. En - outre, la vérification de type permet d'éliminer la plupart des erreurs introduites - par maladresse ou étourderie et contribue à la sûreté de l'exécution. - -- **le typage dynamique** : la vérification de la compatibilité entre les types des - paramètres formels et des paramètres d'appel est effectuée au moment de l'exécution - ou de l'appel à certaines parties de codes du programme. - -- **le polymorphisme paramétrique** : une fonction ou un objet qui n'explore pas la - totalité de la structure d'un de ses arguments accepte que celui-ci ait un type non - entièrement déterminé. Ce paramètre est alors dit polymorphe. Cette particularité - permet de développer un code générique utilisable pour des structures de données - différentes tant que la représentation exacte de cette structure n'a pas besoin - d'être connue par le code en question. L'algorithme de typage est à même de faire - cette distinction. - -- **l'inférence de types** : le programmeur n'a besoin de donner aucune information - de type à l'intérieur de son programme. Le langage se charge seul de déduire du code - le type le plus général des expressions et des déclarations qui y figurent. Cette - inférence est effectuée conjointement à la vérification, lors de la compilation du - programme. - -Les grands paradigmes de programmation ---------------------------------------- - -Le paradigme des objets -~~~~~~~~~~~~~~~~~~~~~~~ - -- 1962 (SIMULA) : premières notions de classes ; - -Pui, une dizaine d'années plus tard : - -- C++ : intégration des classes pour le C ; -- turbo pascal : intégration des classes pour le pascal ; - -Tous les langages actuels ont intégré des traits objets mais de manière très -différentes : - -- perl (1987) -- python (1991) -- Ruby (1993) - -- L'implémentation des objets en python est très proche des notions initiales de - classes issues du Smaltalk et présente une tentative très intéressante - d'unification des objets et des types depuis python 2.2 ; - -- Java (1995) : très grosse réussite industrielle en surfant sur la vague de la - programmation objet, et des machines virtuelles, mais en fait et avec le recul, - doté d'un support objet lourd et alambiqué. - Le monde Java est lourd, avec des outils consommant beaucoup de mémoire et - qui ne satisfont pas à la règle du KISS (Keep It Simple, Stupid) ; - - -Il n'y a pas **une** POO (Programmation Objet), il y a des POO. -Les implémentations objets dans les langages sont riches et variées : - -- objets obligatoirement construits pas des classes (Java, C++, ...) -- objets sans définition de classes (javascript, Ocaml, go, rust) -- langages à attributs (python) -- langages ou le type des objets est défini par leur classe (python, ruby) -- langages ou le type des objets est différent du type de leur classe (Ocaml) -- objets sans classes mais construits par des prototypes (javascript) -- construction d'objets possibles objets sans classe du tout (Ocaml) -- encapsulation des attributs des objets (Java, Ocaml, C++, PHP) -- pas d'encapsulation des attributs (python, ruby, javascript...) - -Le paradigme impératif -~~~~~~~~~~~~~~~~~~~~~~ - -Un programme est une suite d'états de la mémoire de l'ordinateur, -c'est la suite logique des machines de Turing. -La plupart des programmeur aujourd'hui raisonnent suivant ce paradigme, -et ont une très faible visibilité par rapport aux autres paradigmes existants. -Seuls les programmeurs cultivés sont aujourd'hui capable de raisonner -suivant différents paradigmes, ce sont des programmeurs chevronnés et -cultivés. - -Le paradigme fonctionnel -~~~~~~~~~~~~~~~~~~~~~~~~ - -La notion de fonction que possède sous une forme ou une autre la plupart des -langages est empruntée aux mathématiques et non à l'électronique. D'une manière -générale, les langages substituent des modèles formels aux conceptions purement -calculatoires. Ils y gagnent en expressivité. Certains langages fondent leur -paradigme de programmation sur l'abstraction entrée-traitement-sortie, donc sur le -**mathème fonctionnel** et pas sur la boite noire électronique. La fonction -mathématique apporte un niveau opératoire dans le traitement de l'information. - - -Approche par fonctionnalités ----------------------------- - -Plusieurs domaines de l'informatique on proposé/imposé des méthodologies, -des manières de faire. Ces modèles de programmation on fortement influencé -en retour les langages. On reconnaît aujourd'hui : - -- Le modèle client-serveur -- Le modèle de programmation concurrente (exécution de processus légers, threads) : -- Le modèle de développement d'une application de bureau (MVC, ergonomie d'interface) -- Le modèle de développement web (communiquer sur le réseau Internet, API - REST, microservices...) -- Le modèle de programmation système et réseau -- le modèle **Dev Ops** et les méthodes de développement virtualisés -- les langages présentant des **fonctionnalités agiles** - -Conclusion ------------ - -Les langages de haut niveau sont caractérisés par -des concepts tels que : - -- déclaration de valeurs, types, expressions, portée -- expressions, variables, instructions, structures de contrôle -- fonctions, procédures, fermetures -- encapsulation, modules, objets - -=========== ============ -Paradigmes Concepts -=========== ============ -impératif variables, procédures, modules -objets classes, méthodes, héritage, surcharge -fonctionnel fonctions, fermetures, modules -logique prédicats, modules -concurrent tâche/processus, communication -=========== ============ diff --git a/algorithmique/cours/modularite.txt b/algorithmique/cours/modularite.txt deleted file mode 100644 index 276d12d..0000000 --- a/algorithmique/cours/modularite.txt +++ /dev/null @@ -1,200 +0,0 @@ -La programmation structurée -============================= - -Un langage de programmation doit permettre la programmation structurée. - -.. important:: La structuration et l'organisation modulaire sert à maintenir de grands programmes, - Elles sont une nécessité - -Structuration d'un programme ------------------------------ - -La réalisation d'applications importantes oblige le programmeur ou l'équipe de -développement à se poser des questions d'organisation et de structuration. -Aujourd'hui, on dispose de deux grands modèles d'organisation dont les avantages et les -particularités sont distincts. - -L'écriture des vrais programmes consiste à les structurer pour les présenter -comme un assemblage de briques qui s'emboîtent naturellement. -Ce problème se révèle fondamental dès que la taille des programmes devient conséquente. -Si on ne prend pas garde au bon découpage des programmes en modules indépendants, -on se retrouve rapidement débordé par un grand nombre de variables, -et il devient quasiment impossible de réaliser un programme correct. - -La programmation raisonnée ---------------------------- - -Un **programme** est le codage d'un algorithme dans un langage de programmation. -La programmation consiste à modéliser un problème du monde réel sous une forme -symbolique (pour faire résoudre ce problème par un ordinateur). - -Certains problèmes sont **indécidables** ou **ouverts**. -On utilise un langage de programmation pour décrire la **solution** du programme. -La sémantique du programme est le sens de chacune des constructions du langage. -**Comment passer de l'énoncé d'un problème à un programme de bonne qualité ?** - -spécifier - - décrire de manière complète et rigoureuse le problème à résoudre - -modéliser - - proposer une représentation du réel qui soit accessible au calcul - algorithmique - -transcrire - - La transcription du modèle algorithmique se fait dans un langage - de programmation cible adapté au problème - -valider - - La validation du programme est une étape qui permet de s'assurer plus ou - moins fortement que le programme produit les résultats attendus. - La validation va de la série de tests unitaires (validation faible) - à la preuve de programme (validation mathématique forte). - -Conception descendante ------------------------ - -Une vision **centripète** : du général au particulier. - -Il s'agit d'une méthode de résolution d'un problème. On le découpe en tâches -de plus en plus fines, de plus en plus détaillées, qui aboutiront au programme final. - -On met des *trous* dans les algorithmes de plus haut niveau, -c'est-à-dire des phrases en langage naturel. - -.. ifconfig: exercice - - **Exercice** : **Calculer la date du lendemain** - -.. ifconfig: correction - - - l'algorithme de plus bas niveau - - :: - - lendemain jour = - si jour [est le dernier jour du mois] alors - resultat = [calculer le 1er janvier de l'année suivante] - sinon - resultat = lendemain_dansl'année jour - - - les algorithmes de plus bas niveau - - :: - - lendemain_dans_l'année jour = - si jour [est le dernier jour du mois] alors - resultat = [calculer le premier jour du mois suivant] - sinon - resultat = jour suivant jour - - :: - - jour_suivant jour = - jour + 1 - - et ainsi de suite jusqu'à ce que toutes les phrases soient calculables. - -Algorithme vague --------------------- - -L'algorithme vague, c'est quand on pense l'algorithme en se plaçant du côté de -l'implémentation en premier. On a le nez dans le guidon, la vue d'ensemble est -difficile. - -Voici, tiré du monde réel, un exemple d'algorithme vague -("ce que doit faire une fonction"), placé dans un bout de code -(souvent la **docstring** d'une fonction). - -.. code-block:: python - - def upsert_route(*args, **kwargs): - """ - Create or modify an existant DHCP route - param tuple (id or null, machine name, IP, MAC Adress) - return True or False with error message - """ - # si id présent alors modification sinon ajout - # récupère la liste des réservations en cours - # y cherche la variable sur la base de l'ID - # modifie les valeurs - # applique la nouvelle conf DHCP - - return True - -Voici un autre bout de code avec l'algorithme en commentaire, -et l'implémentation effective de l'algorithme - -.. code-block:: python - - def del_route(*args, **kwargs): - """ - Delete an existant DHCP route - param tuple (id, machine name, IP, MAC Adress) - return True or False with error message - """ - # récupère la liste des réservations en cours - # y cherche la variable sur l'id donné en paramètre - # supprime l'entrée avec vérification que les données fournies - # sont bien dans l'enregistrement à supprimer - # applique la nouvelle conf DHCP - route_to_del = (1, "host2","10.1.2.4","6E:FF:56:A2:AF:17") - routes = get_routes() - if route_to_del in routes: - c = creole_loader(load_extra=True, rw=True) - c_id = c.dhcp.dhcp.id_dhcp.id_dhcp.index(route_to_del[0]) - if c.dhcp.dhcp.id_dhcp.macaddress[c_id]==route_to_del[2] - and c.dhcp.dhcp.id_dhcp.ip[c_id]==route_to_del[1]: - c.dhcp.dhcp.id_dhcp.id_dhcp.pop(c_id) - config_save_values(c, MODNAME) - return True - return False - -Les deux grands paradigmes ---------------------------- - -La modularité -~~~~~~~~~~~~~~ - -Les données et les traitements sont regroupés au sein d'une même entité à deux -facettes : d'un côté le code proprement dit, de l'autre son interface. La -communication entre modules s'effectue via leur interface. La description d'un -type peut être masquée en n'apparaissant pas dans l'interface du module. Ces -types de données abstraits facilitent les modifications d'implantation à -l'intérieur d'un module sans affecter les autres modules qui s'en servent. De -plus, les modules peuvent être paramétrés par d'autres modules augmentant -ainsi leur réutilisabilité. - -Le paradigme objet -~~~~~~~~~~~~~~~~~~ - -Les descriptions des traitements et des données sont regroupées dans des -entités appelées **classes**; un objet est une instance (valeur) d'une classe. -La communication entre objets est réalisée par envoi de message, l'objet -receveur détermine à l'exécution (liaison retardée) le traitement -correspondant au message. En cela, la programmation objet est dirigée par -les données. La structuration d'un programme provient des relations entre -classes, en particulier l'héritage permet de définir une classe par extension -d'une autre. - -En programmation objet, un **programme** est une collection d’objets qui communiquent -entre eux par **message**, le **résultat** est un message envoyé à un objet particulier - -Comparaison entre les deux paradigmes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Il y a dualité entre ces deux modèles. - -- On ne peut pas augmenter les composants d'un type dans un module (pas - d'extensibilité des données), mais on peut ajouter de nouveaux traitements - (extensibilité des traitements) sur ces données. - -- En objet, on peut ajouter des sous-classes à une classe (extensibilité des - données) pour traiter des nouveaux cas, mais on ne peut pas ajouter de nouveaux - traitements visibles de la classe ancêtre (pas d'extensibilité des traitements). - -**La combinaison des deux paradigmes offre de nouvelles extensibilités pour les -traitements et les données.** diff --git a/algorithmique/cours/modules.txt b/algorithmique/cours/modules.txt deleted file mode 100644 index 5df4b5e..0000000 --- a/algorithmique/cours/modules.txt +++ /dev/null @@ -1,313 +0,0 @@ -La programmation modulaire -=========================== - -Il s'agit de décomposer un grand programme en -morceaux (**modules**) connectés entre eux par des **interfaces** bien -définies. - -Ces modules doivent être aussi indépendants que possible. - -module - - ensemble de ressources liées sémantiquement - -interface - - mode d’emploi du module, avec en plus un principe de masquage - des informations (partie publique, partie secrète) - - -Signatures, type abstrait et langage de modules : la programmation modulaire -permet d'aller très loin dans la programmation structurée. - - -Définir des fonctions dans un fichier séparé --------------------------------------------- - -Les fonctions peuvent être définies dans un fichier et le programme dans un -autre fichier séparé. Dans ce cas, pour pouvoir être exécuté directement avec -la commande python `nomfichierprogramme.py`, le fichier du programme doit -importer d’abord les fonctions du fichier dans lequel les fonctions sont -définies. - -1. Fichier de fonctions -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - # Fichier foncmaxliste.py - # Recherche le premier élément maximal dans une liste ou - #dans une chaine de caractères - def max_list(L) : - k = len(L) - max, x = L[0], 0 - i = 1 - while i < k : - if max < L[i]: - max = L[i] - x = i - i = i + 1 - return max, x - -2. Fichier de programme -~~~~~~~~~~~~~~~~~~~~~~~~ - -Pour utilser les fonctions définies dans d’autres fichiers, le fichier de -programme doit commencer par les instructions qui importent ces fichiers de -fonctions ou directement les fonctions de ces fichiers. Dans la syntaxe -ci-dessous, on importe une ou toutes les fonctions du fichier `foncmaxlist.py`. - -.. code-block:: python - - # Fichier progmaxlist.py - from foncmaxliste import max_list - # ou plus simple: - # from foncmaxliste import * - print max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - couple = max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - print max_list(’totovaaumarche’) - couple = max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -Au lieu d’importer les fonctions, on peut importer le fichier qui définit les -fonctions avec la syntaxe qui suit. Dans ce cas, le fichier de programme sera -changé comme suit : - -.. code-block:: python - - # Fichier prog2maxlist - import foncmaxliste - print foncmaxliste.max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - # la syntaxe indiquant le chemin d’acces a la fonction max_list utiliser ‘‘.’’ - couple = foncmaxliste.max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - print foncmaxliste.max_list(’totovaaumarche’) - couple = foncmaxliste.max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -L’exécution directe du premier fichier de programme:: - - python prog max list.py - -L’exécution directe du seconde fichier de programme:: - - python prog2 max list.py - -Définition de l'implémentation d'un module -------------------------------------------- - -Tout fichier qui contient au moins une définition d’une fonction ou d’une -variable est appelé un module (une bibliothèque). Le nom du module est le nom -du fichier enlevé le suffixe `.py`. Ainsi, un fichier de programme qui contient -au moins une définition d’une fonction ou un fichier qui ne contient que des -définition de fonctions sont des modules. On peut importer un module ou des -fonctions ou variables d’un module dans un programme, comme nous avons vu dans -les exemples ci-dessus. - -.. important:: on peut importer un module, ou bien lancer un module en tant que - programme executable - -.. code-block:: python - - if __name__ == '__main__': - main() - -Pour faciliter la programmation, Python définit un certain nombre de **modules internes**, -appelés les builtins (la librairie standard). - -Par exemple : - -– Lors de l’ouverture d’une session interactive, on est dans un module interne nommé - main . Toutes les variables définies par affectation au niveau de ce module sont valides - globalement dans la session. - -– D’autres modules internes sont string, math, random - -Dans une session de travail sous l’interpréteur Python, la première importation d’un mo- -dule qui, à part des fonctions qu’elle définit, contient des instruction de programme fait -exécuter ces instructions. Dans la même session, les importations suivantes ne font pas -exécuter ces instructions. Pour les exécuter, on utilise la fonction reload(nomdumodule) -(sans sufffixe .py). - -Exemples d'interface --------------------- - -:: - - type: son type - arguments - arg1 : description de l'argument 1 - arg2 : description de l'argument 2 - préconditions: - arg1 > 10 - postconditions: - result < 19 - raises: TypeError, AssertionError, SystemError... - test: tests nominaux pour chaque cas spécifié - -- L'interface racine carrée - -:: - - racine: - type: float -> float - arguments x: float, flottant dont on veut calculer la racine - pré: x >= 0 - test: racine 25.0 -> 5.0 ; racine (-25) -> raises TypeError - -- L'interface `lendemain` - -Il faut définir auparavant un type spécifique appelé `date` - -:: - - lendemain: le lendemain est la date qui désigne - le jour suivant de la date passée en argument - type: date -> date - arguments : - d: date - description: la date dont on veut calculer le lendemain - -Le langages des modules -------------------------- - -.. code-block:: ocaml - - module type PILE = (* signature (interface) du module *) - sig - type ’a t - val create : unit -> ’a t - val push : ’a -> ’a t -> unit - val pop : ’a t -> ’a - end - - (* implémentation du module *) - module Pile : PILE = (* le module est restreint - par la signature PILE *) - struct - type ’a t = ’a list ref - let create () = ref [] - let push x p = p := x::!p - let pop p = match !p with [...] - let rec print p = match p with [...] - end - -- `struct .. end` introduit une collection de définitions, valeurs, types ou modules. - C'est une **structure**. - -- `module Nom = struct .. end` permet de donner un nom à cette structure et - c'est ça un module. C'est une structure nommée. - -- `sig ... end` introduit une signature de module : une interface pour un module. - -On restreint souvent une structure par une signature pour "cacher" certaines -définitions. Une signature de module fournit une **interface** entre l'extérieur -et l'intérieur d'un module. - -En dehors du module, on accède à ses composants grâce à la notation pointée - -.. code-block:: ocaml - - let p = Pile.create() - Pile.push 45 p - -Les foncteurs --------------- - -Si un langage possède un langage de modules, on peut aller plus loin : on peut -considérer un module comme étant une expression de base du langage. - -- La signature d'un module peut être considérée comme le type du module -- La structure du module peut être considéré comme sa valeur - -Quel est l'intérêt ? On peut alors définir des **foncteurs**. - -foncteur - - "fonction" d'une structure vers une autre structure. - On peut ainsi paramétrer un module par un autre module. - -.. code-block:: ocaml - - module Nom (M1 :S1 ) (M2 :S2 ) (M3 :S3 ) ... = - struct - ... - end - -On applique un foncteur à des paramètres modules, pour -obtenir un nouveau module : - -.. code-block:: ocaml - - module M = F (Titi) (Toto) - - -Contrainte de type par signature ------------------------------------- - -:: - - module M = - struct - type t = int * int * int ;; - let make d m y = d, m, y ;; - end ;; - - let d = M.make 8 5 8 ;; - - module type S = - sig - type t ;; - val make : int -> int -> int -> t ;; - end ;; - - module MS = (M:S) ;; - - MS.make 5 1 2 ;; - -Type et signature ------------------- - -:: - - # module type A = sig - val a: int -> int - end ;; - module type A = sig val a : int -> int end - # module B = struct - let a x = x + 1 ;; - end;; - module B : sig val a : int -> int end - # module C = (B:A) ;; - module C : A - - # C.a 2 ;; - - : int = 3 - # - -Module auquel on impose une signature ------------------------------------------ - - -:: - - module type DATE = sig - type t - val make: int -> t - val get_year: t -> int - val get_month: t -> int - end ;; - - module MR = struct - type t = int * int - let make x y = (x, y) - let get_month (x, y) = x - let get_year (x, y) = y - end ;; - - module date = (MR:DATE) ;; diff --git a/algorithmique/cours/presentation.txt b/algorithmique/cours/presentation.txt deleted file mode 100644 index 6263f9e..0000000 --- a/algorithmique/cours/presentation.txt +++ /dev/null @@ -1,72 +0,0 @@ -Avant propos -============ - -Introduction -~~~~~~~~~~~~ - -| "**Que nul n'entre ici s'il n'est géomètre**" -| Maxime apposée au porche d'entrée de l'École de Platon - - -- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique - algébrique. L'algorithmique est un sous-domaine de l'algèbre et des - approches modulaires (arithmétique modulaire...) - -- Le point de vue mathématique étant assez exigeant, **aucun formalisme fort** de - l'algorithmique mathématique ne sera présenté. Aucun symbole mathématique donc, et - seulement du pseudo-code. - L'approche mathématique forte utilisant le formalisme mathématique de - l'algorithmique algébrique est en général enseignée en France uniquement aux cours - des grandes écoles. - -- L'algorithmique présentée ici est donc délibérément pseudo-scientifique mais en revanche - ouverte au **multi-paradigme**. En général l'évocation d'un algorithme en pseudo code est toujours - réducteur car limité au style de programmation le plus à la mode actuellement, c'est-à-dire le - **style impératif**. Nous présenterons un éventail des plus grands paradigmes de programmation - existants. Nous nous limiterons à la **programmation impérative, fonctionnelle, modulaire, - générique et objet**. Nous envisagerons les structures de données et les structures de contrôle - spécifiques à chacun des styles évoqués. - -- Et parce qu'un honnête programmeur doit avoir une vue d'ensemble de **l'état de son art**, - nous évoquerons un panorama des différents langages existants -- historiques et contemporains -- - en les comparants les uns aux autres. - -- Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous - limiterons l'exposé à deux langages d'implémentation des algorithmes : le **Python** pour la programmation - impérative modulaire et objet, et le **OCaml**, car nous évoquerons aussi certains points - de programmation fonctionnelle et modulaire, polymorphe et teintée de généricité. - -Intérêt -------- - - -| "**Il ne suffit pas d'avoir les mains propres, il faut avoir l'esprit pur.**" -| Thalès de Milet ; Sentences - VIe s. av. J.-C. - -L'algorithmique en tant que rapport à la vérité et à la pensée juste et vraie, -en tant qu'art de découper un problème complexe en tâches élémentaires, -en tant qu'énoncés de compréhension et de sémantique, -est la seule chose vraiment profonde dans l'informatique. Le reste n'est que 0 ou 1. -Cette notion d'algorithme est profondément enracinée dans le désir humain de -transmettre des méthodes pour comprendre des problématiques, -qu'il s'agisse de processus scientifiques ou mathématiques, de secrets, -de philosophie ou de divination au sens des anciens Grecs. -De règles linguistiques, aussi, chez les Romains. - -Objectifs de ce cours -~~~~~~~~~~~~~~~~~~~~~ - -Il s'agit de : - -- maîtriser et concevoir un algorithme de base, -- choisir une représentation appropriée des données, -- décomposer en sous-problèmes et affinements successifs, -- savoir organiser son code en fonctions et en modules. - -Le développement raisonné d’algorithmes et leur implantation -permet d'acquérir les qualités suivantes : - -+ Analyser et modéliser un problème, spécifier, -+ Exprimer une problématique, une solution ou un algorithme, -+ Traduire un algorithme dans un langage de programmation, -+ Concevoir une réponse à un problème précisément posé. diff --git a/algorithmique/cours/programme.txt b/algorithmique/cours/programme.txt deleted file mode 100644 index 6133cf1..0000000 --- a/algorithmique/cours/programme.txt +++ /dev/null @@ -1,476 +0,0 @@ -Définition d'un programme -========================== - -Qu'est-ce qu'un programme ? ----------------------------- - -- Un **programme** est une suite de **phrases** ; -- Une **phrase** est une **déclaration** ou une **expression** (*statement* en anglais) ; - -Production d'un programme : - -1. on écrit le code source du programme ; -2. on demande au compilateur de le traduire en code machine : c'est la compilation du programme ; -3. on demande à la machine d'effectuer le code machine : c'est l'exécution du programme. - -.. important:: - - L'introduction à la compilation et les différentes phases de la compilation - d'un programme sont des sujets qui ne seront pas traités dans ce cours. - -Dans un programme de base, il y a deux fichiers : - -1. un fichier contenant le code : c'est le source du programme. -2. un fichier contenant le code machine : c'est l'exécutable. - -Que peut faire un programme lorsqu'il est exécuté ? -Le programme doit communiquer. S'il reste isolé, il ne pourra pas -produire quoi que ce soit. Voici les trois moyens de communication qu'a un -programme : - -1. communiquer avec l'utilisateur, -2. communiquer avec des fichiers, -3. communiquer avec d'autres programmes. - -Les expressions ----------------- - -expression - - Une expression est une valeur caculée du langage, une opération arithmétique - qui retourne une valeur (entier, texte, valeur logique...). - C'est donc une suite sémantiquement correcte de **valeurs de base** et **d'opérateurs** - -Par exemple, la ligne suivante est une expression effectuant une addition:: - - 5 + 6 - -Expressions à partir de types de base -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Autres exemples d'expressions : - -- 5 est une expression de type int -- 4.5 est une expression de type float -- 'c' est une expression de type char -- true est une expression de type bool -- print ('c') est une expression de type None -- raw_input est une expression de type string - -Les expressions se complexifient avec la complexification des données et des traitements, -mais le principe de l'expressivité d'un langage reste le même. - - -.. ifconfig:: exercice - - **Exercice** : - Le parenthésage et les opérateurs booléens:: - - Variables A, B, C, D, E en Booléen - Variable X en Entier - Début - Lire X - A <- X > 12 - B <- X > 2 - C <- X < 6 - D <- (A ET B) OU C - E <- A ET (B OU C) - Ecrire D, E - Fin - - **Que valent D et E si X = 3 ?** - - -.. ifconfig:: correction - - **Correction** : D sera VRAI alors que E sera FAUX - - - - -Les déclarations ------------------ - -Un autre exemple d'expression : - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple d'expression} - \begin{algorithmic}[1] - \BState \emph{sortie}: $l$ \Comment{C'est l'expression calculée renvoyée} - \ForAll {$v \in V(G)$} - \State $l(v) \leftarrow \infty$ - \EndFor - \State $l(u) \leftarrow 0$ - \Repeat - \For {$i \leftarrow 1, n$} - \State $min \leftarrow l(v_i)$ - \For {$j \leftarrow 1, n$} - \If {$min > e(v_i, v_j) + l(v_j)$} - \State $min \leftarrow e(v_i, v_j) + l(v_j)$ - \State $p(i) \leftarrow v_j$ - \EndIf - \EndFor - \State $l(i) \leftarrow min$ - \EndFor - \State $changed \leftarrow l \not= l’$ - \State $l \leftarrow l$ - \Until{$\neg changed$} - \end{algorithmic} - \end{algorithm} - -Exemple de déclarations : - -- `a = 1` -- `b = 'c'` - -.. important:: Le signe égal est utilisé de deux manières - - - lors d'une déclaration d'une expression - - lorsque deux expressions sont équivalentes - - Suivant les langages, il y a deux symboles différents, ou alors - ils sont identiques. - -Il s'agit de **renseigner** une valeur dans une expression nommée - -- en javascript : - -.. code-block:: javascript - - var b = "blabla" ; - -- en python : - -.. code-block:: python - - b = "blabla" - -- en java : - -.. code-block:: java - - String b = "A"; - -- en OCaml : - -.. code-block:: ocaml - - let a = 1 - -Grâce au mécanisme d'inférence de type dans OCaml, le mot-clef **let** -signifie ici véritablement l'instanciation d'une valeur au sens -mathématique du terme : soit `a` l'entier tel que a soit égal à 1... - -En OCaml comme dans tous les langages fonctionnels, tout ce que nous avons l'habitude -d'appeler des "variables" à propos des affectations, sont en fait des **constantes** -au sens du paradigme impératif de la programmation. - -.. important:: - - Par voie de conséquence, le symbole ``=`` est utilisé à la fois pour la définition des objets et pour le test d'égalité. - Pour les autres langages, on utilise `==` ou bien `===` (javascript) car - le `=` est sémantiquement déjà utilisé... - -Toutes ces notation, apparemment anodines, correspondent donc à des paradigmes de programmation - -Lorsqu'on ne déclare pas les types des symboles déclarés, c'est que soit - -- le typage est faible -- le typage est dynamique (calcul du type en fonction du contenu de la - variable) -- le typage est statique et fort mais ça ne se voit pas - (var le système les calcule automatiquement par inférence de type) - -Assigner, allouer, affecter une chose à quelqu'un ou à une autre chose. - -Exemples dans la langue française : - -- Le traitement que le budget **alloue** à ces fonctionnaires. -- Un système d'exploitation multitâche alloue le travail du processeur aux processus en attente, pour un bref laps de temps, à leur tour. - -.. glossary:: - - affectation - - Une affectation, aussi appelée assignation par anglicisme, est une structure qui permet d'attribuer une valeur à une variable. - - Il s'agit d'une structure particulièrement courante en programmation impérative, et dispose souvent pour cette raison d'une notation courte et infixée, - comme ``x = expr`` ou ``x := expr`` ou encore `x <- expr`. - Dans certains langages, le symbole est considéré comme un opérateur d'affectation, - et la structure entière peut alors être utilisée comme une expression. - D'autres langages considèrent une affectation comme une instruction et ne permettent pas cet usage. - -Voir aussi : - -- Les déclarations de types primitifs et conversions de type -- Les types de base:: - - Octets (8 bits) byte - Entiers courts (16 bits) short - Entiers (32 bits) int - Entiers longs (64 bits) long - Réels (32 bits) float - Réels longs (64 bits) double - Caractères (16 bits) char - Booléens boolean - -- Déclarations par lots:: - - x1 = e1, x2 = e2, ... xn = en; - -Exercices : algorithmes sur les affectations - -.. ifconfig:: exercice - - **Exercice** : Calculs d'affectation:: - - Variables A, B, C en Entier - Début - A <- 3 - B <- 10 - C <- A + B - B <- A + B - A <- C - Fin - -.. ifconfig:: correction - - **Correction**:: - - Après La valeur des variables est : - A <- 5 A = 5 B = ? - B <- 2 A = 5 B = 2 - A <- B A = 2 B = 2 - B <- A A = 2 B = 2 - -.. ifconfig:: exercice - - **Exercice** : Calculs d'affectation - Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ? - :: - - Variables A, B en Entier - Début - A <- 5 - B <- 2 - A <- B - B <- A - Fin - -.. ifconfig:: correction - - **Correction**:: - - Après La valeur des variables est : - A <- 5 A = 5 B = ? - B <- 2 A = 5 B = 2 - A <- B A = 2 B = 2 - B <- A A = 2 B = 2 - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme permettant d’échanger les valeurs - de deux variables A et B, et ce quel que soit leur contenu préalable. - -.. ifconfig:: correction - - **Correction**:: - - Début - A <- n - B <- p - C <- A - A <- B - B <- C - Fin - - Il faut passer par une variable dite temporaire (la variable C) - - -.. ifconfig:: exercice - - **Exercice** : - Que produit l’algorithme suivant ? - - :: - - Variables A, B, C de type entier - Début - A <- 423 - B <- 12 - C <- A + B - Fin - -.. ifconfig:: correction - - **Correction** : dans un prompt python - - .. code-block:: python - - >>> a = 423 - >>> b = 12 - >>> c = a + b - >>> c - 435 - -.. ifconfig:: exercice - - **Exercice** : - Que produit l’algorithme suivant ? - - :: - - Variables A, B, C de type texte - Début - A <- "423" - B <- "12" - C <- A + B - Fin - -.. ifconfig:: correction - - **Correction** : dans un prompt python - - .. code-block:: python - - >>> a = '423' - >>> b = '12' - >>> c = a + b - >>> c - '42312' - -Interaction avec l'utilisateur ------------------------------- - -Il est possible de communiquer de la manière suivante avec un programme : - -- lire et écrire sur l'entrée/sortie standard -- lire et écrire dans un fichier -- afficher (du texte, un nombre...) -- lire (du texte, un nombre...) -- interagir avec les prompts - - -.. code-block:: ocaml - - let x = read_int () in - let signe = - if x >= 0 - then " positif " - else " négatif " in - print_string signe - - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme qui demande le prénom d'une personne - et renvoie "bonjour, je m'appelle " - -.. ifconfig:: correction - - **Correction** : (implémentation en python) - - .. code-block:: python - - # coding: utf-8 - prenom = raw_input("quel est ton prénom ? \n") - print("bonjour, je m'appelle " + prenom.capitalize()) - - -La REPL (boucle d'interaction) -------------------------------- - -.. glossary:: - - REPL - - Read Eval Print Loop : outil principal de communication avec un programme - ou avec un système. Exemples : la console python, le prompt OCaml. - - interface - - outil de communication avec un programme. - - - interface texte - - interface graphique - -**Exemples de REPL** - -Le prompt python:: - - Python 2.7.12 (default, Nov 19 2016, 06:48:10) - [GCC 5.4.0 20160609] on linux2 - Type "help", "copyright", "credits" or "license" for more information. - >>> - >>> dir() - ['__builtins__', '__doc__', '__name__', readline', 'rlcompleter'] - >>> - -Le prompt ipython:: - - Python 2.7.12 (default, Nov 19 2016, 06:48:10) - Type "copyright", "credits" or "license" for more information. - - IPython 2.4.1 -- An enhanced Interactive Python. - ? -> Introduction and overview of IPython's features. - %quickref -> Quick reference. - help -> Python's own help system. - object? -> Details about 'object', use 'object??' for extra details. - - In [1]: - -Le prompt OCaml (utop):: - - Type #utop_help for help about using utop. - - ─( 09:21:24 )─< command 0 >── - utop # - # let x = 1 in x + 2;; - - : int = 3 - # let y = 1 + 2;; - val y : int = 3 - # y * y;; - - : int = 9 -Construire une boucle d'interaction avec l'utilisateur en python:: - - #!/usr/bin/env python3 - error = True - while error: - try: - entier = int(input('donnez un entier : ')) - error = False - except: - print('une valeur entiere est attendue') - print(entier) - -Lire et écrire dans un fichier ------------------------------- - -Les descripteurs de fichiers (file handle) - -Exemple en python - -.. code-block:: python - - >>> fh = file("test.txt", "w") - >>> fh.write("un contenu exemple") - >>> fh.close() - >>> - -.. code-block:: python - - >>> fh.read() - 'un contenu exemple' - >>> fh.close() - >>> - -Linéarisation (serialisation) de données par exemple en json - -.. code-block:: python - - import json - data = dict(a='essai', b='essai2', c=range(3)) - with open('data.txt', 'w') as outfile: - json.dump(data, outfile) diff --git a/algorithmique/cours/tp.txt b/algorithmique/cours/tp.txt deleted file mode 100644 index 3d3ebd5..0000000 --- a/algorithmique/cours/tp.txt +++ /dev/null @@ -1,101 +0,0 @@ -Travaux Pratiques -================= - -.. ifconfig:: exercice - - **travaux pratiques :** - - Ecrire un algorithme qui renvoie le résultat d’une mini-calculatrice. Cette - méthode aura - comme paramètre deux nombres et une chaîne de caractère qui vaudra « + », « - - », « * », - « / ». - -.. ifconfig:: exercice - - **travaux pratiques :** - - - Ecrire un algorithme qui renvoie si deux mots (chaîne de caractères) passés en - paramètre - sont des anagrammes l’un de l’autre. (Lettres identiques mais dans un ordre - différent) - - -.. ifconfig:: exercice - - **travaux pratiques :** - - ascii art (ligne d'étoiles) - - Concevoir un algorithme qui, pour un caractère imprimable et un nombre n - donnés, imprime une barre - horizontale de n de ces caractères. - - ``****************`` - - 2. Modifier l’algorithme pour l’impression d’une barre double. - - :: - - **************** - **************** - - 3. Modifier l’algorithme pour l’impression d’une barre d’épaisseur quelconque - donnée. - 4. (optionnel) Transformer les algorithmes ci-dessus en fonctions. - 5. Écrire un programme Java implémentant la dernière version de l’algorithme - (épaisseur quelconque). - - 3.3 - Triangle de nombres - Concevoir un algorithme qui imprime pour n donné:: - - 1 - 1 2 - 1 2 3 - 1 2 3 4 - 1 2 3 4 5 - ........... - ............. - ............... - 1 2 3 4 5 6 ... n - -.. ifconfig:: exercice - - **travaux pratiques :** - - code de césar : faire un programme pour chiffrer et déchiffrer par décalage - - exemples : Effectue une rotation de x caractères vers la droite:: - - >>> print(chiffre('bonjour', 3)) - erqmrxu - >>> print(chiffre('Bonjour les amis!', 3)) - Erqmrxu ohv dplv! - >>> print(chiffre('Erqmrxu ohv dplv!', 23)) - Bonjour les amis! - -.. ifconfig:: exercice - - **travaux pratiques :** - - :: - - écrire “Entrer un numéro de mois” - mois <- lire - selon que mois est - cas 1 : écrire “janvier (31 jours)” - cas 2 : écrire “février (28 ou 29 jours)” - cas 3 : écrire “mars (31 jours)” - cas 4 : écrire “avril (30 jours)” - cas 5 : écrire “mai (31 jours)” - cas 6 : écrire “juin (30 jours)” - cas 7 : écrire “juillet (31 jours)” - cas 8 : écrire “août (31 jours)” - cas 9 : écrire “septembre (30 jours)” - cas 10 : écrire “octobre (31 jours)” - cas 11 : écrire “novembre (30 jours)” - cas 12 : écrire “décembre (31 jours)” - défaut : écrire “numéro invalide” - fselon diff --git a/algorithmique/diapos/Makefile b/algorithmique/diapos/Makefile deleted file mode 100644 index fd60fc0..0000000 --- a/algorithmique/diapos/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -RST = python tools/rst.py - -TEXDOCUMENTS = $(basename $(wildcard *.tex)) -RSTDOCUMENTS = $(basename $(wildcard *.txt)) - -SOURCES = $(addsuffix .tex,$(TEXDOCUMENTS)) -DVI = $(addsuffix .dvi,$(TEXDOCUMENTS)) -POSTSCRIPT = $(addsuffix .ps,$(TEXDOCUMENTS)) -POSTSCRIPT_GZ = $(addsuffix .ps.gz,$(TEXDOCUMENTS)) -PDF = $(addsuffix .pdf,$(TEXDOCUMENTS)) -RSTSOURCES = $(addsuffix .txt,$(RSTDOCUMENTS)) -HTML = $(TEXDOCUMENTS) $(addsuffix .html,$(RSTDOCUMENTS)) - -all: dvi ps ps.gz html -dvi: $(DVI) -ps: $(POSTSCRIPT) -ps.gz: $(POSTSCRIPT_GZ) -pdf: $(PDF) -html: $(HTML) - - -${DVI}: %.dvi: %.tex - latex $< - latex $< - -${POSTSCRIPT}: %.ps: %.dvi - dvips -o $@ $< - -${POSTSCRIPT_GZ}: %.ps.gz: %.ps - gzip -c $< > $@ - -${PDF}: %.pdf: %.tex - rm -f $*.out $*.log $*.aux - xelatex $< - rm -f $*.out $*.log $*.aux - -%: %.tex %.dvi - latex2html -local_icons $< - touch $@ - -%.html: %.txt - $(RST) $< > $@ - - -clean: - rm -f -- *~ *.log *.aux *.out *.nav *.snm *.toc ${DVI} ${POSTSCRIPT} ${POSTSCRIPT_GZ} ${PDF} - rm -fr ${HTML} diff --git a/algorithmique/diapos/beamer.tex b/algorithmique/diapos/beamer.tex deleted file mode 100644 index 62eb264..0000000 --- a/algorithmique/diapos/beamer.tex +++ /dev/null @@ -1,268 +0,0 @@ -\documentclass[ignorenonframetext]{beamer} -\usepackage{graphicx} -% Internal links only wors with second screen on the right -% \setbeameroption{show notes on second screen} -\usetheme{Madrid} -\usecolortheme{dolphin} - -% gets rid of bottom navigation bars -\setbeamertemplate{footline}[frame number]{} - -% gets rid of navigation symbols -\setbeamertemplate{navigation symbols}{} - -%\usetheme{Warsaw} -%\usepackage[french]{babel} -%\usepackage[utf8,utf8x]{inputenc} -%\usepackage[T1]{fontenc} - - -% Replace babel -\usepackage{polyglossia} -\setdefaultlanguage{french} - -%% Require XeTeX -\usepackage{xltxtra} -\usepackage{fontspec} -\usepackage{xunicode} - -\logo{ - \hspace{120pt} - \includegraphics[width=2cm]{img/cesi.jpg}~ - \hspace{113pt} - \includegraphics[width=1cm]{img/logo-cadoles.png}~ -} - - -%%\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}} - -\title[]{Algorithmique} - -\subtitle{CESI alternance} -\subtitle{promotion GMSI B3} - -\author[Gwenaël Rémond]{} - -%\institute[E.O.L.E]{\includegraphics[width=2cm]{beamer-skel/img/logo-eole.png}} -\institute[Cadoles]{\includegraphics[width=2cm]{img/cesi.jpg}} - -%\date{{\small 8 avril 2013}} - -\subject{Talks} - -\AtBeginSection[] % Add a TOC with current section highlighted -{ - \begin{frame} - \frametitle{Plan} - \tableofcontents[currentsection] - \end{frame} -} - - -\usepackage{hyperref} -\usepackage{hyperxmp} -\hypersetup{% - colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone, - pdftitle={EAD3}, - pdfsubject={Présentation technique d'EWT}, - pdfauthor={EOLE}, - pdfkeywords={EOLE, J-EOLE, distribution, GNU, Linux, Éducation, - nationale, Ubuntu}, - pdflang={fr-FR}, - pdfcopyright={Copyright © 2017 Équipe EOLE }, % Require XeTeX - pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}, -} - -\parskip=0.8em - -\begin{document} - -\frame{\titlepage} - -\section{Introduction} -\begin{frame} -\frametitle{Objectifs} - -\texttt{ - "Il ne suffit pas d'avoir les mains propres, \\ - il faut aussi avoir l'esprit pur."\\ -} -\emph{Thalès ; VIe s. av. J.-C.} - -\begin{itemize} -\item<1-> maîtriser et concevoir un algorithme, -\item<2-> choisir une représentation appropriée des données, -\item<3-> décomposer en sous-problèmes et affinements successifs, -\item<4-> savoir organiser son code et faire des petits programmes en python. -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{L'art de programmer} -\texttt{GEEK SUBLIME (Vikram CHANDRA) -Une vision esthétique, littéraire, mathématique du codage} - -\begin{itemize} -\item<1-> Programmer, c'est abstraire, prendre du recul. -\item<2-> Abstraire, par rapport à quoi ? Par rapport à la machine -\item<3-> Les niveaux d'abstraction par rapport à la machine -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Les langages de programmation} -\begin{itemize} -\item Qu'est-ce qu'un langage de programmation ? -\item Les grands paradigmes de programmation (procédural, objet, fonctionnel, modulaire, générique \dots) -\item L'historique des langages. -\end{itemize} -\end{frame} - -\section{Algorithmique} -\begin{frame} -\frametitle{Les algorithmes} -\begin{itemize} -\item définition d'un algorithme -\item implémentation d'un algorithme -\item représentation d'un algorithme dans un langage cible -\end{itemize} -\end{frame} - -\section{Algorithmique pour la programmation} - -\begin{frame} -\frametitle{Qu'est-ce qu'un programme ?} -\begin{itemize} -\item <1-> Les expressions -\item <2-> Les déclarations -\item <3-> La REPL (Read Eval Print Loop) -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Approche générale des fonctions} -\begin{itemize} -\item Les procédures -\item La portée d'une variable -\item Les fonctions -\end{itemize} -\end{frame} - - -\begin{frame} -\frametitle{Les structures de contrôle} -\begin{itemize} -\item Le branchement conditionnel -\item L'itération -\item \dots -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Les structures de données} -\begin{itemize} -\item Les listes -\item Les dictionnaires -\item Les arbres, les graphes \dots -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{L'état de l'art de l'agorithmique} -\begin{itemize} -\item en mathématiques - \begin{itemize} - \item algorithmique algébrique, - \item arithmétique modulaire, - \item \dots - \end{itemize} -\item en informatique - \begin{itemize} - \item en informatique fondamentale - \item en langages de programmation - \item dans touts les domaines où l'informatique intervient\dots - \end{itemize} -\item en sciences physique, en biologie -\item en sciences sociales (réseaux sociaux, auto-organisation\dots) -\end{itemize} -\end{frame} - -\section{Programmation modulaire} -\begin{frame} -\frametitle{La programmation modulaire} -\begin{itemize} -\item La programmation raisonnée -\item Le paradigme modulaire vs le paradigme objet -\item exemple de programmation modulaire en python -\end{itemize} -\end{frame} - - - - -% Not present in TOC -\appendix - -\begin{frame}[label=thanks]{Remerciements} - - Je remercie la communauté du logiciel libre pour tous ces - merveilleux logiciels sans lesquels si peu de choses existeraient. - - Cette présentation a été réalisée grâce aux logiciels libres - suivants~: - - \begin{itemize} - \item Le système de composition \LaTeX{} - \href{https://fr.wikipedia.org/wiki/TeX_Live}{TeX Live} - \item L'éditeur de texte - \href{http://www.vim.org/}{Vim} - \item L'environnement graphique - \href{http://gnome.org/}{Gnome} - \item Le système d'exploitation - \href{https://debian.org/}{Debian} - \end{itemize} - - \begin{center} - % Do not mess with graphics - \hypersetup{hidelinks} - \begin{tabular}{cccccc} - \href{http://www.gnu.org}{\includegraphics[height=1.3cm]{graphics/gnu-head.pdf}} & - \href{http://www.kernel.org}{\includegraphics[height=1.2cm]{graphics/tux.pdf}} & - \href{http://www.debian.org/}{\includegraphics[height=1cm]{graphics/debian.eps}} & - \href{https://fr.wikipedia.org/wiki/TeX_Live}{\includegraphics[height=1cm]{graphics/texlive.pdf}} - \end{tabular} - \end{center} - -\end{frame} - -\begin{frame}[label=license]{Licence} - Cette présentation est mise à disposition sous licence\\ - \href{http://creativecommons.org/licenses/by-sa/4.0}% - {Creative Commons \textsc{by-sa 4.0}} - \begin{columns}[t] - \begin{column}{5.5cm} - \begin{itemize} - \item Attribution - \end{itemize} - \end{column} - \begin{column}{6.5cm} - \begin{itemize} - \item Partage dans les mêmes conditions - \end{itemize} - \end{column} - \end{columns} - Vous pouvez obtenir une copie de la licence - \begin{block}{par Internet} - \href{http://creativecommons.org/licenses/by-nc-sa/4.0}% - {\url{http://creativecommons.org/licenses/by-nc-sa/4.0}} - \end{block} - \begin{block}{par courrier postal} - \begin{quote} - Creative Commons\\ - 444 Castro Street, Suite 900 Mountain View,\\ - California, 94041, USA. - \end{quote} - \end{block} -\end{frame} - -\end{document} diff --git a/algorithmique/diapos/graphics/Logo-EOLE.eps b/algorithmique/diapos/graphics/Logo-EOLE.eps deleted file mode 100644 index 13f4889..0000000 --- a/algorithmique/diapos/graphics/Logo-EOLE.eps +++ /dev/null @@ -1,133 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:20:58 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%BoundingBox: 0 -1 232 85 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 232 85 -%%EndPageSetup -q 0 -1 232 86 rectclip q -0.290196 0.247059 0.454902 rg -133.668 16.757 m 133.668 16.757 133.25 1.257 148.941 1.257 c 176.328 1.257 - l 170.723 3.749 168.633 5.874 164.891 10.585 c 150.969 10.585 l 147.234 - 10.585 145.441 13.222 145.441 17.538 c 145.441 17.538 145.492 75.363 145.414 - 75.445 c 142.301 82.999 133.668 84.519 133.668 84.519 c 133.668 83.995 -133.676 39.347 133.668 16.757 c h -133.668 16.757 m f -41.039 38.73 m 41.207 38.808 41.25 38.921 41.457 39.109 c 41.5 40.347 41.375 - 41.511 41.164 42.823 c 40.625 46.238 40.664 49.726 41.207 53.07 c 41.125 - 53.214 l 41.043 53.366 40.914 53.405 40.914 53.405 c 40.664 53.48 40.414 - 53.554 40.121 53.515 c 35.613 53.366 31.141 52.577 26.758 51.265 c 24.457 - 50.702 22.16 50.14 19.863 49.577 c 17.984 49.015 16.688 48.152 15.812 46.913 - c 16.062 46.839 16.145 46.691 16.23 46.538 c 16.48 46.464 l 16.395 46.238 - l 15.98 45.863 15.812 45.409 15.895 44.886 c 15.977 44.738 16.105 44.698 - 16.188 44.55 c 16.523 44.327 16.859 44.101 17.062 43.909 c 17.234 43.988 - 17.234 43.988 17.355 43.952 c 17.523 44.027 17.816 44.062 18.023 44.249 - c 18.316 44.288 18.445 44.249 18.57 44.21 c 24.836 43.464 30.973 41.999 - 37.027 39.933 c 37.152 39.894 37.281 39.855 37.242 39.749 c 37.324 39.597 - 37.449 39.558 37.406 39.445 c 37.91 39.296 l 38.91 38.995 39.785 38.734 - 40.75 38.698 c 40.914 38.769 40.914 38.769 41.039 38.73 c 39.117 40.687 - m 38.117 40.988 l 39.078 40.948 l 39.16 40.796 39.117 40.687 39.117 40.687 - c f -49.855 72.859 m 49.855 72.859 54.316 79.749 63.262 84.269 c 13.684 84.269 - l 0.484 84.269 0.527 73.152 0.527 73.152 c 0.527 17.499 l 0.527 17.499 -0.117 1.984 15.809 1.984 c 64.07 1.984 l 58.465 4.472 54.559 8.597 50.816 - 13.308 c 50.816 13.308 15.844 13.296 15.891 13.308 c 11.449 13.308 12.086 - 17.542 12.086 17.542 c 12.156 69.034 l 12.156 73.109 15.902 72.859 15.902 - 72.859 c f -69.723 45.148 m 69.723 45.148 66.891 28.866 79.219 23.05 c 84.949 20.351 - 89.504 19.945 95.855 22.363 c 99.852 23.882 103.457 27.659 104.977 31.769 - c 106.496 35.878 105.191 40.874 101.199 44.757 c 99.793 38.538 98.297 33.53 - 92.91 30.741 c 89.711 29.116 86.457 29.386 83.211 30.995 c 79.961 32.605 - 77.473 36.48 76.484 40.363 c 76.484 40.363 74.473 47.585 82.195 59.417 -c 75.809 56.718 70.875 52.245 69.723 45.148 c h -69.723 45.148 m f -0.945098 0.792157 0.0745098 rg -110.621 8.773 m 117.836 13.503 123.312 20.792 125.211 30.261 c 125.238 -30.429 l 126.707 37.968 125.305 45.933 121.43 52.601 c 117.527 59.308 110.711 - 64.777 102.098 65.82 c 102.074 65.831 l 96.797 66.464 90.988 64.273 86.93 - 60.507 c 82.406 55.163 80.273 51.816 80.387 44.03 c 84.254 49.132 94.043 - 54.202 100.949 53.523 c 105.414 52.984 108.629 50.445 110.898 46.542 c -113.168 42.636 114.066 37.445 113.184 33.058 c 110.383 19.085 94.641 12.073 - 81.125 15.976 c 62.398 21.382 55.426 40.464 63.086 58.038 c 72.824 73.859 - 90.422 80.905 113.074 77.519 c 105.887 85.03 93.703 83.984 93.703 83.984 - c 82.363 84.874 61.398 78.519 53.613 63.808 c 42.234 42.316 52.059 11.566 - 78.055 4.062 c 89.188 0.847 101.344 2.695 110.621 8.777 c h -110.621 8.773 m f -0.290196 0.247059 0.454902 rg -194.387 67.495 m 185.594 67.495 178.215 64.179 172.285 57.597 c 166.355 - 51.011 164.41 42.503 164.41 32.046 c 164.41 20.98 166.184 15.999 171.609 - 9.894 c 180.992 -1.075 203.68 1.32 210.367 1.402 c 217.055 1.484 219.438 - 1.644 231.012 0.57 c 228.027 5.839 220.824 9.495 218.348 10.011 c 206.766 - 12.195 193.328 8.179 181.414 15.484 c 176.691 19.57 175.734 22.14 175.559 - 29.62 c 223.012 29.62 l 223.012 35.269 l 223.012 45.374 219.598 53.257 -214.785 58.945 c 208.164 64.816 201.25 67.409 194.387 67.495 c h -194.184 58.421 m 199.434 58.421 203.531 56.702 206.484 53.245 c 209.438 - 49.788 211.941 44.956 211.984 38.745 c 175.684 38.745 l 175.715 44.808 -177.715 49.339 181.262 52.972 c 184.805 56.601 189.109 58.421 194.184 58.421 - c h -194.184 58.421 m f -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/algorithmique/diapos/graphics/Logo-EOLE.svg b/algorithmique/diapos/graphics/Logo-EOLE.svg deleted file mode 100644 index f55c0d7..0000000 --- a/algorithmique/diapos/graphics/Logo-EOLE.svg +++ /dev/null @@ -1,1277 +0,0 @@ - - - -image/svg+xml       \ No newline at end of file diff --git a/algorithmique/diapos/graphics/Logo-EOLEienne.eps b/algorithmique/diapos/graphics/Logo-EOLEienne.eps deleted file mode 100644 index 72c3b78..0000000 --- a/algorithmique/diapos/graphics/Logo-EOLEienne.eps +++ /dev/null @@ -1,318 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:15:46 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%BoundingBox: 0 -1 1660 851 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%BeginResource: font DejaVuSans-Bold -11 dict begin -/FontType 42 def -/FontName /DejaVuSans-Bold def -/PaintType 0 def -/FontMatrix [ 1 0 0 1 0 0 ] def -/FontBBox [ 0 0 0 0 ] def -/Encoding 256 array def -0 1 255 { Encoding exch /.notdef put } for -Encoding 32 /space put -/CharStrings 2 dict dup begin -/.notdef 0 def -/space 1 def -end readonly def -/sfnts [ -<000100000009008000030010637674203eb93108000000e8000002546670676d5b026bf00000 -033c000000ac676c7966e2f9cb840000009c0000004c686561640e24be09000003e800000036 -686865610eaf07730000042000000024686d74780796006600000444000000086c6f63610000 -00980000044c0000000c6d6178700647062d0000045800000020707265707c61a2e700000478 -000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 -002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 -2900000001660133016600bc00e90000013d00a200fa031f00020002006601660002000200ac -015400ec00bc006201660181048501540166016d04a400020166007f04cd0000000201330062 -00710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002000200f6 -05c301f0053902390058046d043d04b2048104b2016601750466048100b00466043902d1049c -047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a014401190144 -02cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c701f2012f -015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a008f0112 -009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e50000006a -01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f800ec0183 -02a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba01020333031f -03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec02c302b8 -02cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae04600762041b -009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f6040600f0034c -016004a800c10000002505c101000121074a06120096014a078300a800000337007b00140000 -00c9010005c105c105c105c101000108061d00960427039e00ec0102027d0133009800d10358 -017900cd02390362009c009c009c009301b8009300b80073000014000326b707060504030201 -002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c20100720 -b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ff -ff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb002254560442d2c -4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b005254960b02063 -68208a108a233a8a10653a2d0001000000025eb8b54203fc5f0f3cf5001f080000000000d3d9 -0a2000000000d3d90a20f772fcae0fcd096500010008000000010000000000010000076dfe1d -00001021f772f9320fcd00010000000000000000000000000000000204cd006602c900000000 -00000000004c0000004c000100000002034e002b0078000c0002001000400008000005ed0221 -0008000441840280012600fe000301250011000301240121003a0005012400fa000301230016 -000301220121003a0005012200fe00030121003a0003012000fa0003011f00bb0003011e0064 -0003011d00fe0003011c00190003011b001e0003011a00fe0003011900fe0003011800fe0003 -011700fe0003011600fe000301150114000e0005011500fe00030114000e0003011300fe0003 -011200fe0003010f010e007d0005010f00fe0003010e007d0003010d010c008c0005010d00fe -0003010d00c00004010c010b00590005010c008c0003010c00800004010b010a00260005010b -00590003010b00400004010a00260003010900fe0003010800fe00030107000c000301070080 -00040106b2972e054113010600fa0003010500fa0003010400fe0003010300190003010200fa -0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe03fb2c03fafe03f9f84705f9 -7d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03f0fe03ef1e03eefe03edec0a -05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e8911605e8fe03e7fa03e6fa03e591 -1605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03dddc1805dd6403dc1803dba0 -1e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405d71603d6d51005d61403d510 -03d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0940c05d02303cfce1405cf26 -03cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05cafe03c9c85d05c9bb03c98004 -c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4fe03c31c03c2fe03c1fe03c0 -bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a03bcbb0f05bc1103bbba0c05 -bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4fe03b3fe03b21703b11903b0 -1603afad1b05affa03aead1b05aefa03ad911605ad1b03ac911605ac7d03abfe03aa2603a9fe -03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03a24004a1a01e05a1fa03a091 -1605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb059cfe039b9a5d059bbb039b80 -049a8f25059a5d039a400499fe0398972e0598fe03972e0396911605961e40ff0395940c0595 -2003940c0393911605934b039291160592fe03919010059116039010038f25038efe038dfe03 -8cfe038bfe038afe0389fe038887250588fe0387250386fe0385fe0384320383960382fe0381 -fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe037776a60577fe0376a6037574 -1b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa036dfa036cfa036bfe036afe -0369fe0368630c0568320367fe0366320365640a0565fe03640a0364400463620a05630c0362 -0a0361601505619603600111056015035f0a035efe035dfe035c0111055cfe035b5a1b055bfe -035a0111055a1b0359fe0358fa0357fe035601110540ff56fe0355fe03541e03531403525119 -0552fa0351011105511903504f190550fa034f4e11054f19034e11034d1e034c4b14054c1503 -4b4a11054b14034a490e054a1103490e0348fa034746140547150346140345fa0344430e0544 -0f03430e034241250542fa0341011105412503403f0f0540fe033f3e0e053f0f033e0e033d3c -0d053d16033c0d033b64033afe0339140338fe0337130336351a0536250335341405351a0335 -c004340a0d0534140334800433320c05331403334004320c033130a60531fe033001110530a6 -032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a640329fe032815032717110527 -1e03262003251e0324231105402b241e0323110322000d0522fa03210f032140042014031f0a -031e1e031d1c19051d25031c0f13051c19031cb801004091041b0d031a194b051a7d03190111 -05194b0318fe031711031615250516fa031501110515250314640313110312fe031101110511 -fe031064030f0e10050f13030fc0040e10030e80040d0111050dfa030c32030b0a0d050b1603 -0b80040a0d030a400409fe0308fe0307fe0306050a0506fe03050a0305400404fa0303640302 -01110502fe0301000d05011103000d0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> -] def -/f-0-0 currentdict end definefont pop -%%EndResource -%%BeginResource: font DejaVuSans -11 dict begin -/FontType 42 def -/FontName /DejaVuSans def -/PaintType 0 def -/FontMatrix [ 1 0 0 1 0 0 ] def -/FontBBox [ 0 0 0 0 ] def -/Encoding 256 array def -0 1 255 { Encoding exch /.notdef put } for -Encoding 32 /space put -/CharStrings 2 dict dup begin -/.notdef 0 def -/space 1 def -end readonly def -/sfnts [ -<0001000000090080000300106376742000691d39000000e0000001fe6670676d7134766a0000 -02e0000000ab676c7966f9f1ddd70000009c00000044686561640d13be360000038c00000036 -686865610d9f076f000003c400000024686d747807580066000003e8000000086c6f63610000 -0088000003f00000000c6d617870046f0671000003fc00000020707265703b07f1000000041c -0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec -310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f2720629013500b8 -00cb00cb00c100aa009c01a600b800660000007100cb00a002b20085007500b800c301cb0189 -022d00cb00a600f000d300aa008700cb03aa0400014a003300cb000000d9050200f4015400b4 -009c01390114013907060400044e04b4045204b804e704cd0037047304cd04600473013303a2 -055605a60556053903c5021200c9001f00b801df007300ba03e9033303bc0444040e00df03cd -03aa00e503aa0404000000cb008f00a4007b00b80014016f007f027b0252008f00c705cd009a -009a006f00cb00cd019e01d300f000ba018300d5009803040248009e01d500c100cb00f60083 -0354027f00000333026600d300c700a400cd008f009a0073040005d5010a00fe022b00a400b4 -009c00000062009c0000001d032d05d505d505d505f0007f007b005400a406b80614072301d3 -00b800cb00a601c301ec069300a000d3035c037103db0185042304a80448008f013901140139 -0360008f05d5019a0614072306660179046004600460047b009c00000277046001aa00e90460 -0762007b00c5007f027b000000b4025205cd006600bc00660077061000cd013b01850389008f -007b0000001d00cd074a042f009c009c0000077d006f0000006f0335006a006f007b00ae00b2 -002d0396008f027b00f600830354063705f6008f009c04e10266008f018d02f600cd03440029 -006604ee00730000140000960000b707060504030201002c2010b002254964b040515820c859 -212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b0559 -b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d -2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b0022545445921212d2c45 -442d2cb00225b0022549b00525b005254960b0206368208a108a233a8a10653a2d0000010000 -00025eb862af5a3e5f0f3cf5001f080000000000d3d90a2c00000000d3d90a2cf7d6fc4c0e59 -09dc00000008000000010000000000010000076dfe1d00000efef7d6fa510e59000100000000 -00000000000000000000000204cd0066028b0000000000000000004400000044000100000002 -0354002b0068000c000200100099000800000415021600080004b8028040fffbfe03fa1403f9 -2503f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603f02503ef8a4105effe03ee96 -03ed9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5e45305e59603e48a4105e453 -03e3e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603dcfe03db1203da7d03d9bb03 -d8fe03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe03d21b03d1fe03d0fe03cffe -03cefe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c6851105c61c03c51603c4fe03c3fe -03c2fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb -05b8fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004b52503b4fe03b39603b2fe03 -b1fe03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205ab2503aa1203a98a4105a9fa -03a8fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03a16403a08a4105a096039ffe -039e9d0c059efe039d0c039c9b19059c64039b9a10059b19039a1003990a0398fe0397960d05 -97fe03960d03958a410595960394930e05942803930e0392fa039190bb0591fe03908f5d0590 -bb039080048f8e25058f5d038f40048e25038dfe038c8b2e058cfe038b2e038a8625058a4103 -89880b05891403880b03878625058764038685110586250385110384fe038382110583fe0382 -110381fe0380fe037ffe0340ff7e7d7d057efe037d7d037c64037b5415057b25037afe0379fe -03780e03770c03760a0375fe0374fa0373fa0372fa0371fa0370fe036ffe036efe036c21036b -fe036a1142056a530369fe03687d036711420566fe0365fe0364fe0363fe0362fe03613a0360 -fa035e0c035dfe035bfe035afe0359580a0559fa03580a035716190557320356fe0355541505 -55420354150353011005531803521403514a130551fe03500b034ffe034e4d10054efe034d10 -034cfe034b4a13054bfe034a4910054a1303491d0d05491003480d0347fe0346960345960344 -fe0343022d0543fa0342bb03414b0340fe033ffe033e3d12053e14033d3c0f053d12033c3b0d -053c40ff0f033b0d033afe0339fe033837140538fa033736100537140336350b05361003350b -03341e03330d0332310b0532fe03310b03302f0b05300d032f0b032e2d09052e10032d09032c -32032b2a25052b64032a2912052a25032912032827250528410327250326250b05260f03250b -0324fe0323fe03220f03210110052112032064031ffa031e1d0d051e64031d0d031c1142051c -fe031bfa031a42031911420519fe031864031716190517fe031601100516190315fe0314fe03 -13fe031211420512fe0311022d05114203107d030f64030efe030d0c16050dfe030c0110050c -16030bfe030a100309fe0308022d0508fe030714030664030401100504fe03401503022d0503 -fe0302011005022d0301100300fe0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b1d00> -] def -/f-1-0 currentdict end definefont pop -%%EndResource -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 1660 851 -%%EndPageSetup -q 0 -1 1660 852 rectclip q -0 g -BT -115.200005 0 0 115.200005 1659.494566 0.0000456218 Tm -/f-0-0 1 Tf -( )Tj -ET -0.945098 0.792157 0.0745098 rg -158.102 787.356 m 160.379 829.535 l 190.289 799.809 l h -158.102 787.356 m f -21.06434 w -0 J -0 j -[] 0.0 d -4 M q 0.380357 -1 -0.775998 -0.295156 0 1266.965088 cm -471.528 27.38 m 435.436 6.755 l 471.344 -14.188 l h -471.528 27.38 m S Q -58.695 757.856 m 80.516 721.688 l 39.07 729.465 l h -58.695 757.856 m f -18.464385 w -q -1 0.699805 0.543047 0.775998 0 1266.965088 cm --278.556 -404.865 m -310.193 -422.942 l -278.719 -441.304 l h --278.556 -404.865 m S Q -10.25 623.512 m 41.414 613.496 l 14.113 596.141 l h -10.25 623.512 m f -17.112694 w -q -1 -0.121862 -0.110002 0.811158 0 1266.965088 cm -75.757 -781.871 m 46.436 -798.623 l 75.608 -815.637 l h -75.757 -781.871 m S Q -101.438 509.071 m 70.375 498.742 l 82.148 528.875 l h -101.438 509.071 m f -12.576204 w -q 1 0.937579 0.772771 -0.802194 0 1266.965088 cm --330.318 558.711 m -351.867 546.4 l -330.429 533.894 l h --330.318 558.711 m S Q -0.290196 0.247059 0.454902 rg -161.094 604.578 m 161.094 604.578 152.773 561.961 192.316 543.309 c 210.699 - 534.641 225.316 533.344 245.688 541.098 c 258.508 545.977 270.074 558.094 - 274.949 571.278 c 279.824 584.461 275.645 600.489 262.836 612.942 c 258.316 - 592.989 253.516 576.926 236.242 567.981 c 225.973 562.762 215.535 563.629 - 205.117 568.793 c 194.703 573.957 186.715 586.391 183.539 598.844 c 183.539 - 598.844 177.09 622.012 201.859 659.969 c 182.059 644.739 164.789 627.348 - 161.094 604.578 c h -161.094 604.578 m f -0.945098 0.792157 0.0745098 rg -293.059 497.508 m 316.207 512.684 333.766 536.067 339.859 566.434 c 339.953 - 566.977 l 344.664 591.156 340.164 616.715 327.734 638.102 c 315.219 659.625 - 293.348 677.164 265.715 680.52 c 265.637 680.531 l 248.703 682.571 230.078 - 675.531 217.055 663.453 c 202.543 646.313 195.703 635.578 196.059 610.594 - c 208.465 626.961 239.875 643.227 262.027 641.047 c 276.348 639.321 286.664 - 631.18 293.949 618.653 c 301.23 606.125 304.105 589.465 301.281 575.391 - c 292.289 530.563 241.789 508.082 198.43 520.598 c 138.359 537.934 116.312 - 599.153 133.5 657.778 c 160.254 711.746 268.816 729.453 286.945 734.754 - c 280.277 744.656 213.539 742.957 213.539 742.957 c 180.559 734.364 130.008 - 728.141 104.754 682.086 c 53.828 589.199 105.188 506.442 188.582 482.371 - c 224.301 472.059 263.293 477.992 293.055 497.504 c h -293.059 497.508 m f -0 g -BT -32.000001 0 0 32.000001 1361.895445 368.012451 Tm -/f-1-0 1 Tf -( )Tj -ET -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/algorithmique/diapos/graphics/Logo-EOLEienne.svg b/algorithmique/diapos/graphics/Logo-EOLEienne.svg deleted file mode 100644 index 7a2c713..0000000 --- a/algorithmique/diapos/graphics/Logo-EOLEienne.svg +++ /dev/null @@ -1,779 +0,0 @@ - - - -image/svg+xml    \ No newline at end of file diff --git a/algorithmique/diapos/graphics/Logo-MENESR.jpg b/algorithmique/diapos/graphics/Logo-MENESR.jpg deleted file mode 100644 index 02d68704027f8a225c05e87cd8888e10b501976e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9572 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 kPeX(!w4*50O%Ux2LJ#7 diff --git a/algorithmique/diapos/graphics/Logo-PCLL.eps b/algorithmique/diapos/graphics/Logo-PCLL.eps deleted file mode 100644 index f151afd..0000000 --- a/algorithmique/diapos/graphics/Logo-PCLL.eps +++ /dev/null @@ -1,927 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:27:36 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 3 -%%BoundingBox: 0 -1 300 165 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 300 165 -%%EndPageSetup -q 0 -1 300 166 rectclip q -0.32549 0.286275 0.529412 rg -197.438 160.944 m 171.461 160.944 148.402 148.244 134.059 128.76 c 154.211 - 128.76 l 165.531 139.28 180.707 145.713 197.438 145.713 c 214.016 145.713 - 229.07 139.405 240.355 129.057 c 260.641 129.057 l 246.285 148.385 223.293 - 160.944 197.438 160.944 c h -132.855 37.463 m 147.086 17.01 170.703 3.549 197.438 3.549 c 223.234 3.549 - 246.145 16.073 260.508 35.323 c 240.219 35.323 l 228.949 25.041 213.953 - 18.772 197.438 18.772 c 179.809 18.772 163.918 25.92 152.438 37.463 c h -132.855 37.463 m f* -4.26191 w -2 J -0 j -[] 0.0 d -5 M q 1 0 0 -1 0 164.490509 cm -197.438 3.547 m 171.461 3.547 148.402 16.246 134.059 35.73 c 154.211 35.73 - l 165.531 25.211 180.707 18.777 197.438 18.777 c 214.016 18.777 229.07 -25.086 240.355 35.434 c 260.641 35.434 l 246.285 16.105 223.293 3.547 197.438 - 3.547 c h -132.855 127.027 m 147.086 147.48 170.703 160.941 197.438 160.941 c 223.234 - 160.941 246.145 148.418 260.508 129.168 c 240.219 129.168 l 228.949 139.449 - 213.953 145.719 197.438 145.719 c 179.809 145.719 163.918 138.57 152.438 - 127.027 c h -132.855 127.027 m S Q -q -0 164.491 300 -165 re W n -% Fallback Image: x=0 y=0 w=300 h=165 res=300ppi size=2580000 -[ 0.24 0 0 0.24 0 -0.629491 ] concat -/DeviceRGB setcolorspace -8 dict dup begin - /ImageType 1 def - /Width 1250 def - /Height 688 def - /Interpolate false def - /BitsPerComponent 8 def - /Decode [ 0 1 0 1 0 1 ] def - /DataSource currentfile /ASCII85Decode filter /FlateDecode filter def - /ImageMatrix [ 1 0 0 -1 0 688 ] def -end -image -Gb"-V#C$t`_Z+TWTnl<<&Yt88b,Xs2W2ka,:g=(M65>*n8eDZ2(mhN?N"B_H["+5p+.A - <))6]`'+5R]f?:_V:#om[bNcc\tLR=!98HgXVBTBGt8j6i'dBCB!VHZ0u - LnW#DWd,0R#dci1=3U^ZdGoX-LFj.hBC\rto0E=uRLJqe*Nd:%%]!1bkYap\`u6@:BmK-Uc - 5g>UMEJ*k$.Wb'gn1*Bef>o]]:Gf<3sE'j1,Z"98E%!&0DO@_$gHB)L'Jd6!Aj>dd-Z_$Ql - d+#\((^Rd`c/[fRU`nI`_piL1([`;HJIf)B3o]8[)<\0UO[:\OWQsK50rk*LSHE-6H(]XO9 - !:U!!3I)DRYO1(c,'*K$Z_hXXmCRIJh`4t(:28U0V"0sgfaIn(XcMmBtP)dsQq(cBtn\H2 - -ejdIEsMkN,QH!<<*"5Y>p3hSflS@s5hHL[>Ke]mN)Ki3l?M/+8!@)GsdeGPc7$nF4f8>B` - KSSN1h\h?j5_!!(_jVI]&NHW"r`s,kM$opdIgQ1As^O41hr(fC25`[kI<^ACIfRIp,&e]/a - 3!!!!592!Ng4*5X76qkD[jh8;)k1N:RG:Uc1kEcj;q^`)F]/=2%HqJFjlE^Qm!!!#c/gi%@ - k`Kr0(@N15CNtoc;jI)4o!!?so'>tn[.0o?O'M\)ab5S"4;\%u!'n8<1F6O,FSrf0c%?8Fj - borfRLUph%NDc/FRI]^HVa4c?iU0,!&!GT;Y&uCZ%2qf'L1K:!!z$G*=?SD2;1:qmR5>? - \hkb/8-_Y@)?*Lf5KZ.nB9C#ljr*TE%PGHZe#)BHQ^=D85";1#r@Lhe^MUT1*Nrm_,-TXSQ - `:!!!"\5NV!0iXVLg$/3n@lZD57Lq$9qm6#N'i49#;:Zgg#WBQ4@!!!#/]GoJO2Qf2&k1B) - 4/]T=/42duEWO;d$OisIW*PRrY2cp(\!!$-aE`2IcLmUL,6Tc=`.;q-jT;?\jOi%AU=M&>* - NU,@D(]XO9J - ohRAcLRgDP:kZfrGDT8!!&\9okUP$(C]Lr3H^deULXE.,!3.KX1X&r@PAfc`s% - E.*j[@\0@-Bh4Tk`b!5KRecWln:gP13,3Dk(^+N3Dao:!="p6J>fY,d"9!<<*"YYf"Ep82s - ;#PAU)hCiD[R\;JBBQ:DLB.AT!&3^)l,t59S%`Vn??rFk`(ojnoFD@d - 4IL.[ot(Y5!!'f%V5It.MqmLOH^=4,6&^9n:J!!&s/Yup]fs#FoB6I/-dCB>[%e&oSSDs625qbC>)+#!Zp!8puDkuhe'mH - `SN](0/mL_HZ;5GtW>Lri36;Z0>o!!!#i^Vk1pB22aU1J\>)NL-RCXQ^ZV?+cm->mgW4!9? - qrNh#\[]%F?OTCTrc+YK#1NCWi+>]qm]U?ZqV!!!"\J&E?g45=J2o$ooI/tG<,6=P,Wo9E; - U!!'fH\N+r)2oP^B@tsR94X'VJ"*t,hgN"PmO0T)m!!$+E1F%6X6qm>M;j8s"$-AP0[e&"i - jaUfPjf!X3!rr<$c7V7CCJ!`MYM+q:^5OEbhrgV=:0\jSS$!(u!!#,X7XEY6d%0f-66)LJm - /rY-h49t%Xniq9!!!!YMp..H'bN00WN:KX:.Tq1kI)&@_fjI.!<<*r^sPpaEN4E:ApigtXm - 'PfWilj3!!%PEAS'sS>J."XgBl#hjb/_Bd\U6bb%5p?EcP/e-NF,H!(Y,RZYW`bTUXPDj\' - S[Ldl]4T"8LN+U\f_"TSNf^33oQahHZX<5/8WKG[DODSPRpMGnrbzb]bTjEQF44PV9QR+ZA - Cg5Kl<=n?hJ]#QOi)@#d%@0)H)`XF-F1#a('j,G.,I=nNL5!!!#'h2U`7;^XuAo'fSl\gE) - tP1GU_cBtmq,ro9(eHGpQ!3f49:>UkaR#[cuPV9$C+f<;\Q%+&2:2U+A!!!"#&[O"e].SZW - (XdsJ]B9!ne+^j-W4q*g!!!"&cCDI.CsYN1Me>A4_r)*YUl1,X1)Vcg_$D!!!"tOI;4oHcF(V:&'Mt+YJil%bt*S-DT],DpHSNd'2X86!'!!%QIn']/o_gN:L?N:a+>TtDA??A1V=nQnF!!!# - p;dQ&,q9n*dRuL:ZmNmOr:cbs#]6_G&m]$Bi!!%)24`f^lIHN"cmLhik1d_Jk4eHsnop#pc - !!)g\DJid*fZpp"7k7s.&jfhai\D--GAD(kT'E?p!!!"(f]eSkhS!PN?ec8\nkJuRS='q<6 - 1qVp!!!#%-RU9#FRE0N1d_O'4lX>a0I07qA5lq!!!!#W1/@amnV8/APV6SS+o++rH3Tp(Q) - +7k#64`(B4nLI[3?flm2)O^Y@%Y[q**e9'-=S<09?#1!WW5Y_3-G,)"Q]LjU5-V8:eq!^2k - oGqd0='!8M3W<1K;Q^[h%I+f#+86d'Ib=7&q7'a+L:J?qe\OZ)Kk--DRRKTH6VE?Ps],Loj - `!!!!I[O:pt0'rb*Y>,BI7&3JfJA$:B<*pFB!!&Z]G'<;t^ic6.e?;M:Ia7,V-U:ogihA8B - k/Q2H4Or%S!!!!Ye:khV"*t,$?]Gaca91JYB@b$0f2Z0,!<<,X+PSdrl-OI@nl7(]eu"/d# - nTV(UZ]/S;/rV>QN.!cYck.0S>d/GPqP<-+iId,,thLQ<*q]f!!$CCB2;n6U&,8[CJI2%Yp - t15s*!PSA^sjY!!!"dCua4Om@0)4^=ji#8bf6gX%-F/2Qr0AI2rIk!.[)8ZZE%'?_r.48I- - K&R6G>-:/7tWCFT;a!2Nl1SFTUNfuhp4KFhTb#4r8:FRb+N.k:T"!,QarhoX/\-R`>%&jhD - 2&XTnXqbO3*^&e97^cE7S?f?od[drod^7HU'&CVjVDW,"c`J"d%!!"Vp,<]hdn8RL484!Te - CI\67-oEkLobA8C!!#(*S[n<>fBLFZO+\)(J;DD)q8@'KYIac7!-kI@J"6$!oN/bE,_Q_a` - N,:(J\_XbG4>Q1]RM@J[9gurmm'!.UNXJr0.[C`dZMcd(@W*@07=))'1ta6KIJ - N)]-cV^+pmEmAbS3Rh"nCMA(pJ"+*fj`*^$AJeRj3DShl0!/..ma))cEf`jH%?KbS\#b2nlSX;nVqG%O5;V$kn9`?jr/NaKD=hn - kJR8`NkJ%M%mTrAQnr5\u?C#*=\pKa\T2EEX5h27#UQsK - 5p:0l/hbZ9/kg+G6?j2@Q+GATFQD"4[mP?*V8g>f4_SrM77eATHR/stGh(B=HNIaZ\#LCIL - ]I+:`W/a]$ena82Kd^U%N@6:6.*(rD<2)i!0/B]itZf7%:hmiBqlkpa2DscCqMXk7CS1m;8 - /kAX[<.21V!!)(I=0JFllT%o>HB1$Q\p7!knaiLNZa]:WMA)Q1_M9'0^\"nWj$sd7YMMKZq - M&F2(4OeG]^g\DS0:,hQuV5.MX&Y(!!"-K3HOJk-mm).Tp[1UD:ZH54G'EmglE9NpI[e!If/M0C++<.9Zu8-?h]T11PodL(F!8o - Wp"`IGUKHk**Q&"7Y!HV=1`*?&0Ye:H>/]\o^=48He_)Bb2>oo@qPhQ(OA\L5[&`OdhiU.uR(]CH[TYps(Ordb*4EJM - i>5(2@2//F.'0uW>(TuC-q-RuAN@tod%k"o"X!'igt<^^D&UjR#K%&S1-Oi)UaG!s;\BBQ9 - YGMqgC1U8sCO8\l]$ToAJT-]iG.,Uj8<<*"qOGUBlB]#Z/=(T<@\p'SU*k(\:[8b[h%:%5U - M`3t7DYgBXGibhX0bV6pMfWq6CFB/_:_8J@3c`jcjm+Xq)^"PE]=&gAc74p?Q'J[ac%5lO" - Xu[4M/Gf]Z@q\F!W[b&7T>t!IM'_(@RMGXRuRsq^&6B:9<(c'j>RD8(BO[_`,UXKJo4 - pd/S2_&0 - YOaH*@aD]ji#X7#OKb!N4q=@DRQ+n-VrL#NkKBfcF!!'fp_WG]6^>^>\Vfe2c'?@7H4F:*$ - W<)q;Z+.^a5;2SDV#IJ^m`ta`>?%45!!!"BZ#!"=o!K7DPI=hWRPo0YV$kmTT,5;V:7\mOc - 7boW#>\KFU+BWT?1iID!!$E4[4D"Aq[k2Iqds>iVld^[,t7Ju!GFKcG\sbdau2s`.=]O&gK - Ck'YNh;Q!!'ek4/1^s)t@\Up$'hDgt^g^2m0'X4sL'&/ghskS@Z/r(N`[MC$"<_F5'RBB*8 - 27J-fZqS772O4RJSt%LLjRH8@q]klB?[l-bQA1!BC90'*Z]o0WaXX$.O(!!&gb5+1Knl*#J - GIs5JN_eHqdV&1YaAEoVj+d - -N[\Q_m*kReT[&E2ci:?QhCFrcLViZ!!'h-,i;/iY"PGYePq*ZGFr#n&+[P!jBL"nNqMg$? - 25GA^o$;H;m0P(`m*!!!!9P+.[0bM\)s=&9&SS_Hnq>lKM'rDfHkJE(0OjXck8X^0E'b27 - ^Q0]H!&S'(s?!!'NZ^kn2rf1lK$SrNXL7P@P/:02l5!B%#b:(_CFjmU+hQmq&sWBU(W!!#' - GK^M[NC+`_c(]Oh=IFnQ#!<*M6-LB/E5l"$OJ7LpKi+$bS`#$d?@.25+H!63&d\U6bV2I93+* - .D^JH&5;bP\'S%-;9#Je0S2s2a;On.B$CTU_P-Y^,!W1`<.fc!(b-]A%8'W>V^s3<0&pIi_ - bV4![f$lDPh9\51c-.k.J/38f*XT1g0M.p2UO\0,>7TS<;$)?9b6DJ%ffjm/Xg+"pFiNGB' - )51G)jbK\:9'"Xk*(]71]m[5q\KBf3@!!!A5bo:,WYDDatHj>F5:.eQ8W.Fm)6K5Br"6M(_ - ;s4$o=E?b#T`tJs"]Rhd"`EU@f6$X)[s$:c$_O!mb[[n[`7q;?o.eDFi;#?L\`GIE!)VYN[ - FD?"-RiC1jl?+G$,(AIDkR5UOa-Nc)GkOa"cZ - +>=%^7mM`NhURG?[6B@^cd44"!*O=7pP;!!!2A[#(hX=MoNhIM([pnaW3sY>>7T3LOic2pY - I2>Gd?dV>:H"!.Y,Z?0"32/"_3WL[^?PC!J&(O/e!!))$7us0 - Ue"jcDb/"S&"n()adZN0iRju$<;ROA,H - `6X?>P1*DQ?D*t'S%Y"ZTNWEl2 - qCo!:lCbEJ^feN)[O4a\VFK\L]lq;tY\Fn6d]el+[X5W;JuETCSU-W#k%.WW3%7*2tkQ\p' - U;I"dc&,*ltZ=7&q7;uu4(bHlj)D=VM=rh>Nndc7AWia4+6%kI\\E-W5B?R(=X;80K\2sJa - S+R\`%eOL@);*1N3g,C+Kr6g^G,6!;5(K:D8J>AGB1!3QTq'Ot3B3i'lH2*)Km8SKr!D'ItrXs-[^8>X;\p7$4+jg8i^]n;(LFZ`RjF_Phm=/O48_ - "%ZJ2qd@`I6EKXRZ`l5)A+C`I'rd!!$,4c-!`Bf.d"C5BNN;iV[iK#8;WU:7k5Fd@%2;RZQ - W(q1:'r!&3\K_PO\87k7r^\9^US>EY,?V>=R$0]2P=W<7GM/&008HJ11nFo5pIl@TBC!*m< - h^5i%!?UpC+oZ:n>o(Y$\ODftKV=3>=jd-le:\RUH5nsA"kR/6@>kttMV;p6B7-NF.WXgE+T"V0#(]mOucf5hQZjT - ]Z3HEpapBfjfWW3%WNi7qmPcmkf2uS%,?+YD]oe?TBhM(RQ^ZuN2r1`8`q0ctal=1)"!1^o - [`+pAsN`3YOERFQ+cVI3Y<.,/U3/a7T)2%d@.).ULB_[0/!!!S9ZZ>p8$rXepERB^a&WrWT - X83Y7E%[QHfo,!2$OPNTCrklVHW;.Q!!&[Z=:Yi('hiF7aNR?o^-`&(zzzzzzzzzzzzzzzz - zzzzz!",`i-SDNWL`s2Qma,+e#7q'dPq+:f2]X6R-13I*>6"X'Vm^Ni$3-.2Li(hVl%nU,L - k=j:itmrPr2uMhbP%kuJ,fQLcpCBj#qZlacr+FA9*G:qE,r*V#Zr@#*!%190Pm - K#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4F<@5 - (P!!)H.cH]HR"oJT1iZ>I+RF"j*">*V#Zr@$UEr5Rtqr!);cC[>ii9b,fAK(*[MsAin(G8t&d/PDLWa.!&gGX!,4DNBEc - CI&3rV#!,5Q5o$qp8705tdIL/JUn);Ir0f"TTqb'bs`K<2ht8Uft0@#mgq3gYBf.)t,FJZr - G(mrUndM%g4KW*jen7cr-P?/QF.);uhFuU,,",fOO[*PH%W`*^>,/ITrVE3WiQc[:lNpTqt - '^>,k80W;loE181O2$!O?&BW1t3`sW=c/R#N - [7S,%5[VU&-[-?>AV)eodWjQN>181O2$!O?&BW1uncX^X"?G#=IV+ZZ%M7h+=t5c0V94IW$32\(0/)ehn`(2n&X+S/!TW_@**:kFu_'3Zjc\:fD8#JU01gS/C#lurZE]=X!X.L+e9AP6 - oYY.aR=il$[kDJiM";!dc)S[r'3ZlMTV]eaQ3mUE_#Z.\[_d_+[r1"_ - 2E'.Aq0RI8CM`Y-Vk5"cA4Z7M`?4dYMA@eT@)2p?C!]bK">//-ZrEI?;P=4F<@5(P!,r5SC - T4eR]=[h%djHFf7=OA7Ma\&NZ)u`fCS*_7;Z+WW4*FT%:uPi4X@SHt1M>!tS.%""8^LA;78 - &mP/JUn);Ir0f"TXnIi0J[nN>a\Jn)#cYo<)B2C2BV5M\`:kWH\@2fs>>We>`&D5O@Op2LY - FDRE-q7scr-P?/QF.);ugkD8m5u'>;n3=\T4Ojbbn1)p:ueZjn/9?cHFDCkKdd - OA9`BF4n(s6PUNeZlW0Fqcr-D;/_+%3<12*2T`crI-F?_PE!`OJC8"kfE6Xh/16_J&n[X.n - OH:$5*uR:lr&kRl&c["$U.$idpktI'1h`l>U8?"cQ3npOWA:0D!ek/^Y?nm\*?@:]hRjq[r:.JphU?`9bJOGd"j-* - t7Ri-9YHR^sX+!Z7gX"3l@^4!jq@6]/PG"aUMj>h+=t5c0V94IW$32\E\#"QQq<(cf.,*[^ - =gQt0isk$#[;tBO3B9*Cg-NcPV)eodWjQN>181O2$!O?&BW2!i&km5CG:Zn&Ug1HN#)d4a7 - "i,Jj^>Gp-UCD5(+iN5ZrAG>99ff8'`_KjrE?5jkF[6)WD^]+95W7]R>F#eGdLEt5teU$/Q - F.)<%(%*PmK#W!*k+]>H4oWs*c3M<%V+MPW_5&S"6*umFjE&I%8ig>3beHf@/0r*4@l*iX@ - F3k09C;aiX85MHOVl181O2$!O?&BW2!i'("FPKn''e?b.ghLlRL]gsD<:9'03Y_r[;+511hb7JGOP%jE)Bme[ri48/bSc#dm68c?[_Ut>Aq2tcWum0GiB%W - g01n!20S?=?+Y:%ge1e,KS5#H1M?FKgUC%T7Wn"GH1AiiT7?k9>.&+Ys8MmiRPYm=B[H>3b - :d5:I.r[]^86^.l1S9S_$;'H044_HD3ZYT;B5GNN>qcipoIW)`nDAZ3hq,G^'oO;FG^Z[u'p.n\l<=Y3+m/9((MPNc1n2Bkc - %n9mc?BpY=QZ%.89"b*Dkumk7kH\MGtr\T?q_q;mq]2/3u].<3^!rqPLk1M5GAoqfQ0Wi5h - -&J="R.TWX<_:QGDl-`mE?:H"#lU\B^RF"j*">*V#Zr@$E#nCXJ_FG\rUq;BUp@bqnD3m[Yn'\%*;GrZ\o.cA@d,06BN - KM!)\=_u8!sT/F#?:S]agY6-`A2f6lk`uQ_5Puh:s\LH<.N3d*=(7?1b=A)r-C/qZVe`:rMM'nl#%1P1+8u< - 0MDq_R4O$33(r2satCoKpb*3!/OY5C+E'E@gAs)$>jnn$0GAO9%D'!tW+cr'n[,rhcu:7aR - NGMV,gH#nV5M+6Ogk?#04@JR3JLRXd&\$rikXhb#i2('bAP^VSamkphhs8M#sPan,RPa%D% - N>e4p?Q*HYlKm31++bBr%[qe)OLAn7k4o - Q1TS&!L26]p^cl@bWJPm+kPq1G`7DCh\r9ma@qig:Jh?^3mJ7mFq9d[0O"JV>C#`fjd3glI - <@jor>PUWE!W2181O2$!O?&BW2!i&ff@uVb`qf]3H-];0SP[e5RZ"EL$(YVk8hjD!__d[A@ - JHAVjRCDjPtMkpMt`-7L5ejioaA[,8%BcaK-Sn35C2q=s!2*Up;/LS:QeKU)rkBW3b\V#l0 - ?E(inF5('m.>.n4RG1qRN/=+kh>FX+N[!6nC>5L<^qmFqd]Y([igY-e"h;$d$04&JLoONao - \ODDlG29S'g!EVE9UK5V=nV1:f,h-"&[YN*cr-P?/QF.);ugkDNbPJ`3d&kVW;#N'6[K@d+ - !6\-J\KO,7pEBRp1pWP7Z;<%r]^/=PP71ae,^Q9rpFE999"gd1B)qORh[P\Gh]ZDG']^ed8 - FOB98+"c<12*2!Pg!@VPP3A/a_2q@l6`3M2?4rG;m8&J)Z;4hLGS([VacVo%U$9RsObmM>t - QiNu'HUr5]I#et7,#WFE%?5*eXeS52BJ<0Z^qd*Sn![r0j&@EtB'rVH2f<2l%s?1-:GRgh0 - \g"E]EXh>C1fU"XAl?IPu1i:sRDV_nM5QAA*pQDh^V-^cWX\+j.#"O.0[F]eRHpU.d`5s.5 - mD=PbI=6NZeZ*3Ma(s;0XlKl,ZrEI?;P=4F<@5(P!,r5SBW9apD)8Ii?bUp`_a__lbr'`u* - Dp$E[VWK``JXO7JLUj9h5t\W`^[r[hL"]Sj83MNQ7=r=)fNAtA?)Ar*^4uH@=sBm<1uV^h* - FFL5(3:7[?It#]6LplG^]4;F_0r[\9:[eIL@,I=[@B6uVX@8^Y?j(aGl.-tA*kOY - ',MHtj?Z-#md@g'^A%Y]_u7NqoBWTpQ75a%G>.$K2)[ADaKP&Zp$.g-Q)-WCDJlV>&&#aNe - lr@AAg1EY9PCD%JsIl"=t0N^"FIW-8WtLc0$Xj\H61,E7M$m-fk6r-*MGfR$@i'NVnlO'fs - Bl3`uinR;`$Rg".J(EF)l;CpKDYej#pQ[eX'Tg8UJ6njiSI?K^ukVqJ4n'?PN#!n8PF_]mT - X]mYb\iV7(-h8p?GN#7i^PROG1*DADiKhhg(u/QF.)<%(%*PmK#W!*k+]>O(:kP7?Ao`n/i - :@=s5fL?eb_WD]Q&*&q?Vgt&T3BB2!_#4H89H:senJ%k@+rr);8>;^#7FL:HgY?\WdW\J@0 - oB&alhamG7pU=T#f3a#5HWYnPou)\#\u0Fu"q@ZF(\G+Nf6"bS4D<(a)tmG>/QF.)<%(%*P - mK#W!*k,H>,iupiWlk]^8"f8@M^Y%Gh>j]^]2%9#iisd[pbGJqtAP\\RW[?7YW\3V:M\K:O - BmD?@'_Jhg9P2dRAN8n%\nZg+f]E&e^r9ZJ0aW+gY@P\$rj?39$_sFm>4!dgHKidN2HL6Nq - X"99ff8'hZhNAO9#n!1.)&9?kT#M2mT;3HF12YIpSmjukbLmej:D',)%%n)Gl)TP^<"9h@q - (rS?%7O$/f#Sut/>\Lgg'G29?=cBp?(L0`ZJGH^_E[;+6t@9BQIq'<'O:Goi1XHm&'H?JUp - ^AdtE)l>".-1-%R(F`8Cg9k]SN,1:RW_@**:kFu_'3Zjc\-1WRqX1uam^^Z@9q0_9>8J%j( - ).JDj5\Uf;lBKbl\e*-4k'RjT+Y/r@FL]$AW#m]F6:]OH1sgi*j%N_6id[C:u+-Yc=NpP(Jb55OKfRl>3@rr"eE+V*0Wk/ToaPAO^$!qe - 4ZgV;t:L621!$X]r9#).1+S?Fb*q][tRI'e31EGm19<99ff8'hZhNAO9#n!12X%QMT!!+!! - =[^u4"fNutPg>-VPUjBmK)ltkKllTY$]`0NH$g,(@u]d>*&<`>>qkro9&(b)A"2;KqTdD;K&BM\7=.aLhT*U - 8?"cQ3npOWA:0D!ec8MdGE6+&L4YQ0X - 7J>G&r"Ws8D\g?dXY/O%M+>>0AmD,R0#&Xc_9>-q7scr-P?/QF.);ug - kDVRP&QV+T:==0H8_T(D-k^Nf:CbhR;EC5j,h9R.4"O'S/6`k^Sc1^t - rT1cqn%ooGu(%&.'r:A5ij3+p]p$:5!pKH;1n])`,k80WDJ24.MGu8!4 - W0fQ>5%/XD-/^L8HEWi60BieU9Vq?soZ$+==Nrh0VWES!TJ.oS`QB[;+7?hKnA1SRog-DlG - HG1$608[P7#glitj8AO9%D'!tW+cr'n[,rfs=SMtJYmZLoNTrYbfP*0pr&fr*s4c"qH2'aG - 8H`4f8$ig"^O5>&dAB>J+QW1kX++C0%GER.eQ>``M:7TZP60Qt+U]"O!ET>'\]E6ZYV94IW - $70Ab181NGJ4jkDQ>5KeQdO4.P$9[34iG$\pM(4J@S>5l8iV>"]]H1N6I!P,DFm[m_EYGQZ\(9D([;+66#;NK[k2k^hhT\VKCUp!:-8[PYHe3q]F6D7>^*tZ - ,dn`3Y*i+)Qju1Q4g!EW.6;*"FZrEI?;?=QZ3-e/6e>SN'oZEFLQ]mVCoD#;aWOeA!uiI!+[LJ,KE_l(fK?ks/TnjZ!SW0j-rD0K3SEOd3Ybhu9PCD%J - sIl"=t0N^"=J,eUIL6k/N'S1YI8`Sfs>>WN^%7+,i*H^>H1\aG1CG$DJj@^naSO+[6bXe7J - HD\@df=!5Ao6NVR4j/L^/mWSnm]3P*Z>FPZ>&$Z%9$sA%[E!R - lq<'Oi1MrVW;k^&1KU)rkBW3b\V#l0?E:T;E]_q?D\ts#`RPd!^4CcA>h2t.l0f%8PmG#%h - .8ls4<`YO&M.L4.PV-6FHU'MK[k1gmfW`uMrVl]_\hC\J4553QDG!P:55F7Qh+c,UIVH?CM/`mP>e;M(#?R(>.*Xl9:)_#goQf&B?hLQ)&=Z!AEhO=f"V41KpF - 2%=t5c0V94IW$32]pq-0ktT=Vd>'L)Nkj,Ap*K4A6&I_Bplg:CdOm2@OjVb`r9*UW0r^G`g - XHhQgR*Di\@]mpBF]*BM^.$r^)'h;$em7 - k7iSn:hAkN:41BrJb`BjH2sPN#?-sNK,Z!^-$Q'%qXs0d]=WtCT/1,?nNAbKjN3Spm[C)*c'gLo^OCTSG..+3\[f8^ - ^EPVn;FQl%I9c4]O$32=f99ff8'`_Kj9=.YA4?VD,?RU$^F-s(6\+]Fb'BO#kb*B;GcQ58tGe8.db*FVpI$"0qk? - Bg]k09A7**IBU[VacV]"2Lu)H!"^`pD6VQgkC>);N-IUOW=C@eTs,!uELj0Q#ONZ"(fa*BL - QOn(nKm2QTr]gASe[rR\g`-$Oa<-5tu-n%st,L(.jH6 - ocP>jb4LW0R`EXf;r+2M'HN*A&jTmqWO[afXnauePZQj-9,C6jiWjpdu1;cQ7&&A0qHImOjabKMZXuoN^1MWTe>XW\MHI9[8sLmj%N?3#BB82PP$WJ!-(BpOXDXDOq'6:/PqcTZ.5 - M+'j%g#M2E78&mP/JUn);Ir0f"TXnI=tTEN>JIIkrqYaEe.eo^W?QDmg[jUS)gQhQ*W>j-1 - H=r[%3'3BB#f@0@q0B4ECmKKc+7XO*jHEA5Y6f@;ekJh3Pan3k6,j:6:f*8DOcLMEB&ji52@Bm#PMC@")`MZ9>e. - 0=p?iFF>,m[SSF#M)BtoMtl-m].Qdd-]W_@**:kFu_'3Zjc\-,lLWBs?TcJZNkc2%U6)!@f - hI`fgU11b>R=0=CT:"&7hBWFTt92"mMp+BCIQmmB1&*"1U[?E+BY&rsYakiZh[CN+@(5q:` - hgRBV,U7(Br:mbcBW3b\V*YJlW_@**!8nJp[&)Up)]LIJ).G\T>/#Rql*4 - <12*2T`crI-F?_PE!aY.ak&B&pA7%o'2o>M%dquSUIK5:^#8_LT,51KcC?mQ4DVqpU&aW=^ - HXD+Y\2:R*ZcBk^AG(s-DJ(0D;*L(nc/CENsQIHZu=k$Dh%YRp8rk;HKqI?5Q"?b^WDZe7n - #kCV59S8!W1!`bn]jBp%<1W\8dc`I%d2=BO5(V+\cl+$+Kl,9oSKeElV_`JXs2*8%T1O4`Reldq&ELl[Tm8kN"STG\DS - AS!/5,`"SreQ(t,peUG+7un]+s5UM&f::pR_)H8e&8.H!fVVB4`$D+QUZ:@ncC[=nR[U7&C - (Ed,PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P - =4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G - :qE,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff - 8'hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.) - ;ucmu-V$gp#qZlacr+FA9*G:qE,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc< - 12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);I - r0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G:qE,r*V#Zr@#*!%1 - 90PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4 - F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G:q - E,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8' - hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);u - cmu-V$gp#qZlacr+FA9*G;3Fm7>NjQ'k%ZN/nhZrEI?;P=4F<@5(P!,t@E)&_nWqsGDA]TJ - GCUj=Wnm#IA]'3ZlMTV]eaQ3mUEa'u;qkg6$M/N%=p4EKYDl59W,03YALBW4g[Q7*V#Zr@$E/W1Du/mPo*U&V0@q==FVm8H/*!;8`P - PmK#W9$gII6;%I^(\5TgIm!SkUP0bb9URZj[V\r+5lc'o99ff8'hZhNAO9#n!*=1>r;"L#. - mL84hH$pmaiMOoe^FY/5$Fs[BW4g[Q7GV8cTeJ%.0/te;Ir0fKb - CalRF"h4_"h+aQ8WU6:f2cFMj>h+=t5c0V94IWMYo%h4oNa$6[SOn=gr9SA7VM2cY_FFM>q - nmjN6cTCt5ioN#FZpTPd3kp%;6If9,h4S+N - OP2>$N]mBA:%3%4lhnT2C"Ug>45H]>#^k7>qL:Xq+Bq3E,ruF=Q]]s24YTm>O9PCD%JsIl" - =t9)uoB4FqQnY4?]mBE;Tu4AI'e4=hcsb4i3B(j2:q]63Ir4)W]m0),g(ebYUe.Sa$,F8gW - A:0D64$hq9PCDEFaNiKC#?XQd@s'H/uSFo;5-J%Q7\l+U/^S$$G'06:6dJ>?K59B;PZj&E3 - KGAZ$Q*.0k84Fl-^k=3niG[")pJ.W_@**:kFu_'3Zkj='T"ckF[6A@QD-ZHgeYg""9j88kM - _Cg9n==C.LmOl.\p+9O,&Eh>$O#]6h+=t5c0V94IW$(P"\rB1hA9OHTlF6O.opK.OsQuD[r1$5g2@4".\Hnr<@5(P-p^Lk - #qZlE-S@#Hq\Mr'gV%sClCCCqo>;)'BUk:*M\hG1Lp4pChgG#imC*0L'i9LJ.MGu8Pb=kqK - U)ts&f)6`Z=HO*4/e1+?@#39:8>U]N/Z7G-cK:tmFnskg,(ArE)*c>RF"j*">*V#ZrFPs=g - M_N]=XQd61k[+2GEdmUVP!rc0aB$qZBX87j!/$_hJWogGCJsE)*c>RF"j*">*V#ZrFOBIt) - t87n23bfO@06K'HW3!TiM-GL$Ru\od0W4*K8!UU4"93RL`96;*"FZrEI?;W/6T6:0``Wk5l - iM%V,9qN8@3l`/fa'PP>!_08(-:o6pS?+Y:5H],71^cBe?AO9%D'!tW+cr/j#eui:o_sMh? - +nb?o(ccWtqXs/MT0Ag8RsSe`o^qdN7urQ-IDUXD?[r#sN>aYq2@+O$KlYA&/UQQ@8'7)I[ - t"F,#AfEd$90D:W_@**:kFu_'3ZlUgk?+PSppNMX8;)\r6PDeS2p2\N>omHEoP#oET>(;rU - 56Nq_tsX)IL4+fm^O;(pnGOf#*7R4(_^(<5:NA;Ir0fKbCalRF"jjbUaN&_hJV[pXAEXX8i - 1rmkS)]Fk,*qpNA3-d\M_&3s)o!=t8I#BW3b\V*YJlW_@**E+Un))FFW35TfX#5:OX!BEdaDY1ccO:cO,k)EX^Ah,.On'g_p - P5L1G^i3R_0*tm&ZSuY$JZXc>MCF:&M>bVqR!`,;1_=jN3U$euY8sCY"_!;Z["%VG3Nq()F - >ga,UND/ss@5-Z>te=]pLj+'uBlfl+Y(2IXIUWDf^PGEDU'qtBDM:/4hIX5!*6ZY.UAdn.3 - g`EBQ^djB'(mG>N\r:@I?kJTYc27IpCA7WWu`emi6p?^Jl6lJ:=r9_sIq=.H[C8@p"(d"[f#3M:[6H/oBE0F[Vjp4H - hZr\"q;4.f]LGJ*C$faTr#nbQ3npOWA:0D_Dto8HM,ZU+#VJE7u\F`HEoTM$"q155aoflIDpO.oo@@V(Q,h]SD - 8tGeqAacH'%(gpeNYT3]'PIH?_q*dF#`2`J4gPq+e1g2tQ+0uo=s\)71V3,p-)4T*fdW+rHhWt/Y#A4rk005@?Ua/mIq`qc:mHW,r9=]*)Zk(jG*e4+XO$EVgi4smo=0?X1Oae3OW_@ - **:kFu_'3ZlUP?OD0\`]P?^)X^Y<"H5<^3&V&=YgYjbl\1\L_[3 - t-]=8TSO[YQ7P&+>KA3nUirccUQ'Jb%nRAcWe6TZC1M4=HogG,\V-\V#04):>k0U#%+44lH - PURi`Z\%Ct?[_UtmbPM:-YA%a:trEqXa9XCn`Rk:j_k=(gJVlBGOA_j-Bjpg]4fTdpYL8Cg - +A2r1N_j-.p&lE^)DLWHLL4X^OO+R$16HS'.m>W]i4.GWW(1)mfWk#Mg('VoX(/PHa[kM^/ - d+s]2bk1WF*DhU9<34J_8W-YJ:(JABC!8D-+BkU=/J_A*3VU>Zepi=K>ISgKob!8sLn!jd0 - =lgU>AF\J[e.PmK#W9$gII6;*"Gb08'dnr6VRnhKo44ibaea:O8?Z(@(\%R'C(,JAHu[d&u - 9%ho]l<46UGR@-02e##hQ',0hN-oj;5q!d7n4uqgJFm@HgL"b[[4am2!M_DeXedgQ3If9+? - ;,NL36UQ6K]SD8tbRBCD.FPP8:RU+@3_rCS]mB?E0>/X;h(iQa9URY)jqiWuVb`ZZ>E4IN* - AA`a`9+UE]6a.M3"rCl]8d+GcC\LFQ9%Y[kigRJH - XQpmn1]7uDiWU;\DO`/ - H6E"(qC.q<[D)60dQC8:O]e=-^16-=Ka)HYB>b#s - Hsl=EJqJ[tHgEIc[U-+A\VGTL_]WrM1B"Bpeui:/1F:f&;Ir0fKbCalRF"jjKY4t1F;G609 - 9usNGF*,(HLtnHcNN)l1o%d5qrZu#fJY%f[a[XQ9''8q]k-W!@[BN!ZXIM6h,8/)'u7b!C0 - FeEZY%J+SRI?f-,RR;D4$:QQ?qoM1"1Uk?EID=KS0II?4@.H<2!pKRV(BM7pI@Q]tM[]hQU - G+N)(QX41fRscK7ke>Z$-*Jo#d"Q7lVE^b<[M&6C7.s'ieM>,k80WDJ24.MGu8S5!$bQBAr - VmaS5"lC$MP@^5Rie&U8*d+t-IBk#i1BC4MQmA+^[_D^1EehJbad&kXFcC-W6L;S"l)`MZI - s8MohQsm7/`Ki)[B'juq[a]a&p6k\K^q3UK>4pCE;qAZ$NbPIZX]i-nMpKY;2a@)q"4QGAI - J\2?'1bnpDqqk-kn>IelY6tN*,P!M,#5%+*dP]rajdCpe(U4WJsIl"=t5c0V94IW$>6\^gG - U;BK[#uFX.JRhHM6]>qJtd@/R,ZjiCe>Hg/MBV&$YMEh5:4VR;3>DIQUaVi# - ei=JGic`ue>V8RY8OO,oY*;R8 - 'q?647>-t5.Qi4"eXI!:CfcDs>o('*Z-qU,/b(Q&f-"s85Tr#WZN#=E@GEG_)>WLtmrnqYR - a,d^MEp.rS#7e+aDQ__lL$md/>ICetCoN,+rC1qod\YM9OkW8MC!iZ/]k@,W$SR;gCj]9`> - 3_qWQ`=&dB)8Cnnb(L@>BPlEfi!MA1M0`H]fX0Ce>cM!HVCD1P9pLsd&gM2HVE@8'e31mHM - +;Sq#gg'fP)7f-;Cf50M/"8b(Q&f-"s85Tr#WZ(g1XRqQ&t@4U_++ghn^C8u)5!1WQ7>Lm[5U$ - njH2rIe>Q6PC/s*Qr8(/\IB:!pO+U[%dn`3!P*0:%H?U3RFI*HT=__IK$Pk:tC05JlXB;a% - 316n^&\>fnB?89>1]E^^cTLem_hJW>aBcE$mG,7YVl+0["q=mep!niR@DM#0P=_LFb(Q&f- - "s85Tr#WZ<3KV6G>Vf?%:JQH,9rsqc'ej'6\PmaY#hg`kg?.A/R#MugU8+aFt?q1<3-1+Zt - N=26j\Ku<3BKZWlNTP[T"t3Z.f6AUQ<.bk*mM]LA:ZCc^H`WpYUI-Z=M(Q8X'#Ckp,dmY$/ - 5Jp$:3_+"]Y2"tT$E]X,:kB^c'gM - !R6>idA2-"r0eSV:ph`Dp/pn?n2iX^sV[^\ATG - PA+;X$T->`!P"o;^\V0`]R\H"G:d-j1p3J7RMiE_HSNpXnU;<>_55F9'ic6<)fA.O'\T[A/\1AKp\?_TngV/+5FJgDX89Z - KP#5n2LD`(!W:J]l]HabsYT7?k9SaX%FT5q`"DBF\#.MGu8Pb=kqKU)tCP+.qVA@Z:==7,@ - sf@SWqi_$:a]63F_k006KN?]4qU(81/DPHkCT:p-qmEq\amN<)R&QV&.7MJ!M5JOO;cTZ/1 - nUDGSp"@MA^MJ:1F^(kJ-Q=$q*"M")dh)2jp`tQJ%3+Sm.GbH,9&I:,o3m9-V>g,OdiX);E - S[>&qsHOu'@Uft2Vc_QgXW?+`Bho-L%=?Kc^m:(UL5Dr-hloV96VB7pYUHZ3&fZZqYg0GlO - G*Ke%0\f%,M6DWjDZ->JGplqqqEkAE6(d*cSc5k>'hf;c6N3qn6:IG0`>GS<69ZjK@k/![t - 3-g7Qu&Y[Bc-EohCuC>HJ/mZ_f(>`BXZNZL?`43el+D)d"Bph-4Ip76Ea1&b,6U8?"cQ3np - OWA:0D_Ps%hIG2bW-R0j'oh>DOb*=KR9:+5#F30Rk=05Y;AAF0D2]DJtg`qkBP*hVME0@** - <8k]J$^E2Ad[cjUZh*>(1\g:9T76W.GLORK_WOI^6rJuI+_oN7YGiFQqf<,u2EbFa*?@#1J*/oh7HLtn,d2FiT?uU"\[+*iNEcO3am& - 3!)_5\$-04)Ya;/8q@s*]EOWm4Nrqbq=h-1 - =-C$YL,#P$076T4k8.;5\9Tqt'^>,k80WGj=k[VX>sDE[U81TIAK^BP2iX?0jq68M_&DVMC - (6h00TFbfAA^V@Scc"a5-h)[g4/(3$UHd2?2k2k\Bq&NC9=I?o*c#'GhBDC;,hs&FjO>W)a - XC&`Vp/$GN(LFRgSaf9@6q$66cerkc*8FGq>e-U+2;=!'.pfl5dJ0*dIf$88bA6V94\T[kJ - ).^%ll0lUTfo(,n*b165`\gU:tRVYcL=;56Tp&# - 0$.L_iHsVq%H:b(Q&f-"s85Tr#W*)#:jq-oJ$&q-RUUC#ms-e##jGG3#%Ghf?gm7f'Z0t>oD;3Y"BH&mJe/cfih*!e[ - g8[^_Q]R<%gF0i7nk3bRmGG[np6ahjeK3]&B:m`LnJ>P[dFLH]M3]V)=t5c0V94IW$E#Xlc - 5bY/=2Tb%e-R`K(]Z#%)*OJ%4tR,ZrAG>99ff8'i&>oZt[+0Y%GqIWLi7%[;4AhGIG,-n$[*&f[s<^ - cdoOg>WYM*Kt]= - V]fB'PD?QBnD]O+hKMda5-UV#?qcq&eu1FRIr;[ZP\?G^+JC`fJ`P=&8_6D19^66F9^[cr- - P?/QF.)<&bU;:QRF4EB(SQcHb"SDj'X.ofsUJpn@EV@Z?hJSut/8\Lgg+qsCl##OKm8McBl - Uqtk.>=K5=LK1"=qV2?M#H^Eb?Sp3U!6bb?11"miX2W(*;`/##Z,>Xab8Tt_9[T)(stR9#_t!j/0-B*=6Fj - $(&]&T17;S.,>W]ab=VG402E;fY+\pKm9S8;^aqmBD>gY5qVSpU5"eJKGP+@,hEX&lKBoCR - .>o@Ua'GMPP)fi":rBqi9mCX:5:%3.?(HZ14E9s[>_c-4B_>e%$3YhHi?]WGDIDVB`--rE> - .aY/fD6US7/:pt1C,N%""+Peu^p:gllgt/]DeZ*E9XKcVg9$gII6;*"FZrEI?;W1TP:S4f% - [.sFVO&]!I5E'tLq8A+'17Pdnj+cu:G3$`,]&T17;K_GQo>rAP=>f%,j2Z:Lbk(#D)]?f$/ - bS&aks/$k1W,I)LgQ\q - AY1V$^5&<7)b1p?^JDK=q3[le6tJDVWm!\Ja#&?U*oaI/`s)2@lCJR]8N\p4HqcD;1rdj*, - `mGhDKQ;Wa^Mb(Q&f-"s85Tr#W*(qG!VjMtrY@cSRinlsMT[u?Hq5F^M-FUusUDng/>J/K4 - B\mN=6O,l4TP[.L.?='5kP=`Objr99l?@2&sm2n:d'U&>>-RW[??F+6q+mf,eJds'tL\^oBHhp2(OkXKa([B^@=U\&>5%` - $:-SHP^JIJA&s/5XhrN?j#b)n%JII_2_e5"@T9^ZMEY(qsij"XI7W4m'V*+labm<]]ZM3rF - RqMhKuAm\T9(H`_P9sD1r@Zr.]>$_@n=(hd?lt6`jP"KZd!r3UL*W>U7NsAkZU3EWSl;>_& - Zn#qQgY'J(c^<2icLGFAKM_SSXL:.9X'mFehDn5bu9D+\Y5ED&HDr4$]u2/:VPgJdB"0J%/ - --*(j]"R=dcJ,]8A^rORD>57-X;PZhqC'T`1W@TRjW(N*l4fCfLA?"(f-5S48+Pai_Vba94 - 'YAsX=K5H+/n0%*JFHHA-Vp_&Zn#qQgY'ULI[V@Fl/( - GF(Gbl8m"C4%qJG6"U="nT@p^6@H1=A->HiIZ$$A]pASgJdAu03>;]@;/5K9-$*;XDn'eW` - @7/ZOmc]_Oi[e8P)Lj*Aj4]Z@!sp.d#mUe07nue,]XU#WFhjnmp\pLk/GcW9W_7#(qL'c'$ - fUqtga;aYF>&=)$6efo@(7<1P(5!jGWaJY`E#^f'7sQ3p:mlAKd60M\F=.b+,ZVG3O,Ik0# - ?O)sF*7;YG49;PB]._u82PURj4k/E5p=kZa-;Q1$l$@IauX?lWf7R6b3Vdq#U.a+=;Wm[V1 - $YkeR=mF(j,DDVX0O]QP$S:TfWHt1qNfFm[YLS3(i?9?fe@0W*q!Pc_aN]q=NHcZJ99g/m. - c:@Zj(7Imq)1)?]=:Tq:)H?jcB2^lKF.oiSpgnop1.W - s./I/3>Ep0!]Z1t&ilfOrUn - e:n)(1T=+u4%apBU6Dul7S-a6QXC.t6`SN9^u;l0tG&fA$M0(h2>eh$W$Tg%'UnB5)eYZ.$ - uV1nc9l8RUJPM'TZ5Ok4%DdI/`Zd'6!*BSG?(2:(?\o-=bC'Rb0r5TMCp_E\cD.mVHUe-b\ - :AXV=GMbQ5r`l;5.L[k.:11&O$aHJ# - V8tfD/#CsDk:qFV+R#qm'H0;]bCCHg6=!_K%`Mc=mGkVl]'BZbimfj0==?7[FD<_[o,:)'G - Mgd2F_.b@RTQu(!)t0HX^HYKZ].PY#qr\\eMOP'e32Pp%;=4QVrC2apBU6Dul7S-a6QXC64 - RCR@+q8S1o?cE5$J'C=Pqd67XQ:q-3[\YJ5b"_QkpG/6-;!Bc0'[ZuGp8lIF)EZRh;mX]r: - &Q"gk)VKU="Q?r>q@GqY-*^4tMhVS&&nKYG4PI8n]kKZs!SsPe1K\G'-;P]+f!V>L#=7>Xl - If3GFnHOX)baC7m\oc&^1FI<@B&o:cISk6.WilIsPnR7LhuYH0:11':"DQGg)0M%&042FhT - 0@6GP.KX]Pq#epDhYbQg9tikD$6.SZaR6JB[K/VI7m4+JWE_O'OS.VM4F.te#6+giX82[m8Y`'5p@Ks*$$%M.o$jX;e-_6Y5;$R^2fIQKDSk5cS_=Q)D_3gT,5%g6'DR54"&p$7bkPRhnJalU^4/%)Ksh7Mm=LN#`Y9KGoD(8dpJH?!!,9s$B*Z#V_?/;\NKaKA*_,=jqQ@cq\T[ - !pKW`1G+Y>&?9GTkiD@IW3kdOJ3!Wr%_l0g_jV;&X]Y_?tfs7G/97j"_#qQg1!L>2_YZ,#!&4[rP7NI+mqssUHSiqG1'M2R - WL+mi>>\T2PgY5XGB3ad-Q7B5L'Sn@J\"&FpEK_Jor)'s9E_:\)H:f\c5*I?i(+ue9oB&Y^ - MoFA!pu."lk\-g$-l,ai<.BCIlC/B2o&T?7p6JMu,LgYsZ5NVG=9Vj5A;P9WW`QBAb^*ZrE - WSl;>_&Zn#qQgY/=SP7U5j_$0JbM+EH*^^L%!m3U]-L>042H&Dr6Fh3?TGpA^8C:2f>k,#" - t4a>On,a9e'/C,ht.`hnFNgVP[%T6>`W?j2Sa]N-at[7_sY(E,b<@7>pTjV-G./QBp%S>.8B$C'kOs7-UFjSJQ8eCms*>,Ba285n$_AQ/54=AbHqV/G/&R - :Yh=?+O!%OXpV>#3O'nMcrBpVG3h[U/\-YK36g'[jC;(%[H\od2R\7S$);Guu?]ij'"?ORO4R[/ - ?snm/hK8Q9PeNfG[R+oB+uD;2Lq[RU&n - ]1P$mtI5<#RG,$^-,,)`5gP\BS3-nUg(n?-'/\od0lET0BkT4M._Z:U6,TqS10VT;ndk007bkKaP6c.ojN)>?Vfg9hG33[A - -rb1Eh(4$#D\CY%jnOX$SaB]>>Hbk;*b$E[OA^3B%;W&d:468i]7FR@d>J\QL(ll#K8LD7J - ujr5Mf&fqjMLkn$0i'?bf]a"ub`;Z`QgU?qRq2*p.>0+a<]2ke&)*.)B"dUVcYZ/CA=K7n, - ;LsZ<*ZeX_7Ld@G=B`"CcX*YQXeA+;g=b0HhS#BeQ-!.ombPKVY$<.MR>c8IDVVa0_#eCfl - fQH](G&ZBZZ`;9IQi#GJE<1X6N6oY7un]c$HQnphVR,_,E - hIb3b!eUc^l.5AdnPK))uT.W;]t'=g?RMLA+*%af(]!-^fC"6EZR-[r8mh\_5]jeu`.8Fd] - $irqJi[@>&(,L9X]XZ=HO9cl'TF+Vd1jrd;bH*W>m0s7Y2cZ[MXE5[\Z/o!2iMZL86s##hE - p4ad%/^V>81D3FpUW:ATLCBk7bOEUFmicLoBEX@6gCTaJ/ - ,\$DdNusuSF(U=G/Q1HJS2G)JE"+@6Au1Y<:EJMbY-+pg*^.[4$O>*/:J]=(gUBtK33dJ`` - i4m5e?3)HEOWm)`/ru8A"&mV]=YZgcXm#^.WKHJSN:m+m`Y(6s":`_3P\PS"I9D)!)&Rj== - Q"QaJas,-B!2SbhU)7@o*N.48%pkn'Iaqa,V/Z2/;d>GMe8R3"[--3tR_#6D6`".TNKJZ!t - \"q=9C@Ck2Wk`;XNCiPUGF7>jd:1OoE%5Q:Ff]mB?T[r+p!K:GKns".*B6tUrKrV,3-4Vh\ - US.Sb!\T6fQC##R[Rt_@k8\c^m9N:T?oT7sfK*r;?04eG@;O_/t>E!g - Y;`YZ/CA=K7n,;Lp/SHhONDG>JDt^nsQ`t - Dc5#JLh98;QUgpA=Q,uG2.=K#$RPEShr/Uiu)N>mf0'q2@+K!i"oE]Y^5eZ)WE(-jKJ`^`X - 3o'G$cQ6"uKkkN\hP:M[7G_ZbLL(>@iCXt$u4$*ZP#P,pr5EKA<@).hr(DDWU!*[5>3+g"j]9MA-4"q?gO:]H'8R2O3/eSEa;;5 - o)Q*&qnfAV]pBdmrdtIer:V;9)3kYZ*W6V#i9b;WS%I$8f]ggUBVb^SV^(o?TOKr`n"Eo&n - >KqXeJ.q[Jjk*fV'qqY^/qfZp?\N/;,*)k!p+#G"Ir@Udf`9bja\S:oCOP!.L0F__.>qGjJ - XR&*5%QC@__VB^+>.^u&LLO]@&Q_fE_99uMU5Uq[-/Rk\InV7-#Eqo-4Z,]B^YZ*W6V#i9b - ;WS%I$FE5u:f+cImF32+Un^81$B2a7]Qis5V-d2[(+jjk_?FX8%@4",N>jgB0O\Zb(+rk53 - (p8.,Y[f&Gl%%]qrCURg:)"HZ;DgG*BSFDC85-)e5ndOZIIqg'0E7jq-1=GAZW`$ffX\o^MO-6cH@&ZDd":#0m))EUXhRokK7e5`g5A\uVf<8P>Wf7Fnh;-mcf&2W]Y$ANYR - $6X.0EGR\b!M+>qbKlOKS>*lj[ia"6U?2!nOL]$H$OZaAK:&Dod#$4IU;P_HVt\@E[5uLR^ - :KX4?YimIJVRDdSa$FdF$A&[\Lk@\Nk]Ie0eJ_baG7$G#N,*Wg26$aHQal.OVH"^]di?SA8 - $RV?mY>,\*NGV+N0u%O#`B[VacY)`P&R>EBa%rr0@7[`!55f.^aV&32tKV?0Cb$ZXAm#7`S - +ekGkb^'Y`$:S0gVc<3Hp`JYPML(.XbAQ5%]KiTMDSs5P^aN-r:-HVZd]6sGFe##k:o]_Rl - 9qORqp5_H;:h3W=b*FXVcThGcP%BVVC@[]MMmmW^?F+66-kH?(O":kOgiO,],.3=4g!O - R<'TB_C/kF&YeLhnHcJ>>,:4-dS;CPAr#k21VOG#qQg1!L>2_YZ.7taEWXP?2j]d0554qV* - [B&X]r8/Rl1ET#:idnnRr.4#F;4\;Q3^!g4BJ97*Y6GN4Z]K)aRN->Uc\h=0Gp:2b74^0d? - c)$kR&-o1@]fPhBOPt3FeudQ-?QTjl+gtb+q"XBSMi5cNJ,Un5%>u# - UDIHs.J,]B;kKagX<2uaEJ:KY$k1$A/LTq7D1UHrNl]Y3Ec'pYUP*4mBRN0e%oB+T(=&818 - X=;>Qo]ah;p$1*%mbK*H$F-)W]QpjQBt7j#)@8Q1[r.aUZd-kA&t7&Ng%1O_>oGkP["O:l. - TWWAY"Dbsfc&V5:#AVoO]0.:R145(!"iP:'.\LPI['OkdaoD>ZWuq2\F3j, - aqXHhZsh4I!/oj9&&?'3HaB!\@>H@&ZD(q"jjTfs>>6PUSbAoOu[Ka`lWjQZ8Of2fE"HUs5 - Af-SdQ.r-0u+4EKYD^V@P;Kl,YWp$]ZqDV)$30dBRuTgFG?(+`RnABCiOWtHKtQ;*+P@\57 - Wl!V!M<'Ga,FQ15q"Uc*uf[u9oH,kpc]63Gj^OL`;>?`I&VfV%H.JWnA=Q8B$n(bI[G4!ui - './f\Empm[M6-[NKpjl7P5gl=3TRps1M.'C,uQ48=]5(jq=u$nG`ZV!Y[PG*%MP[RfW\eB( - +hRhkWjN7e>Q6)NfI2D>Z"=Z;^%`Qp?^HY99t\=P0K-Veui:?AT.MEo?X4ep?gW/mbN6GUubKF]"qXp%":[Zc6(V'Y"Y?sNUn<$p!\Qojl,q!cV.p?fJ:n`%HA&,Z1unLj`hJ>LBp//<+)Q7=8d; - uhH?J>E;IF9sKu:11&O$aq;?6 - d/"I:MbYZ/CA=K7n,;?6cD!gX/ncm>nq3J"".0#1BH"I9ApckEW_!.Z\QV90)q'lX2>.OVH - "!.^YkV#gX=#qT(O@&\YaYZ*W6V#gYh"=t8fTM&[lEWSl;>_&Zn#qQekTI4-H!!$:+99g/m - .c:@ZWgpk&!<@G_f@RLD+@CkliE[Z.!/LiF.OVH"^]di?SA8#'z9H707SA8#'( - LX4_!_W[s!!!!QEF>bd!_W]%J>LBp//8-b!!'gQJYgKq//<+)Q7=8d;ucmu!!!Z;Q7=8d<5 - 8Z>Wgpk&!<<*"!)+A7Wgpk&!>f.CEWSl;z0QCL"EWSl;>_&Zn#qQek!!!#7`.=c-#qQg1!L - >2_YZ(T&!!!!4#F6heYZ/CA=K7n,;?6at!!#\4=K7n,;?7SAWH&&5"TSN&!&/D#WH&&5"^H - SSapBU6z^r1f#apBU6Dul7S-a6PMz'*jgQ-a6Rc"^%dp^et15!!!!m**B52^et1L@&\/J9* - G:q!!"]m@&\/J9*JRNV90)q'`\46!5QO(V90)q'lX2>.OVH"z!##U'.OVH"^]di?SA8#'z9 - H707SA8#'(LX4_!_W[s!!!!QEF>bd!_W]%J>LBp//8-b!!'gQJYgKq//<+)Q7=8d;ucmu!! - !Z;Q7=8d<58Z>Wgpk&!<<*"!)+A7Wgpk&!>f.CEWSl;z0QCL"EWSl;>_&Zn#qQek!!!#7`. - =c-#qQg1!L>2_YZ(T&!!!!4#F6heYZ/CA=K7n,;?6at!!#\4=K7n,;?7SAWH&&5"TSN&!&/ - D#WH&&5"^HSSapBU6!!$!8f@Tchl-kZQNl-S\Z`p[l>n0\nW2M+?:X?.I[n`JT[:@7;#7hm - :>nPF&YZ*W6V#i9b;WS%I$31'`&/#UrjiS;S(RMo:rjtmo2C2"^ba+!%^\sIBJNtsLio2"B - HK=&D0miW\mbPM,XBF#rbUi/?hR$u1mi$c6J>LBp//<+)Q7=8d;ufUXf\"h4B?o/agJ=4mA - a.X>QS2]@8kS)KP]Zj$r*3N5kKK>MCY#Qr)`G?UpPsGd9(M&bPAGid;G@:7&RE"lD:u4+;l - - @oU'V8<*B\RccC?oDp*E4h*.@_XrUf=fn*6,L9\om*) - am9#\g=ihk"\T$=#F6heYZ/CA=K7n,;?8I/gt^\<#Jaq`B%O4nk?TDJ#(rUPZY%)1C!`N(V - OqBo!L@K[>e>/2h5d:gEHcV>C^l[;N"7I>:11&O$aE_(F\dqWcV3]SiW8\8c#E^=9,\LNfS8JYf6]Ub - )2]Pq,NE/s]8EG3rE.o)%mjo<) - %FYgdc^PbgQlqNU6=b*MG9OWuCd_GYsTJYaQ:%4i5[1`'8/(*kRf:ggPe[XPq0I]Xh9M@!dEp8\oOJP6F.PO&j<(*p@V':`X!_^e,=B\m+O6NH3 - PB`G9`9Z$YF6Ch#gm=NkF*`1[o<)%FYgdc^Pbf!>:7OkWVdmc-N30ooJan;f,'j\L'gXYm= - DHFJq=EdfBESfYeZ)V:6UQ-cai_JS$\cpQ=gM`1Y#,4-WTc)o9-oouPq#de&($4N0,RoGV# - oZZ91AIk==So90!NhVbO+&nbEXUPeYDs3cTf0io7hI?iZK<=e]4&`B?rbenmo`T.SUmbC-# - &5;NnlnZ;3*FY?"Q0CtW%%DQu,(9*N[XO6RF'=-H1U1KW)4f$+;1BK=0LK - 'Pq-?R@X+4dKfaMHo^(8;8"^#M#@& - ^eS"F:09MWcq%"^#M#@&^eS"F:09MWcq%"^#M#@&^eS"F:09MWc - q%"^#M#@&^eS"F:09MWcq%4*N;>4 - IgW#'OkN\/mc1]cE8c?+\1?Ct:_M - +1$:F>8#Xf^u\3HJ6(>e+Fh(=IVOF&7%U/;t3dg_l_hSbf?2Z6*/rn_ - "aM1>7LCPVSr^MkcV-KVQg?d:d&%Tr&gU>?@meeC;//?QJ@&XF+\`hI>,9e>QpoS,NQ8s$K - UfL6h:n[q.4$A&jfU,)s7n<%(]=3"QhIXlrALTC"6A5csX]p"bJ-!i[00ascHq6eaKWQUK- - ?c:Q7[OO+G/oU`mFntkT0GPM2pKRjaJb8H3pC-P;Nc"r`:8QY68W&K^5rBbSiqE]GOCt[Dd - J`i<39>hN5f5;GThRc`j+%Gf[u`VGENH%/mXpBKB.\27uF7c`f1poOr+T3q)'j8JsK$i9DD - J6rqncd;iI"\+!4;(s+(7WQ7>m,q!W:baAK^$rE6I=&XcXuq[!Q8[r:/IE,b$oZY,OQj7(aM#/[SN>i?k3VI4o]]:g>:6m;ik/gNN;"27h"f&%nac8)[r:0dc'ug\B[3,.$Pk:4 - EcN@jfZB=)("[O&^etcX#*t,hRZ#HB2)$_'p?^I$MA0J=)PuJ\?[a/N*4:RTY@#$c4*GFk! - X5A7R1\FE6\Z"hF`i-(jpbf0A7S>M$!h2m-8f@M1_haq$`75RnQ,'fhO5@Y0n<`(. - >/Rl>7@2FY#QH[C*[EKr(XP5XU?5]jDDa,YB4hGpT-`3tJLR@BZrEa'c+9CZ.Q7Og7>$:7TtLH#ou=P@Hm2R5Sp99U[ePn(tb#5(+RT==U&s^etb4F4#uD - '($m<'Lg#4^]!l\UIUBp-o*2!B[itX6s/Ldq,MnBoiLkC7;YbrV%Tb4]6:=;D[b&kUIG]DD - &L/faT/VO\T0HPOXEqrfs><=,U>p]5s7ju(^qoqXAJDUP<]*F;d(KAaPrL8'4PU&qXfpA(i - XS=oTUe'W`5slCgg>EkDI(c^m;sl)107$k1RH.p&n8bEjaVU[%:']4Lu;8B#[%e]5^c'Vf' - f`f(c[YW5]82(C(jnDM+ip8)otefR,*PYd3/Q5U>Id@io4"Zo8B3HM'N9#Ld(Pu"AWV(Q)e - .'9ft5($2%Uji:=0bt<:(M@5f_ueu`/!lI8\2P.Gf%8h37UYZ+#oJYaQHk - +VrN4`]USTgFHt)B5K+W(h)EXS`E^&e5j=9T9D.@3V"0]V%ZL'$>BWpkZ^$e[*c@^qfg>lR - U_VCgVW0Q8%ch)O=!UEkQel'^su=_hZ33+otfG,37%?Hi*O(&j!(VV39#iAa%S&+MWcq%: - S(PS*R@]rG3pdTd9g>`D;2L!]>@OW>O&1dVfLtGXa%UL1he/H>r=/j/1aKJa2g'bWDb0AVj - ?>.3dpjH2>T`Gq'($k6suu$OuI=9J,fIK<+jace=8O?;SO%oJ"Y6!/#eX(a\@q0-]iiTe0s - 86_hXtHKi5]a&\SC7MBJ@GFtM8!gUhF`_J0Ji1,ZB\I - /,mMnqd.8R@+rifJ40P%hGo[Q75b0=gM]\4*DT!A4ZI_h7Igq7`;WB`JTU=)00>)GH/Tpm[jm69O=gR7@!<]2mR:9fA2f[iqhS"9B^Qr - *2B[M?\!62%'[FC<`8$_lOe60P8rDp%(2/_3:\4jGRjmqNVQe^nWq>W/DpkFQjP$+dGr#3AhgbYh - j(HJO'OKqS?naEOdY,:NG0#BWIMA"MQAXl`YZ(bQ>Vp2pAB;U^cTN-[=^,+&3HHN"/hUuKD - r/-0]65e'P`3"beREn+/;9ai+SHlm.p&mdGk#6oj_m][NupT`5+fsE;AUrjaOjVsnJqi>#; - 7a6F9dL2*Ze(2nP2hS`6_G[6maf[>ol=897?Ku(#u@&mFnu>o^pA[!nk8B%NQbeb0gP->K4 - Mo[+*a\=I(tf.TNLU@`=4k0>I(=HW!bie#-!NDr5GBA!='n7MA-kC'rjGo*m^taUO6b-.;c - 0qXNUdgUD)S>-s+aokJO0^O?!FYsK4!D;;Y+Xf^u^4aT_:kq;&8`'g>NLCYIRG7P&hMj.ja - KV'k&$k-ZoKVi>(QIi9FbLcmLkc%LY)Dl-Cd`?q>!sFK)s/`F]Oohn/nrH>jVG/!fCe,%+l - -cC3Q;T"qc$0L.#F:8226^$_d9O%lWFVZ"Y[Bb_JO/2-I>+$c+=$7_)`Ed4*_U:ocHbcFNZ - C3IV+i]l,eh:.JEFRoqh/26AZ&)Zl?)\hf6fn:DpJ^ - CM0OY$j.<71"mV2nWp&+XW_G0.5O^lLr-1$[5^3fTl`f(d(MA.3UN/39tr00l_WB^=MK9MK - 4FW)lQUYEG,1S`k+p"*Q0's^pkfed2SjCIlQnfkPeJ\N'dHoQ8,`;[2]fcp@62qcd[q=CR[ - jiWi]^tJVWksK<=>`r$`:;(`3:<&bcWUT#mQc.e'+4RK$5OEbX&n\FI$(8r7!$bMV - :sSS;!T:KSNE1C_7Op[ZM^k)[VT*dKk\WDL?3D:@WnYFT4[Q%a]^1SZ_RKrpS\!?.LcP5p" - $6Le;fbC?8Ne@mQ6[Q"s8G1 - AV\BB%MWcq%#_h=.*M1CkI,6^=BZpoHtlSJA(c?39YiP;Pmjft - -K,h)Gd-8.P,TjCWE*&#_G0.5Ob9Spkf/RC&JIH^//30N>,U;7N0e3HO&jH - WP#r7A5sB;Q'65Pq/3.L[kBAo2">24Zkj*N>U,BT07NJTpnLUQ7ATFkih5NjiRn=S0LN6QD - pdABrPufDSd>:GCF6:!;,R,9=X)+ldfYFeGfFDKg0_<^]E,Zjo?qId;*-h#bnkCb>Nb9I"[ - !5,'<(t7<89)%:n_&XfX1_&U/GC29I_hV;Ah.O4oW%[C(\5MF&ab,s+r5SUUP68ZQgb[V`l - 5Nu^T\$r:k9jQM^==POVR> - 6A7WMC+3]B!LAW,26^$_d9O%iWT;rbC*hAtIG5`Ug_/q_CZHN;C(XE& - aYmXV9YJbLYC%U>IPl"dS(A6\Z!]/u*+-U5[RjAd3A]RJcmP$S7f?4?'Usl;NiCgS,!XlL2Lf0&4ND5Q)k0Z_C: - 7;Qj?9,2.AR< - /(\I#qWQ5;IQJHmFoGE;jSA%cr - *)Wr(-cD/_cV9rVH9WDmDU-_GV]33G[1siPos$bXqcQcY/V:I4;RGl-aV+DqVFmE;LMS9dM - lV3h$f9LZI$^i%2o2c@D>I2,>IB!]*BW9)^0D_M3I'uCt%YkQ::/">l - Dr1i9;C0r*B?qXaY4MA\(2h'(Q:c;bC=T?+\Mes:q.J[[^O"D.;kg,8TL"2T7ujOW%[XK:; - A$SHQAQfRMhWc?0JJSl`nnCUj_osd# - Mu-.T`cX&["r59D.rLUqVVRNj<6>&mp_YbHVu$;C0pd%$\?hcCI$Egka?/Fl:&de.&D"TgO - Sjb&`f8J;"Q&*;&4J.XDV_nRm\n9b'.8G`<7XqR'.-D7:a^8;DV_lAg&A\m/6-_] - iSibF?+4tB/JE#q5_0!"4"CY,/=$'"Y1 - aHM'!>&N99"mhCso,9jFV1!Y.\`/3mrh_N@G2b(8r7!$b;V4K_jMHYbHV3kab?.OV9YPh:Ul*6A]dR3X=+dfe?WZ/;YQ$Jm,#E[\3e.dPn4iP>-D6q3Fs!Z - >^4u0Be2&,.h4+1:8uaBc^$4k0&2'+/=$(gW7n=W[k>#@W6`cq5cu+H)]P!0SICgAkV]SD" - OUI2A?!V0*M\o4'GMgB6cZl)[7A5O6(+WFE\k - c;EpqNZ&5RoXDRi*\EM\`_0[nfOcOALI<@&\0=V4R1"G':_S(sPsZA=Mp0.2 - IqOX!Ao:7WZVWi%DP<(*p@V':`XU*3/mGO?HYN&P\3aPTh+G3ssld]H`_bW`XbokNcB7.RS - ,e1?kG2Che-PdI$>71i0-?I.+,S3;4"\3cH32>PDug>pa8=KnIB0!o<>6BUFK(kJMUY*0iF - lD(B?Z4_&nBU27r`CXo/4?S9IFE_p^:nW?/9p!7IB[EDJT0CBS?#kIl,'j\L'gXYm%9_uhl - dr+IgqS>Gre?k#D_A\frr)_,p=W``G#=1qq!k,d_G&3Pa[$_\+`H5MdX!AY74bioq=<$`U+ - /*>g^pVb4\JKm+&g\S]T\i``!L>4G:6sRs2Jh"ggka?/[:-t-e.&D"Z"( - hQ7='<-P<6"m%?\76q3OkU*g7!`("$f)Wq="\NoQbV"F!D>lR)H\J@B - J(4/e>T;oC)PMSs/?QXbF:Gon5^MK*&@E$YHKUeaMj&R9<6=e/G8)GPLN(7]Y(%_p@u'.&L8n=Y:0LJoR*:)W9!7d4TgR=87o_@o=YEc_XoRKL\pW - MU#tmoaC"*(po&Rn[?*%'Q@&\rg"%u&obsb!c8gn#Y\8W=\7urtHM>R&9;`cN-NY8b@2Jq/ - =X3K-Fp$q(_e4*tDnA9u*Q9&j70]>Ki1hgEP^'J+?921+F&VCM[bu1H8T.[dA8sLmJhhpF7Gq>Y.iPL.sJ]=l2QAXl`YZ(bQ>dS(A^]4;FE#HFgn - r(^d\@T7L48\Bt1P$=cc-:r,SiqGoQS52j/PXJf8L%2[))Z/nKV"&i&PI7gF;/Vg:n^3FT# - 3H,>V%`9EYFg#F!gQ!R'[PZ>#anNBjdp'l_NC7^An1ZC*Q3Se8u - -$oB+!`J,hU!kgZSqn0SJY/o33Y"Bnp - ?GVO>b$,"q@J>l[$J\'?CR5/=d',)[68s<&/>pKG'/WS-)`mT - Ksb^JW`foadS(ALCYK(iJ"U4#5SQiW&G4!ui2r`r\74g8bNZ8ig?5 - -V8$!QVm;5:)WS2bLTCer$ELo!R/6r8[,K*Mof].X4^/[\EK6:N@J4?VE=`eL#$e3d"o9@Z - XBWR?Z/Y[@KS^F`ToK\DI6/2\RoTlAu-_AhdmZ(q4+)$0:="SEN)<2NE]C?4qnWJFj_919E - :79c&r'buue?U!F@lIDp_r*-'!e>6.NCY#S\[_oD^?c@m;hn=@aW]Us%eG]:=;qj%DkYVpb - -+%@56F`RKH1JUmnNuX2A-UR^F6:\\Zsle%4@rg$Z=qX[Wn%/CPu&X7Mj>kpNk4,\]tLC>) - 9l%cSND$2hN4.nR;qA(;hUo9O-VA%QFchUeu``K_I0@!?3?P - +.g(sdG+B-J\o]_RelIin"41--h7-YKe99i>IXfX0tVq%_CK;C#,>,mL=$[#\7%]ROXN5N\ - s+7%O^0AIeHhFMrW5=1`Q#n=3,kO3kKZ)/k+oFtHqPc-ldh'L<9;8f.8Ai',/:?m"uN.W,31"(L)*,G%P - GBQ'sRGNZC44_80R'Q7]8BY2hf@S2dcBM\[iGZW+G:lB*;]=DI0KT`[#e`q%'BPbf#H[V\\ - )$Sg=?]6:1'(BIX($m%ELUbPLd4'&j4lC+2_J>J.'mJd(]`JPD*mP/b.#n@GWC!`659'G*C - 2g'2pZY(Z[?DY)D"M/^>,2=D`e;RN@//?QJ@&XF+\S08d$1$3HVq.(!bNk7K^Y`n`\<5nI" - X9,re('Vd)0&-33Yd=+V37G$W`=tR]O--`jis8RN"q4:5tbdWkr7@`_=36m,NLD)6(InnN> - l=k7=Dm2=0>fJ*7bT:0L3.>HhZs-[rke&HXR-h*2$%lPesqMiu$N-ZDIQtn%XepjS%ieLJb - Fn$Fr<+]66oJZA"u)>\iC6(m^'C26^$_d9MpAe2ha;FAmb:T0Hti-QsY,>.&)r@hn!gkK]V - 3kZU5:^qbL'=dgQ$h7Hb3Y0m9I:l-aY8b^'6f4aZ5XhS!uSGOO.e+&N6.,q7=5o?TX"X"%,LeG8_!W - D,O(qGbu9#1Dd^rVEqG9aJODWPAE*S)X1=0k846q.7>e=ag2(:m-* - VTh7#;OTVbRu71:S'?Tr$Oc\uSeV?qH7_KT.'J>FH9%4i5[1`)u><@' - C>0:b7QQ@7;olIDpKQ+1el!Z@;ZKn]@!qN?CR)3+:Vh4+79:b(Vijq=O$5(ITc$FR.L0173I^lBS9FkG:hqMD^;UqF\jiX!VA5 - #WBgEJR24$1&!7ujC8G`Nn/+t"GBd9XJ6H2$a_j2[4a;Pf8LY,tp;Nd^pHhbr@EGse-*3\< - @4jJZ:lmdT2Qf<8OWG1#^3\">m7:3I5[`ejYVs+Xdb;l37Qe>ZBC8sRhQQMd.i1#rE1nF2P - 8<=ebb)cEo1p;I)+7J%L#.Y;=d)RWNGOTM;C;5d;7acjNM]=YCCI&%%\/1hbjc]F6?:h82K%:uW\>M:+-q,LdmF$tisXQO*^'5_+-RAggt\D:l\ZE-[VacBq!d5u?Tt[;UIPhlS#B5]9#a>V*NR\b<6 - WS1aD!<9GG9Va.RhIB,mDl;ap]ng8r/FbCtc7qgA>FMi5*9AUjXO4/`b-ZZkY))=Us4r4AR<=utFrqhH]+%k2c]IYr9Ml?XSqsUQQ(?+H,hnFN>l - IN:i=V<,2-qK?2-NG\4d;*-h#bnkCh,4RJhnO*^YbC'GcCI&+PEV1CpQ,?*GhgE)-ic>OccZhk`n)FhFj1fak>X3^f - '8ZcCaXea2c0<8`'Jp/N&6!gU<@q;*q*bjQl-$fle`;R\\A$;]u)[8@p\!"I=r/26^$_d9Q - `3If1+Q;VP(UZ*CS*k05DUW0#4JP"MWISMJr - cg6S3*ASGFcC[569E[fP0'T*\[/p[;,@Y--=#A8E^RX@rb?DOD_JH@2pSs6dp):>piG3RFD - ]e96^qsX:Jhj:nR9u0_k^H@qapYUHN50%p,_M&0M12,@HV6ZR`9A-U^7BQ3^+L"g5YCWMoL - utEZ925C@2=$8C4+@%j-OJNO5%SMFlf[FYoff'1F6Cg`mK38iZpq:L'M'Hik0/rJaV?fm`" - 3*,pI;C:']-NM7ns]m^YKSU>-pYP%Qen&'UTMjKnP*^GB\7^R:M+SBDf#Nl-cC`ld(OD[;/ - !QoLM`<7%nNl2&H`4+$Lt5G3@/A1Rk=5/4ATGo]X+tK.nW]W@.SfiRCe:1D;)F - 8lfR=Vn6KV:Kq+C(7ZA>!'K$boMWd"'#cTo_/&]B - E:i@S9TBa:T3ub_?OBW1)g_`JC>VG/)*\h,WZa97U#7jq&%"@a+"lo4JU*0J>OYT+MrbR6. - Po6f*7'D0<,)GBu@]>eC,UDI!V+X2ck0BMZA]b]B"rK::gl*+,*$$&\*'*TVfeXi`U*N+k/ - 68j>n0$oL\T>F,Um$n%5a7.jlK[Y,Ne3gmh9;9Cao>YQAe"QS%N[`'#)^n6#>GH_AM7E),g - tu?k-f$TWmpIf_al1j7073TNC9kM!\#^SduB=BHF/9)1`TJi@W - )>eG=/h;*MPlIBF;baLD)n`%M_:/5$&DEW+*&G_q^I/"hdnUQ,idLL8*7(8r7!!pUC' - '%(5[D@CHM-R9b67Yb3&m;(X1,S4h(Lm?rqsZh&)lL+]^#X77#?n_]mBA:qXs/%:7TtKGOI - crr3J\A#'K4\q=+j#C=R(S\8durD7XoXC27Us@Ddhh2fG/C"U.OfoGUg]JnQd@<)#&rrd=" - _o&IcOk?TD7!!!H191AIk==So90!J=JLlRMPZ=Sslkt7J9S>^Ko&WF%_,ldoF]`LhqoGUg] - JnQd@<;!bIodZ*Er;#sYmbN6ep?`LL4F6MT60HOa=l+(s=gOu+VL\dK!+;82;A$SHQAQfR$ - S5:@*#osH\Ra6j<ch=kV]SD"OUI^WTqm;B29;Zbagh>d@s'&Pq)IO2rCiTBj,9&XI503^q72Y!!'A8//? - QJ@&XF+\\M+nUI'YAd]?@]AnGWk04*_qlR)H\J@BJ-Mg2 - )#jU`JYO6_bY@:c>@E8*>fX7]8HXh!;$IH("$f)W - FrRs4Pj7'D0<,)G@_9*G:q!'i:j("$r-Wq//8-b!!!/j-be?k/nV5q?J - Omp#17i?5Bt6GnktB)Y6*99*]KWL0&^_-Lctl5"TSN&zTIR3$na)*n:Z,M3zzzzzzzzzzzz - zzzz!!'gALl.-Si,Ji2Q(X2s]T4!3z!!)5KFXp70CUY-hccCZQ"8tT4+#a0"z!73*u1%Ab/ - \o:_8D.UWcVZ;N&z!!!"t_lFUQ4Y6!2X.Qge7+M;>6ko\%z!*$dEqc3(@Vn(_%<<*"!z:^M - cjnB[nIgq?L)qT,,nVj-!WuTCG*q!!#sVr94Ggk=]jX9\Yu"AD - hkE!<<*"?n,u95/VerU=&V?>]TMs'A`s*!5KJ)+aM\jbM;PWgEG_'@*];=LCjLd!!"@gTtNCqO&\$-V$m";a!L4=MuWk< - &JG"edTBT=2]kb,i@GLe`mG!!"]eJj2[4m'20>\4+lO*P!=I+H6&W"9>CD_u"?W=Q+-H.m5HNT0C9\Vu - Qet!2+DnW]0[GMq0\_V^%L*"[L+5^[ea5Vkr0e2-S=grKqd=zXK5TOK_st%lQIM*X-^%W%0 - /HMJB&,#0eGW`oCh-c;ucmu!3d+O)*;T[>4,l;XbVjFp[#DE@2K!U+X&#VH.<5hpD+c[eDP - J3TCFrlz`:;o^:\XR+gda+\Lr5qhYqbd]O!aom/g8''ViT`PrKa11o]isI`Np)fO!ao-!!" - jtG1VZ-#;c4tpqJ]jqM4W*ScAcTGX(^=g35FKRu'=Lr:""K`tJFQ!!$1K0d19%hcL+[R1/B - Fq!e8ehM2dF+GEb7me*ql_YlBeO"=L[JG8R:!!!"L[L)R:*RGg"/LZf(*UJh.]YjW.!WYV" - +.p'onMp9TLMem$g,UVq.nTmD!!#8:[r4CLCmGE?\_Y)hkW%Eh'`^M^;c(D3>BfKo%Gdg]V - kpS(#4OgVzcjfkVl>J - pEJTX3R!;ucmu!3"&3*S7e3Gk@=d?'_$GI@p8="X$I%R#n[to*$WPHkE9(cCX[fI:9es%IM:(><\6JOqsXXe!!#:a6q51T*U:LijJ0o - r20ds+a7"9q@0!SKQd.bZf@>HLjfcjd)mqCY-D'rD"onW'5aK4SI;j\:jkRm@\r;o.h'V;@ - #mlI$%l+.]-TX;+e^>\tYBmlo@#l'%+$t5pA,lT0!+[8@gjFYh\CA]tZ**QQ"n=dt!9fgu% - t-nX=i^JMf5#\SY^bU(QM3ZL!!!!aQ=KAYbbV%DH?WP=o\^aB_8,q-"/%S^A)]GL4,r^^<6 - _[8GBk9CzA4;;=/RNmeqcHDHR5TMPYKnTQLDg0knDp:h(i*dPQaXW7g>OIKisYnf!._.D>[ - 5.AZ*)kP7/BZ^:.l+Bgdk&SO/`3$,!%2sPOf[iKW93mNSb?jO#QA*!!!#7PbFB\pcL!7SpE04`IH&+3M7f#b`k - 2gHKdzJFjZeaXc]gE??W@SIFqoo%^5A=K2RUFMu2;Dg/hGX!:q<0OC8NTAY.M!<<*"!5;2p - 6K7>\41L?RXoCUmf>=XjekmS6GLidKkgz1*n,,HL+HEm\?X1 - 'e>3]X-Oe5$]X.on,_I(T5QF2-19Ap*);&HH%.qdl/F19BB%:I,T*O$43Zg3bnn$R56+0i?nbhFo - 3c6=bi6ehIChPQIMoru'EA+5!!!SHod`hM\$tB]NlmfY1Nga->I460d)U+^B)r"Tj8Ho?k+lkLYHf\uEdP?EiA' - f-z!'ha?[p@rVTZYFABt;0-eVVZ"8DY]q!6X6co4cmP"'-380m3;"?!<<*"!'i.@K>D!D!U_0_A8n` - ;L\BP]NK*+L7K=QkM"#*P%Hi%[>0?df6In1=2]-e3&-)\1!!#WQOH;GGqG-J=.thG(n!/\% - hMdGFWr`_A()jU:ojY[RbILt>#`8MmI7["L;ucmu!9f4%kd\`a]5f!)+XquC!YZsFA,)pDV - u(RB`r0@4;Y&/pmI>0&][$rczKaA9JZ5KouqcF4tc/;nYp[#C*q)O3(W<'g7_s`$CRcVS9= - P@i25`jJhrnB:[17%[6!<<*"!2'ZB_4SbM4*)K`+_fE/X+U;(F2=ImGb6!!X7Q1!^mFkD0g - Ch8A]!Y*T-Ni2('"=7!;&t3a7)rYf5VmV+mIG(ElhM*j1[^LGb6*$/+W>[qh;@=YeH&&`b* - /DYg=fT-O9\P!!%Q7"T!n6(uW>\oS$fad=_]'m.S$b#1Ieu,ES"KGicg&C#c[A5P(#@ArO- - =8FU9KV[3>'!!%P3nFm;.eo*G?0c6'V`X[,OHLME1XT9m`)A7>2j2UTfCUg#%87i_o^aUr[ - N;&_Az?rZ!t$Q@f9-23N=,*5)R*OiRc#kSYhIBikOnDp:(_kI7#*6H,T]`/mTp](9o!6CVA - GniBauJl@8S9/=OcOrbM!R.KBGK!'gm0?O%)*NH\>ZQ9dYS2` - [LUrA&otklXV8KS7:u2kD[j^TXQs'(2YG+t=fA3;J'>];P]0!!!$!%ptr)R.XOUYo19)pU2 - Ror'GY#7"?XKDhGK9^4]W!fIj!rr<$!"]@/Wgiof=!qlKEo8j)VU5VQK>IGAYPZ?2 - UPIb7eOaRHC^:K,jF(V@zBE056Ih,o4IJegJQjKNHmr6&6gtRmW%e&usLa+&dn_^s^SQDGf - m^%fJM1d:E.5l&UiR,\Tm)E&oaN,4TB,M7)cp.0h8 - M>if#PqXVkC2,-MJ(5AS^Gi)][&>5zNBp$1A/rR:/;L0gmd9D=NSh$WlfG%*h^9`tnNPdEI - u+Gl^4,mWoBI!6VH;YXZ=#oJ3sGZb!!&)b)+Q8_G_#[I%T,=d\h1C\]D'BtgTOrg,UME3@& - ">NQf*#Tc.:,U-B3/UZEWA<1*C=EXlFD+AH2]1!!%$^UFGA+-b,6'&>Q):eac/8pDht0o=; - >;@KM!g4<4NZG^CEp;O;f$<'3/7SNZ=Y)b@k6CB2&HDe2!'jU*3H,of - 1THWTTA'C>b3f-+Xt2ko\Q-??_$a*S.lRVY^WY1]F*SFc2mtG!!)4&^\>Qo%E:.@#ZH%l>[fK - uKAG=rS"7kFhLFkFjepFrp]c6EX9j65NfN^V)g(i*b7dB.[r/pa_Z%o@$!W2X>D&>g&]TbK - \M<;X3:@Luz+A37])DuB%480=0U>>IGZl_$e0A!rk17o?MODI - #`T+N`bk[be - GmX)`Na!4%bT+^7m9I-:)^AT^4&WAPs%1\F71$An#T]9,U"=npO*q[!!!!Ab@*(AL_4SJ%3 - c(0Qqj_6(@Tt'=UU:t!rr<$!9f^^7m-=bPk!4fG6%u$A5)Ge9Ddkz!%;*coV>:GA_ - ]e:889j/&q['EIbg=I^%IQ_*>\\U!!!!Qn`ki.L]L9+a,gRY+=^sXaGkY__7]6Ez!'g\G@8 - ZWnn)QZq6kBJu4HB,j@UnDChdlfg!!!"LBTeMe41AJ'ZEW@QUdPas;'\:Um>i:!bPUE/z!+ - ^*!G"#U2:8VJHbPNT>LH"TS - N&!!%lg+.p("knNl3-6b[A0c8#IZ*IKEA^gIn`$F46;#gRr!!&ZSQS1JhgXUlPQkMasKJA+ - *3b#W;z!.Enno4c)*c.kg\#_F2Kbau*bpsWm4G>/&;!!!"l3q;`sS"7l-=n!Mb+p^&N_DuD - /7gJoS40BG0#2])Iz!+7oODnd:?HR8Ek."WR4\r7Kao^pOXhY0P@z^k'joaEc6YEZ^Df#_J - klIbqfb&M^reNW9%Z!!%Ng#".st4Z@^k0&\uN71^`&VbcJe-]WHB^*s*`zPMkPDs"W*MgrH - ?!Jn3P.Z$#Yb+3aUg#QXZ"g:R*W.-j$Hj8WGuR - J;+a,*2&-Or2FGEgK^qGR/hH@0cCT$Q1T+qB%Jdm3HHl=G7hL0@msI=*m'?[GK(Sa0D^mg/ - O\1dk\]KopmAN#,j%oaVpg)-=m;oUlJkrM3`^o]n.?8i<5tM%Vr/pcF^63/(nC^f>Af&QmO - ZmOVHM^(%GlRi'%]<+2k"Lg?T490YA94>Is(,,Uk]746J5N2AVq6j,P(pD9er"-,[Ek9B!8 - rEVh@Q/6D-cYQ<`0./?rlgnk0'Go2#mVG]t5qtHMjtB#;21)Rm';fj,).G)#sZ)j4r>]"ga - )=cao9oWenXdKbi"hde_5=ct=0q!#[2I(t_]*Cs)PNi7#*0;:4IpH0(lFrVajbV\]=5RB4* - (F32;)i7"m*&`+I"._`ZF/bFl'!5Ot`8e(4ErPeELP*NXnrP>)[5%k-#J7-Y]?[d"Ok2ghH6,AV%o)cJ1MisPk&#]esOpR8api7#!-i@L.W]4()XY-+AC-P-7Xr4 - \KZmhX7(&q"_c1^q(.FPEXMSY8h"!!'NaA27/3i,$^2B^cU;dR.beG#A49kpoLGPG-;>!!%6Tf<9=`6u+-/b7-X=9DXQ8Z>u]DeQk,I"Vh# - f;6R+0j3=FT6B0P06dPI(#.3CW?/Jre3V6GU!!#CNe;8)[cJBCcfTpVd^%QJlm&MY1cOU!U - GUS`seDWd>o:FYII.3GDcPFj]Er'<^k[O\p!$8_&JRhJtj0LNKK+Hq(I^aSuD5d?mgu.*uk - gKS5!/=9V?[pVH-_I!92Y]Nil.9sQ8#n.9H%[gN!+T%lT%LILZg>c%i5<)^`d;ku@oFsL9T)s>4CL - GX!.[;\fA"&apD:/KHFB"/&=].p<)_W:rMKVqn0b&fkC`Z#SpT1(ejr0`id"bn4unrL8;4e - $!kIPA!!)L)%1Wl>q4dQLIr#WZj@c8Q860X-ZJ?=+ - 5DHn;!<=7k[($!5\8'pN$2MEXIVDcG^0-?Febo3[NR7DP!!$Q8?b5[lW&XMCPdS>/!,9B;1 - HeoJ>'K"QGNeo=!!(#r6t2h_^tD05Z7>g&Y:lk7h@N=,4WFb.!5`Dbm>)NW:EH,EHomDk2K - _@cb2noFHjTiR,K.hG[s)]hCi4Dnn7CQBH6i,i5T.sj:N*2eH(t1:4S2nb!!)rJi8A!a;u= - `!Q'95L#2^GsLYA!_q9.[LFhAl`9)3-%cVdZCqWp;X+n:]Adb-hMf - k!!(fH<9h4OX[W\uV`e&lI'\q6@X$^TR_GR&]lj__!2EfnXn[I\B3okW/GPs5i@)%hn/KJQ - n`iahe5SC#o^mmPP5kT5+nklrCEI@Uo'D=Pi2_WTcPFg_\81tSSK2"0mi)6,i8I;)#+JAs7 - 9<#f[hmI3uN!!'eGqPj(QrDdKr]tS"Qhu#U@ma4ssfNapl&rBnSjg#VhqM14+)AFHB6jRYJ0;FA` - K)sr8tn1aZ\sER8IEoDB8Y.S5l*7Gh;'%HH3=3Jpn'(o>s#:bbj#pi4EDt3S"!]jIeCFMLK - eZQ\/kFW!rr>2[uRLp7r$AP?bQL8S - kPK%nCdKjU1q#"3"-n?aJq5!.hHX!Bq+9;HB@ngF1H7`uLm77__6=1<)!!"67It.%;`Qn=tkKC?c/ULu_k6;H6Of[=A3@26)I(ZS_^ - >VUUHX!DU'EA-k^@_'i``fMbg>B8K6g_LhJ$`TaZ.E4[A4Cp;#APd^k^e/!heK/H[YR`&*?!b5%@oG9lK#!Aei(pUge1Iebbg - Hn(VnE]oAo(jfY(9U&Xoh!!)f#;Q7JOf=P6?>\uOXmZ_OS'[3O7CjibY:`uAJXC7B"=)_6-(fN)$[?e.O - hIpos] - -Q -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/algorithmique/diapos/graphics/Logo-PCLL.svg b/algorithmique/diapos/graphics/Logo-PCLL.svg deleted file mode 100644 index d42bd44..0000000 --- a/algorithmique/diapos/graphics/Logo-PCLL.svg +++ /dev/null @@ -1,585 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - -   - -       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/algorithmique/diapos/graphics/debian.eps b/algorithmique/diapos/graphics/debian.eps deleted file mode 100644 index ff431ef..0000000 --- a/algorithmique/diapos/graphics/debian.eps +++ /dev/null @@ -1,318 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: 262 316 372 461 -%................................ -%%Creator: GNU Ghostscript 510 (epswrite) -%%CreationDate: 1999/12/10 21:20:34 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%EndComments -%%BeginProlog -% This copyright applies to everything between here and the %%EndProlog: -% Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. -%%BeginResource: procset GS_pswrite_ProcSet -/GS_pswrite_ProcSet 40 dict dup begin -/!{bind def}bind def/X{load def}! -/rg/setrgbcolor X/g/setgray X/w/setlinewidth X/J/setlinecap X -/j/setlinejoin X/M/setmiterlimit X/d/setdash X/i/setflat X -/m/moveto X/l/lineto X/c/curveto X/h/closepath X -/lx{0 rlineto}!/ly{0 exch rlineto}!/v{currentpoint 6 2 roll c}!/y{2 copy c}! -/re{4 -2 roll m exch dup lx exch ly neg lx h}! -/q/gsave X/Q/grestore X/f/fill X/f*/eofill X/S/stroke X/rf{re f}! -/Y{initclip clip newpath}!/Y*{initclip eoclip newpath}!/rY{re Y}! -/@/currentfile X/|{string readstring pop}! -/Ix{[1 0 0 1 9 -1 roll neg 9 -1 roll neg]exch}! -/It{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! -/Ic{Ix false 1 colorimage}! -/@85{@/ASCII85Decode filter}! -end def -%%EndResource -%%EndProlog -%%Page: 1 1 -%%BeginPageSetup -save GS_pswrite_ProcSet begin 0.1 0.1 scale -%%EndPageSetup -0.843137 0.027451 0.317647 rg -0 0 m -6120 0 l -6120 7920 l -0 7920 l -Y -3233.33 4125.86 m -3218.39 4125.66 3236.15 4118.18 3255.66 4115.17 c -3261.06 4119.39 3265.94 4123.63 3270.29 4127.77 c -3258.15 4124.8 3245.79 4124.73 3233.33 4125.86 c -f -3313.52 4145.85 m -3322.43 4158.14 3328.92 4171.58 3331.2 4185.48 c -3329.19 4175.58 3323.84 4167.03 3318.76 4157.99 c -3290.83 4140.4 3316.12 4168.43 3318.74 4179.1 c -3288.72 4141.27 3314.61 4156.42 3313.52 4145.85 c -f -3343.14 4222.89 m -3344.95 4249.8 3337.84 4241.28 3335.46 4231.03 c -3338.23 4229.57 3340.44 4212.05 3343.14 4222.89 c -f -3176.66 4590.68 m -3184.64 4589.26 3193.91 4588.16 3192.58 4586.25 c -3201.32 4588.18 3203.3 4589.92 3176.66 4590.68 c -f -3192.58 4586.25 m -3186.96 4585.08 l -3192.21 4585.56 l -3192.58 4586.25 l -f -3441.26 4212.69 m -3442.16 4188.53 3434.21 4176.79 3427.02 4156.03 c -3414.1 4149.6 l -3403.54 4129.06 3415.15 4136.56 3407.57 4120.23 c -3391.05 4105.56 3357.51 4074.34 3346.77 4071.48 c -3338.92 4071.65 3352.08 4080.74 3353.8 4084.29 c -3331.71 4069.13 3336.06 4061.53 3302.29 4052.3 c -3301.3 4054.51 l -3218 4015.31 3102.28 4092.98 3103.8 4198.94 c -3102.92 4192.22 3101.27 4193.9 3099.43 4191.2 c -3095.13 4245.71 3124.61 4300.46 3174.33 4322.85 c -3222.96 4346.91 3279.97 4337.05 3314.79 4304.56 c -3295.66 4329.62 3257.58 4356.19 3212.45 4353.73 c -3168.24 4353.01 3126.88 4324.92 3113.07 4294.41 c -3090.43 4280.16 3087.79 4239.45 3077.93 4231.99 c -3064.64 4134.39 3102.9 4092.24 3167.63 4042.63 c -3177.79 4035.77 3170.49 4034.72 3171.85 4029.5 c -3150.35 4039.56 3130.67 4054.76 3114.47 4073.37 c -3123.07 4060.8 3132.34 4048.58 3144.33 4038.98 c -3124.04 4045.83 3096.95 4088.11 3089.06 4089.83 c -3124.01 4027.25 3230.84 3980.08 3286.81 4003.49 c -3260.92 4002.53 3228.03 4002.96 3198.94 4013.71 c -3186.7 4020 3170.1 4033.01 3173.07 4035.44 c -3249.42 4006.93 3328.29 4013.86 3394.36 4066.81 c -3411.16 4079.91 3429.52 4102.18 3434.83 4102.48 c -3426.85 4090.46 3436.2 4096.7 3430.07 4086.09 c -3446.8 4113.1 3422.78 4097.09 3447.37 4132.73 c -3456.46 4120.23 l -3453.07 4142.67 3484.31 4169.89 3481.12 4205.35 c -3488.29 4216.19 3489.11 4193.67 3481.51 4168.73 c -3492.06 4196.4 3484.31 4200.85 3487 4223.69 c -3489.92 4216.01 3493.78 4207.86 3495.75 4199.75 c -3488.88 4226.5 3502.78 4244.78 3506.24 4260.33 c -3502.82 4261.83 3495.64 4248.51 3493.98 4280.09 c -3494.23 4293.81 3497.8 4287.28 3499.17 4290.66 c -3496.49 4292.21 3489.42 4302.73 3485.13 4322.9 c -3488.22 4327.65 3493.45 4310.61 3497.69 4309.92 c -3494.96 4325.95 3490.26 4338.18 3490.07 4350.49 c -3477.67 4376.39 3485.67 4347.03 3475.64 4361.61 c -3462.44 4402.75 3486.57 4371.16 3488.21 4389.84 c -3508.19 4360.89 3519.59 4315.99 3524.83 4297.4 c -3520.83 4320.07 3514.39 4342.04 3506.49 4363.29 c -3512.59 4360.72 3496.72 4409.92 3514.4 4377.34 c -3495.52 4446.79 3433.62 4511.69 3376.67 4542.13 c -3383.62 4535.76 3392.42 4527.76 3389.27 4526.5 c -3360.94 4543.35 3365.92 4544.68 3361.85 4551.8 c -3338.8 4561.19 3337.27 4551.03 3322 4551.78 c -3278.52 4574.86 3270.13 4572.4 3230.1 4586.85 c -3231.91 4578.33 l -3203.1 4587.93 3198.34 4574.71 3167.21 4578.31 c -3165.32 4579.78 3177.19 4583.67 3186.96 4585.08 c -3159.11 4581.4 3160.41 4590.58 3133.15 4584.07 c -3139.86 4588.78 3146.98 4591.91 3154.14 4595.91 c -3131.43 4594.53 3099.9 4582.69 3109.63 4593.47 c -3072.58 4576.93 3006.77 4553.72 2969.84 4519.09 c -2968.68 4526.85 l -2951.76 4506.54 2894.89 4466.19 2890.36 4439.86 c -2885.83 4438.81 l -2877.04 4423.9 2871.33 4407.01 2864.35 4391.68 c -2852.84 4372.05 2847.47 4384.12 2849.11 4381.04 c -2826.46 4335.12 2815.19 4296.54 2805.48 4264.88 c -2812.4 4254.53 2805.65 4202.56 2808.26 4160.97 c -2796.9 3955.53 2952.44 3756.07 3122.46 3710.04 c -3147.38 3701.11 3184.43 3701.44 3215.96 3700.55 c -3178.77 3711.19 3173.97 3706.17 3137.73 3718.81 c -3111.6 3731.13 3105.88 3745.18 3087.36 3761.25 c -3094.69 3748.3 l -3058.39 3761.15 3073.58 3764.2 3044.04 3773.55 c -3051.87 3783.77 l -3040.1 3784.67 3020.7 3803.59 3015.4 3814.1 c -3002.52 3813.59 l -2987.06 3832.66 2978.81 3846.43 2979.42 3857.09 c -2975.26 3849.67 l -2970.55 3857.75 2918.35 3921.25 2945.43 3906.47 c -2940.4 3911.05 2933.71 3913.94 2926.46 3927.13 c -2931.97 3933.42 l -2918.96 3950.19 2907.99 3971.68 2908.83 3978.84 c -2915.78 3969.46 2920.6 3967.7 2925.38 3966.09 c -2892.47 4047.73 2890.62 3970.58 2865.71 4049.19 c -2870.97 4049.61 l -2866.94 4055.72 2864.47 4062.31 2861.23 4068.8 c -2863.53 4091.65 l -2839.85 4119.01 2856.91 4208.1 2860.34 4256.95 c -2862.69 4276.81 2880.11 4297.96 2893.34 4331.13 c -2885.28 4332.51 l -2900.7 4359.39 2973.3 4440.5 3006.94 4436.34 c -3023.23 4456.8 3003.7 4436.42 3000.51 4441.56 c -3036.3 4478.59 3047.55 4467.72 3071.7 4474.39 c -3097.73 4489.84 3049.35 4468.35 3061.69 4480.28 c -3106.72 4491.77 3093.59 4506.42 3152.32 4512.25 c -3158.52 4508.73 3137.95 4506.81 3132.79 4502.24 c -3170.29 4520.6 3251.48 4516.41 3304.23 4492.06 c -3365.41 4463.45 3434.17 4378.92 3436.89 4299.39 c -3439.97 4298.56 l -3438.41 4266.94 3444.81 4230.37 3433.71 4196.79 c -3441.26 4212.69 l -f -3070.23 4105.36 m -3068.12 4094.89 l -3077.95 4081.54 3085.75 4067.08 3098.28 4056.68 c -3089.26 4074.27 3082.57 4081.54 3070.23 4105.36 c -f -3093.44 4106.26 m -3088.24 4112.02 3085.18 4118.94 3081.72 4125.82 c -3085.02 4113.71 3091.78 4103.3 3098.05 4092.7 c -3093.44 4106.26 l -f -3504.27 4195.56 m -3502.08 4190.04 l -3498.06 4161.46 3489.36 4133.18 3476.03 4106.95 c -3490.75 4134.62 3500.25 4164.89 3504.27 4195.56 c -f -3179.63 4597.85 m -3189.73 4601.54 3204.45 4599.88 3215.19 4602.31 c -3201.21 4601.14 3187.3 4600.44 3173.57 4598.69 c -3179.63 4597.85 l -f -2824.92 4409.23 m -2827.25 4387.69 2808.72 4379.32 2829.02 4393.54 c -2839.92 4418.08 2824.78 4400.31 2824.92 4409.23 c -f -2801.04 4309.49 m -2805.73 4323.86 2806.57 4332.48 2808.36 4340.81 c -2795.43 4324.27 2802.4 4320.74 2801.04 4309.49 c -f -0 g -2758.02 3347.25 m -2757.57 3346.78 2757.57 3272.19 2756.64 3252.72 c -2755.72 3236.97 2754.32 3203.15 2720.96 3203.15 c -2686.67 3203.15 2678.33 3242.54 2675.55 3259.67 c -2672.31 3278.67 2672.31 3294.43 2672.31 3301.37 c -2672.31 3323.61 2673.7 3385.72 2726.06 3385.72 c -2741.82 3385.72 2750.62 3381.07 2757.57 3377.38 c -2758.02 3347.25 l -h -2623.65 3292.56 m -2623.65 3161.9 2693.16 3161.9 2703.35 3161.9 c -2732.08 3161.9 2750.62 3177.66 2758.49 3204.98 c -2759.42 3163.75 l -2768.23 3164.22 2777.03 3165.14 2791.39 3165.14 c -2796.49 3165.14 2800.65 3165.14 2804.37 3164.67 c -2808.08 3164.67 2811.78 3164.22 2815.95 3163.75 c -2808.54 3178.57 2802.98 3211.93 2802.98 3284.24 c -2802.98 3354.67 2802.98 3473.75 2809 3509.9 c -2792.33 3502.01 2777.95 3496.91 2746.44 3494.14 c -2758.95 3480.7 2758.95 3473.75 2758.95 3412.6 c -2750.16 3415.37 2739.03 3418.61 2720.03 3418.61 c -2637.09 3418.61 2623.65 3346.33 2623.65 3292.56 c -f -2874.95 3316.21 m -2875.42 3354.67 2883.3 3388.97 2916.19 3388.97 c -2952.34 3388.97 2955.1 3349.12 2954.18 3316.21 c -2874.95 3316.21 l -h -3000.05 3311.56 m -3000.05 3365.78 2989.4 3419.08 2920.82 3419.08 c -2826.3 3419.08 2826.3 3314.35 2826.3 3292.11 c -2826.3 3198.05 2868.46 3160.98 2939.36 3160.98 c -2970.85 3160.98 2986.16 3165.6 2994.5 3167.93 c -2994.04 3184.61 2996.35 3195.27 2999.15 3209.63 c -2989.4 3203.59 2976.89 3195.72 2949.09 3195.72 c -2876.8 3195.72 2875.87 3261.54 2875.87 3284.24 c -2999.15 3284.24 l -3000.05 3311.56 l -f -3150.8 3291.64 m -3150.8 3248.55 3142.93 3190.62 3089.18 3190.62 c -3081.76 3190.62 3072.5 3192.03 3066.48 3193.42 c -3065.55 3210.1 3065.55 3238.83 3065.55 3272.19 c -3065.55 3312.05 3069.71 3332.87 3072.97 3343.09 c -3082.69 3375.98 3104.47 3376.44 3108.63 3376.44 c -3143.85 3376.44 3150.8 3327.77 3150.8 3291.64 c -h -3017.82 3241.13 m -3017.82 3206.84 3017.82 3187.38 3012.26 3172.56 c -3031.26 3165.14 3054.88 3160.98 3083.16 3160.98 c -3101.23 3160.98 3153.59 3160.98 3181.85 3218.89 c -3195.29 3245.76 3199.92 3281.91 3199.92 3309.26 c -3199.92 3325.94 3198.07 3362.54 3184.63 3385.72 c -3171.66 3407.48 3150.8 3418.61 3128.57 3418.61 c -3084.08 3418.61 3071.11 3381.54 3064.17 3362.54 c -3064.17 3386.17 3064.62 3468.65 3068.32 3510.82 c -3038.21 3496.91 3019.66 3494.61 2999.75 3492.75 c -3017.82 3485.35 3017.82 3454.75 3017.82 3355.12 c -3017.82 3241.13 l -f -3288.99 3163.75 m -3279.73 3165.14 3273.22 3166.07 3259.78 3166.07 c -3244.98 3166.07 3234.77 3165.14 3224.12 3163.75 c -3228.75 3172.56 3230.6 3176.74 3231.99 3206.84 c -3233.85 3248.09 3234.32 3358.38 3231.07 3381.54 c -3228.75 3399.16 3224.59 3401.93 3218.1 3406.56 c -3256.09 3410.27 3266.76 3413.05 3284.35 3421.39 c -3280.65 3401.02 3280.18 3390.8 3280.18 3359.77 c -3279.26 3199.88 3278.79 3182.75 3288.99 3163.75 c -f -3437.37 3294.9 m -3436.46 3265.7 3435.99 3245.31 3428.1 3229.1 c -3418.37 3208.24 3402.16 3202.23 3390.11 3202.23 c -3362.29 3202.23 3356.28 3225.39 3356.28 3248.09 c -3356.28 3291.64 3395.21 3294.9 3412.8 3294.9 c -3437.37 3294.9 l -h -3309.93 3237.89 m -3309.93 3208.69 3318.74 3179.51 3344.7 3166.99 c -3356.28 3161.9 3367.86 3161.9 3371.57 3161.9 c -3414.21 3161.9 3428.56 3193.42 3437.37 3212.87 c -3436.9 3192.48 3437.37 3179.98 3438.76 3163.75 c -3447.1 3164.22 3455.44 3165.14 3469.35 3165.14 c -3477.22 3165.14 3484.64 3164.22 3492.51 3163.75 c -3487.41 3171.62 3484.64 3176.27 3483.23 3194.34 c -3482.31 3211.93 3482.31 3229.55 3482.31 3254.1 c -3482.78 3348.63 l -3482.78 3383.87 3473.51 3418.61 3403.99 3418.61 c -3358.14 3418.61 3331.26 3404.71 3317.82 3397.75 c -3323.39 3387.56 3328.02 3378.77 3332.18 3358.83 c -3350.26 3374.59 3373.9 3382.93 3397.98 3382.93 c -3436.46 3382.93 3436.46 3357.44 3436.46 3321.31 c -3427.65 3321.76 3420.22 3322.68 3407.71 3322.68 c -3348.86 3322.68 3309.93 3300 3309.93 3237.89 c -f -3704.27 3209.63 m -3704.74 3193.87 3704.74 3177.19 3711.22 3163.75 c -3701.02 3164.67 3694.99 3166.07 3676.01 3166.07 c -3664.87 3166.07 3658.86 3165.14 3650.05 3163.75 c -3651.89 3169.77 3652.84 3172.09 3653.76 3179.98 c -3655.15 3190.62 3656.08 3226.31 3656.08 3238.83 c -3656.08 3288.87 l -3656.08 3310.65 3656.08 3342.17 3654.68 3353.28 c -3653.76 3361.15 3651.46 3382.46 3624.56 3382.46 c -3598.15 3382.46 3589.36 3363.01 3586.1 3347.25 c -3582.41 3331.03 3582.41 3313.42 3582.41 3244.84 c -3582.86 3185.53 3582.86 3179.98 3587.49 3163.75 c -3579.62 3164.67 3569.89 3165.6 3555.99 3165.6 c -3544.85 3165.6 3537.45 3165.14 3528.19 3163.75 c -3531.44 3171.17 3533.29 3174.88 3534.21 3200.82 c -3535.15 3226.31 3537 3351.43 3532.8 3381.07 c -3530.5 3399.16 3525.85 3403.32 3520.77 3407.95 c -3558.31 3409.8 3570.34 3415.84 3581.94 3421.85 c -3581.94 3372.73 l -3587.49 3387.11 3599.07 3419.08 3645.42 3419.08 c -3703.35 3419.08 3703.8 3376.91 3704.27 3349.12 c -3704.27 3209.63 l -f -0.843137 0.027451 0.317647 rg -3292.9 3486.97 m -3254.53 3448.61 l -3216.17 3486.97 l -3254.53 3525.33 l -3292.9 3486.97 l -f -end showpage restore -%%PageTrailer -%%Trailer -%%Pages: 1 diff --git a/algorithmique/diapos/img/cesi.jpg b/algorithmique/diapos/img/cesi.jpg deleted file mode 100644 index dafbe55de24691c42c68b12402a75d4f863000ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60367 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 diff --git a/algorithmique/diapos/img/logo-cadoles.png b/algorithmique/diapos/img/logo-cadoles.png deleted file mode 100644 index de8ddc0506f341a1bb5d22eb69e46950fdfedb10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17924 zcmXtg2Rv2(|NpV~-kYmP*5xXD#1&a(+z_%?MA>_kagmvD%@A^p>{&)K;!4~?SuK0T z&5ZosKHvZUJRatC?>*j2%@{8i!^~CVifq^gOVJ4zPlQD z9eg46)x2Rw363yICp7q(>VdAMF9eB3oPQA6tOj#~Uvl|rTlkrJyZ8m#`#3{^fq_!) zULL-V_79w;ynS5rwp73$2|_oJ*UW>eckFC)v-q!;1*1vxPAOXPTn+_#V+m z4=be8+m@0>QbW4Y%ppNRPc#hhuQ_^Ns*Q@XX}e!~q`=S5@1E#ddFSw5o8WK+xzSyX zCmQ3w>S8(GNn?V8x3lc}5Uo*%au8&1B>PPr@#$leV4UQX-TcOf613tYJC~5X&*p>u z4)rofIXz05IP}29r|)wZVFNfDli}2bh`*buu49D-5-qR!`C}hpQps<9=}dmPvOUDl zFI-p>Mx#ZiZ{+wf8S1+8WUo;(%r|Tc*Zw9?lg_Z);oIdr@pxOOG+Z z1|8mTQ|2hXoL~xw0*YcJuD6hI=N#a6iO511Ixm^a8LkIxaP0j4&1oE?S^N}pbUUe5 zoXGlTiwb|gPFwS>FK;gnHt04LXR=-X7Pu3Pmm(g|zPbDH?ZsuNO)WbK^S~i(WHN?b z>eQw80`K*vmX>aPs(VM%COSVuahf`rrb`NeSPEz(ahiX()1 zyzB4ZLrHI~uuJk;WP>SQkmHBvp7dVVELgjPj#ER#&75iSjGPAeIHzS+rEn+KUmjgF z4;;;VXt;f(61B9nv}*@H42LSf;#T%&#$sBD9$aNAxSzXp2QL@7eeic1qY}L9+MhXc z9{P@MCb#rIPv^0F^Hg&-^2R8}T8rA|9BmyAWD!EeHG1R9;#q#)rS(cBWja-Ad$5YP zIDDrtNXqxNskJqA-2b%14&FxJ1B0|tFC}u`;b=NKI~QaO3G8^ef)CT%=ix7d6U!;X zR@+;mI5PB!=9_PMC=ekQ=9+J)^AMIt3R^xty0}LhL9JnV_bJOh|L2R>!-<|)2voVr zDH-VnKUCrGjzYIQe6VH&)!$V=_!NT69>;|VMG1glu@ZXM{QW`DyML!D=Z8;)pdQNZ zyF;u(J8w@*Y|erhr=RUqc~%W8R-^BS61ggwVCM3lZ4+4VwC<>5KhBABpweWR2lAAs zjQ6Gbb_JG59P}9dFWo?7f#`Q{939U;$7iz9n0_p(s%wpKbp9ctD<(=M)b#<^3}NAQ zV}CC}>RBd*U}>c%U)e^+XP5V$-&0|h6!G&YHF##AKQ21k`pNEFZ*75mQS6s9)0e~C zx%+HA2-+v3zQ?IOhqpHxwqNgclVKjot09E`{ajrqemK5yj@_=JDvE zU;o{Hp9f}@)K?@_k&ifpBg_^_qUZj z9i2}Gt3K76N+707VpuPf_wXoSG=K=&6SmD6uwEEy7HE#v6a=|TrAey-_LJ@ z{97k<_x*QSbtW5>v2nfT)LugDvycCs%ggU*6E=&wHtuhOY25-Q(ccFhcytOL-R+Wb z^s??MF!=2Y1&sLaN>i#d{{7)D`G)5)oqi+|*}e5yE@k?_vm@$H-Se_C=MY#rnpojd z{C8iJyYR`6^P0*di7sv0PtV3z7M8^xuOneh z-R`-8Wg~B#9AX!?Uzwo%BS1IF7JsXVJpWqm-g@Eb`^!+eMBj2w`B7c%I+45+;k>$D zG9<4ti=F2>ML-C?%(A+=4ML|+mts>6dTcva`DglkGDzPoir!Qb$|YGU86&!@5{l|K zEv-xI>&MM4Esx+)2w7Tv;=}&qy>*6~+S(5RPi{|q`uzD#W5nrkA9^KQckx5RPg0?G zS|Dvc!xll~=I1Z#d!C8ijn!wcdy6unF}?L}GV3x$4o{vkf#D4gF-_jR3p)siu1*jx zNel3buSuI`{UCqn>;P`im2(%9=>wvf5U<~W`_kwt%BFp!$i!!a6!?8m2KBh9g>CI0G8obEi5*GS5R+ z=RMp`Ti9%JPx)6-L{E5(qu#f-wZZsTt8=%y?2e>#6PKZlw87UbkBAl?ogl?|%iRm# z3_Pn^mwea*A%+k=|oq57zmmia5MyzB3tTt0@F8}y8N>6SB z$PsR8oS8b8S!EH^_kB#O_~UozZXJ&nvUR0H?W3&fe+!|NGy4o1=R5;{`2LPbLk8|< zrNdI^PeQp(6Uwo#;XZSO1O;5Is2%@0mXt4srXo-Qp6ys|QSTtZbV{|Ka^MlesAE*9 za)gjyynOW>y(lXwxe&WGa4`#(sK2sq_ZeD-{TF3J$@$N)f)^u_H>mjab56pr)60KV z(T5{(+DSTOVmqu+?~nAzztMfKc&uMP?Gqe)v{`4)Jtg||z3|)bzn8s+%`ShMni|Xr zz6$lZ3|%i8ljjsrW&lU3kgieUb-UgPc+Lm0CU|U2`1{wIbEn}1>-$XI4E;LHAvNE8L;I5zT4-I}g5XuPwOd*o+LsmO4FA4eCh(Dc zJ5{p@{CoQED>x$AwWQA9i{apXt(nYIXyJ(v`{on_d+_zMy%FClJxx@%KkCb<^R=w% z3`R`gnJwBZ?9n33VK)B=424%bCZAAzw8Kjh<(FXBc%%}|8a{pc^m-822zg$+O!8L@ zi!DUi*t{tlDhWQv)or@BwT1l%6Q&vp({%RKi8y@4u+9e&ep%XMKM-+@?BD1plWr=1^LPc4nz zJpb%;9%A$xSaVcZWcNpg3J1+_4F1VqzSCOocHfDKjy1fZHsG^Wu&npvI()nJnRGVI zN=KJ;l<)nH(#6F^^G>m`Ti1*;T^mw&|BKLCCo@*f?Gz=l56BiaK6XpiAy3_I)4`(F z08pw<=lcur)Sqc+J@KJ}B>v8H`lw-+mR}9vnNbetms(8_%!< z*99I&{3wwi6Hza^9MEH;jhq@>9&LNsx>&ifm@32u&l)Ezq88wu1yc# zx2H}RTFNX+K9R6Fef4bD7*byHyYjQH=TX^rmC3RDTrSGmcg#_H^_s8#!-(HyGV5FB zb(LnE6{#7PT`L{Zvu|d7ZYCM_y+}Hv{ZsLgd+q}C-~~zmVS7VLM-a?L;Gn&7Z0S8P z-xM?>W#=LjBX;S+E+JtUF~+tu#*w3LOMe`)^z>oqFB4qlLVh-H3!dP9)yBgN6<*8e z5z;o8$R<7zr&)Xh*+dbg3O%8?bq(nVk>&)mL~%0t!wH?xqzs{hj_2xY)zJM7CmCmH zw%fJVmQ0kSB0|lPED3HrF8u48_5q;pM{Z2lhf)e*bArub+!S{CnLhc9CHWYxo@L#O zA5S$XcU)lUhZIcrKQ^6d>xI%5>R$Nqs=9iXrN>EZ@q;G%eok=SpJfYKf-CZm7$Q;+ zxf!it_xVBPYKKFAVtwiLWNfwxKP+ZC8q=z^#?MLdn=0xcVa3~Ixcgr2{&v{pT7{WE z)kE@)q-Apm&4f+G!9^?K$xYE6fmuOyj~9A&Wm!im4Y) zTY%n5Gx>J|-y}`mQTwcDoQtHuiSmKt$pn{`rB%n(W@~}!m#0^wc!k$@{rt}CwC3HJ zEPh*FiZUr%KW>d-RJQUvm1m{CqV%Rv$KKAxK6mLmWMp)Kc@W~fUwVllrXEVUP$FEG zImH=QPv4^j@tdLiZMvRjbK@jR##fkdVLlS<%G@6|?8&0sk#fnHS2DDYl2P%PBO*h* zUM)IA4OA8JC~)3#VvD2{<-Gm4c&2fCTv$!*x;M2Df11gB(JO6xh0^t7R#-<{XXjrF z$ocUJElboJw3{^KiYY(x?t}CH{(IW}sV1D17LWf z;@Gi`tOJ#BM$P6(evkz%5m37epIRjcW??Y7_sR23njMD1I^+!igPlc z8&=Xv+h+l$hTCZWxXa^iei`n$$;c+=o&zXTQQ@=}sx`R4ybdnxB6o7iNJ#9+i|#>r zrg2&5h&=E<#W#MuoOx4I)31}@dA-UE6W)Rf#?>1)HoORT1`j8*HP7hA?zCa{hhy*ZYdh_TJdKmT)s2hU z71U`m6>32#mr)=)tFH~)dyD5B)qsZm@~KC#LVWEy3tgYZFfNs7x@PD{m}t6g699Lg zzcza`s+pCJuXssHO0tBUS+)Bt?t4*w<>`a(!)YD4n63~X=FY4iJc4*7%RJ?2e^zX6 zZW`U;pw|3qyT~iH=z;WOkJ3m-3PFuf6Q(?PcZ~);mx40!;U4YjId(S1KYFoweRkh_XN3)fJzv^JEY_+9Q$x z5cBcaMxpWu&iO&u&z0cbMCo$kmmlEHg=82V#WFKK_;Fl0U&~3*Ks^1Z>#C_pjK#*s z6MlNf+@%A|5k2im&^?kU`Lsm6&?K}H<_G}^mI#{s6Q5xjCw-A}giYVA9FFyI`G?Zc z8LW@9$9?$a-H(f7bf{`D&_s7bB$T}GS!||mlKfVNO38y(LpKMXMj|C7L}3@>6}wjnM_<7RRgA?(^3QrBfFJdj-!av|G?T3{96nu1RN z^a%kS&kGx3R12-f{ zXdCNE*;m)Dm!el%hg1b!!LuMaaIN4x;s1LUE=MMj@yD$f`?p5F%c3alx#J#|W3j0W zPH!|FIR{ovhG)|AWWSQxaYX?Xd|+Z|I2uY~2z|r@N?)K=ga?m$e1#ua&ghwo%?6D zS_QMgjinHU=Vsb4CiUu(i3^>boq2?Ug+9gq*iQ1thS2_qeGm`RmBX;EZZmUpZ?28p zy}dmuNOCn&zNM*YW07$5!DY!e{mZdQFD^B={0O0K9HBbBS8#o5?|v+!Auj)Odm+Xu z!Ho!^u9j1`#y=6-rgXYZZZp+wgj|LccrXWb%sq}^W(ODC{McqeY~pr$RXVlF(9)}2 zHH17EnL{fKFuOO@){S!I#OS}VK_IPf8sb%0d&;14=Qi9;Jn7pfqswe$VE6(|JacCp+d#){aT>YDpOB@}= zAHk`kTndY>6_WADd%cEDEvTOc7r1f`fX=Ejtk^9*BSWCmB_rJvF1s|_A%~vzn$)7? z?nCN7rpdNYvL}JOQlC(H?OcggNYW&`L3}oQFQA-Aj8CGI&v!}qo1N$qm%P{PR-MAU z{gU~?jCVJ^=;ZIAqL!AHg2%nz#E1Uz+4SKMY}!-UQ6>=ci+%3y~%&9`B|haA7mdGYaSn6GP@0?SOyeo`66?|9CSji zQBI-8G=3${Uc$*ml+T+2sZ_Ei1rgFMi;rV4%VuU~1|Q|_U+bbq*`jr^*y9o`7LTzc z`yH00pHlPkrA7IANZC^#)~Dbc$2HL+PPboPMG%~E)-~>5`yLy=JT7tn%7MlHyUI!( z&euZ+$&M-x!k3y#x8`+IQWsSFuYIa4x}50KoarL~ zyOZlK!DM5{IiT8aMh&o$ms*iGnXJzKePVcPX{lCKO^wZ+71exM=V4JS_HIA!ui!Is zVHOV1smx{e;e322mt+O9Wf2R{bT8~r$ZZC?ubW&Omm4)h?bZEBw-Y&=&_Z95M5-d~c1OIQGum|xus?ZdspWvxb` z-I}pjj%7rojm=zqM0cbJR3#j#xmNa4fEc>4qoJ}C&mG}1%W}`{c()wBU*11Mu6Rfs zeJ~bsWgKtAV;^q}MH0XL6|O942c@<}jsTe?}Ap=?0kV1=ZeI0Gu}ImxOltJXv4Jhzff zhQ;$0BB}wJ%*NboT~)heg9sESg&5s(_)how277FJ^Jl?d?0dEq5!1F<`u6UCwZ1Lthn=GYn<#!QT$Yg&C>0Ls2r- zk|@fwhi;wA`LoO}U0}U@_4}#hdFfmA#42QcJ>u-;x#QADBgbWiM@F`<#knbiKf*T& zbQ}o|$CSIf$YN#%_9J)&OUPnFboW5*E=^d8qxE_HX>Kn3WyvK)%QYH0rW@MEwd4=@ zp%JGsTv(VKw?C>r@X_StW*tM<_inR`vQQ7C`0L?7-b3eUL1gq1?#MTW*u z%R5VdG?9QVC_l()@4bAjrKeecfP}N*OBzLQfZ~&MC|o^arzz4!fZA`f>4+PO996lz z+Jv9)8ak`-;Herw!epL*3}tWy8c*1Z;TIOYI29d0t~FI*FO}k*7=ab6HciH;z&s%}C~vHxlo+ zV@IJlg!bm@O{;79^qiw}Fd6TE3D^}q-3maVUiq1pcQK}0cSoFZ;Z8C~(_THx&R(#H zDw9n8lkjqGH5OdCvWfA_Ks~W_HtjEf^VhFtc1qGn6H$`vfeR94wTnxfVQGnmf+9v> zK&3wAGLKl#2y2|a^G4M#>&K|i3&!N@9_W|7wMFO%P*%5RGu;Kx3By=Mgseq%OKiB0 zs?JA$8~Y^#`JE9q?e}-Ji**eE=hvtq2D!T!k(<${uKT=T1X=vu zkR^5_=SVnyiU@j%4XMLomqE4Y%6xCDe=C~Wmj2Z_8O4Q(kYi4?mZ#=l$Xn zSGTb9+XTaUG#S!(d@CYrIiLS=42BFL{b-crDTaqt`{A5r@bmLaD$B&@eA(06Pfku& zgB_D>JWI(lLp@p*fAs&o0Fv*l8cWYF4gt%JGjq_K`sjapNZb7LE{kTED=6zEV%x^7 ztlI4~J!7672b{_Q8-QPRg;!g*H$1{fc5fs9FfkRZ1lVbdV6oV%!p?jxdhc~jhOP1q z8a0qvaSUS4#;F7{m9pU!NQR$M((^ca6AjqcnBk5>oqZp=vjqL)wwp6aS;7<$Q@{t` z#0Wh$M0QN%d)*7%$%T&DItl2zU+e6(-m6oFysWDFdyDcRt?aVBPksW6Xdy+YI+kPV zm94FhPDB9EI=V7AxiC7l*Sb;Wqa8S*{@LX60pKkI8DTG2E2J z9@Dsv$?(&Oi)?YUfE&SWc)oFup zi*AM}31<^?-;ouz<9O7P_{%FD7-;eICVP#?LS?V*o?ltkBSWFQ$-Y?x`HDR1{YC~2 zeDNErtg7QKz;`c3K|1!b+yX-VrPj`C(KbBXzA8TIm#)54PEJ>o^;U> zOrCBXLQTIha~Ix?45j@ory!r>C{o5>U9~@$wG@de`X!WgpRSyDHE`b$sr?t8Vg}Bm z9~W>GU-(&W)7YHMC(SSCfcIC%h$I7;lCP5-rW+pYnur^yFrsyt#~F;LRZoPfYs?BF zy1Osr7gHpaTpA-eY}C$9#cZ;^FX_d>w2ZKw*s3ahwM9d~fH^N+2b^<@sSia==0vT* zc-w~$AFA>#9O0BMGq(&=|5*=6*lN*7xV>{*UAv?%J=1nLyDCqTU;indkJgNKspGDN zB5R1=v%mS|>(sw9Fw#C&oE65XJvu0fy8Sw!z(^*UJZ=af%Sp4eh_#LHik7IeJ8S{Q zP!y)T=RDI_<>}#Fq{E>z4YmB z!D}$Al9=?*|GkFH21C1bmj^95(YBD%Egxe|b=YBd(ve~eAIrlYX`^`m@M2u{l0a_P z`;z;(Tcb)UW!~Zu3GbTg6dJ~| zhlhuO-rKZt{0Qw85c0<1mW|D+RMcO|4$WS>k5XUjEv6UEt$69<7XnPv!amAvqAVz! z(ldAE;o-3-ij zi1}i7BeJM^m*$JuuiB?-$9XQFb&#hGf!Rv9uvWut8=s#<=~C%U!{wd%m~5Un8Fd@Z zSvFFi#@9i#5P1s|r$UzGR)?Xa8GB+uVGL1!}SI+suk6#?ins)QYwxra6QUhz^h5 zC9s%xqF^HeMe?P%hIq^)n(QT;#b8o|5wj}K>&n%f!!kr+BloSY2dhLG?Nr|kvWm~% zEsxe6XDreotZpMjOKw1MpGn@t)a!FAUns4SWdcI6zfEKknpZMO8!7CRm{9ve6WxlO!t>ouAWw+Srlpdu`IqkyuI9=jBfuDscD7LrX1~0 zGH9WGrIsQsP>7J5n;Xyv{{a1_l(>5fe+kOsies{0Dgq*n>)bGpbXZs2lenHA4RQU0 ze>N%SX8r1%BFHE08*4$!2zGsu8QLK^q6_#<$kPW)N*vwYCXph}m~InZcWr!r{w}$l zI>d+Jru30E4=C3v*B-gig68xun@(O@@zKSs-ebD)D=#v$ zvMvj~yX!R~t7&W(e)4boJL5y=*vyHEd&(9d)Z{EkJ>di^083}yH|vqXd^{O2UnaDp zF*LaxRTe-W*)w%%!QKpfInyv*mx?OQ+}-w~`N4{8dRxA(Av$Hux_E%}Q;G6y_MqyK zL4I<{U1|gj9ln6}!*1r~z~6|Ug}3@L8o?stqF#s^e=BKdzjgQSKM@J$rW;~Ox#fAes*$QU_PKNWedMo#x%YKh~3s= z)-GjaJ#Gny>l1c!F`yEkZP!wntx|AEKaa--S+gHTxYzil*Yrzu9VV((gHF{YdFuQl)rGwH|nEE8&c zt^*kG8v85$XB$v20s>DJ!}!}OO|n15fCOrS(&i&%C!G{5#VcYcVP05+-iO<=DS3VQXN~s^M4s}@vO7^aw#OrX0d+`1(ni>BTjJSu z*l=ssy}NMVE;iXXUK2eX;po35?srkP)<6xRp)y1lrpguqzFqBhA9#sMFO&W?`PsyJe%WY?|j+)Z)UQH(9-Xt=nFKiltnSXpenGg%^xl7}aRIK4Ie}Q4hS`S$Ph&e!h+`e+5)#0TW zN}zvvRH6FTQwpA3`gfG3*og?#C`7+H_W?Hpq(wuLZ*G*Y2X9+kCN&xUzA^SgE-O?a zV8a63Y{w%;SC^{X=Y4U0TQ5kDRn8J^3<}W$cf{KJc+H=tvZRy#R)`v;>$^o{P5KS# zG!@%I@>|qqDwRbuzo>Ge=awm!dKCQ^SrN<`o_QJ46?t0G1AcX52wVU9^{kX~old00 zLEW1-b2EJsx?+Qjd#M*hOVaBC3s#CI%3prgevw%!`Hx@5rK^l{w=J5n#Lc*THIWTm z+>SovOO#KQ_xA<^(vKG*@O=GPCV&d5T85QJK1n|)hg|;oc05?S{k;Y$hXC3HO?+Pw z$Bia?Iz*tQ>ZdeW#n8dpcKi05%GD3 z>`pI3z<7-yOax&g!dOYGmLTm9zJoptTE%It@s@TjBX7j_Wh{ylkT4+&q&VV@3}qfCD|h!oeVjAJwm6U$o|b(94lp0+cJU`=z=7p2wWtWkoLO9<7NX{M zQNh*C_G!l7W1s*g$S-~%0Rg`n(7o_HLscoZpiF{4b$hKvf?or0zIj;e2Uy8dyPDs` zmDL-8fD1KPaR+B#!-*M;gl^f|7C{dl8y=(zr=yo6m*F_iY^QoVs+~BY0L6F^`I@e- z6*eCVi9}U+9V{ZQ#xQD2k_nfEjbT**!L`(IiT@3l5tzglqoMhFF4=))!rUa`afR95 zBi$z!`fLz5^I4jnwItPIU^-LD?&qQcfsOMtXL&FL(7g5512sYAvU}58#enGkrt#wI zr%F@xizPQDJ49-1I$I)P750y8-V7mO#%5*1%YX?&p|2yd`KNU1DdyszXk{Jz!{uQQi^o$l{ z`t8=Qs|c%2TeqJB$<0PM+eF6kUiQ%<;6}1kgU@LiXCB2N-C2n*cVEXGU6|&G z>1GA@P3js6SqyGh8-ub6VrL$?uEULL7&(77VWf(Z*YQqLB2F6Z7pe9 z-OAUB_VzE8C8K3=PeTvotFH6(I}YI|C$Dlxxs2~M%rpR&;ItZrQz_$Y2>Ju)0?MeF z>SMH9E+Dx=^ibZ{+sddR0NPsNjW%~P@m6>4&_6&uw|`RZZVT02R=tUo8@V5B{liUE zvG^7M&ywWx{han@Zyu)2 z`LAE^Y&eYZyZ_iZlqT}C@Owt2Fl&kp(GtE|dVKp*qK`mSx0PQy98W-;ZB4tW<7~En5knUwp$Fe zh(NA^>bap&n{J}!g7<$}yWS_6d7Q6la5)CNt2bbuH?7fEK>bzhh+n06M{`@BO329H zr^W%uT;@au>oXs4o4`AjW%R=fKR3rm^jjO8npzj-kDzG{4wvnO49t(y;9lK4+@Di{D53CAJ1VPjAaCcYifj>b2WgM`6I&^(* zS7;prnED&4KLbGV#(vD?Gl#bE*R&7a_Pq+Q5SP8R&z)^zrj;KjCtC`}maWKpwhkh7 zQJ>8lMiI`#nKz-6@$$bL#a{adM`1L^-$HyofBt-Cztrj3F_v__R7+{wL>A)--Kr~X zbCL~Kt)?0BnwpzC9nq{=CkI0n3Kv!kPTyv^Mdgda?;a9)qPB&SkwIK{fK_3bo4fnN z3lGH*MdC3QMBltz{!uaUQ9SP$S``_V{Hk=`7Vqkj>4SDvfaY&r6D}zLf+Y>OIelQv zwY_6y6$pTvbgx=&O)_R|)L*T8p&OcHzjh57cvW8BDm+>rDDbHyzu#1o6nqzf9wr3< zy21A)J2}vwV>Fd7PXRyW)9;+e@c>BP6Pl7{?Wm;y9AQD7QE8pEF{}PUjzb@=weRcT zK@LdTzS%5Scusk69pevwAmYPmg;rrFJi{MzvF z=YT2Ew55#*kZxS?ax_d*wm!fk+Uz8I#2oeJeq2}&ZsEpq@o)lI%0MD(Z~PnYOROFK zQ4Z{UHdCUqjUMSG0QBc!yqi{QYhS)>>zB05hjAwZMKPYo1H7iVosGg|wt>jm>wBNE zuiAv-pT1yW-}WBAh}U^^F`?Z3462*O-lW_aY)Z9wpCP5Qr}KjOi2&X6IrtME3h_W$ zOxS3-_$-idd8+dtUrg5x<2xf1pEAQj2G46+At2L^kB=<`85M>_Oz5BhyQQHAH|f7l zOf)bcx{3dm4CcMaL;zpkfyVOI%1Rsk{vH$wDjjgdG+Mk6=+P%?I~LqpTk9b2AgGlOcYRBxs?;<0OWPrR$2W454?z zJPR}RRUCz+ZP_DmmS@^sa~7#;+$(_x@BSJ)i8y0|{y8I@UNgcRa+elyvp16j*1(ct z867Tegum>vTPg+Kj2hW6*D~O%7AaE^*soM&U+qwHg!^{hxWG(xbox&;VQ5d{<7%4U z3}_e1hWL%_s+XVKyu74DODgPNz2-=?s%Z$Rz$n_kjme0}IRG?pg`Su|TL&&2H&pNw(+Ln_RfCUIBzN)1}Q?np!t}vO0g5a2?+Sl9a!?)c6{58B=aKF`nr@_@^Jb zZs~_$DtKlTa%cAfb3)bqM2W{3Z#Zq~3q6_DjtCVd%gF()HSOhUKljRByX*&qm1pAS zw`qMo5IwD>wKwNMWE>rOM}*^we&3|%+fwljGQKkyxy_v5`0%@*_~1+l5JQ!~E*guc z_S5x9r?rl|+Zh&Qy>g@XV0U713F7LGOTxe^^&(<=AekqUJoK#D7%J2k<&hKvRNcjx zAXz?);~+1Ld&BUGD#S5oOfK(0(w&u14#*p)?S<_6g1Zw@ey*I==C zmb83wK~~3%E&t`;NX2SF|E%?%5lt|aFKP3<1%=z5^Pn1l zOWU|z2LRV-#hgi_Y#OGz&CSfF*^;C!0cXz>Wixq@#`xpC1HU^00sKomFMJA~eWCSu zFF$ri>G$&8yse~(YkXuNDocqhx}GqNhey4+-p*zvrM6ZY^x%_O)aE@;ItIPBCjFb4 z23rE%LAj_e$r&(S`bhrNL5BEK3O=X@C(1O=6K8L2y=K3Olc4QW0O;Yb;R^|346kn< zru{ZvZqQZ%6r(6iw;^z>)9xS$d~x=yr#Yypz2l}`jF>A9e{KPICy9wV<3qWA)q;`$ zR(U?XXyIq`>ZZt3C1@t>4({X=aNBQIv!|3^8dh;>*;~C(VhXI+{|dd^!n)+HUOlGm z%PHEw)~H-)yL|9BwNTF8MSVt~SLCJ-?O#-q*3|)V^Nl?x$9jj? z;`S}M91N(oU*$&Gp~$Gy87U|Vy+s+Txd+TJw=QAi46Vj+2)hEC_V{h)^t(@lqs}vt zGwvaRNj24sJXjySQU)w9EMPZHjaM9*HUM2nIhx5Ysi6vGjg5G?A%5=?%w|g5-=_P@ z3_o#DeM7@;3=o{Gv>&sP!hV3g7>x-l?X-PwA+QH!Oyc?jJr9rdLf|9|BkCEmKT`<> z60L>5|6Zgu>!|TLP=^%g_Ya5#qGrH)0Pw?kL@%9aODZNh zSFQ<`H2%oODUfp*js1Zn&qKBd#ay)Z&-2dAiQbA4}EuV&6&0bZT zxKNgFY-?-V#8L0J5~doJdY*WNxRclRoRJg$;SR;liAY!k@PY}K$fH+?o#y*0e(oIN z94sus+jIbB#<;FhC%ZfYvn^}r8(X{nrAs~Kn2oL>bzlVjNimaQU<+~Dea|DeTH0j^5Y0uzLNx9fvzpyfA6_jaMJT3?yJz|8 z?rD$Q=wJMMMLy7s`@+?15mB$cRDZc^X&J0FHuiXGC8yH!`veQsAzjoQx$0OCy7z5- zJm)h;tA)&*1gK?V`V`4I)0)n8%|a)MmDyz}KAh;G_HrzK!9RHO5n}>UlZ}lno1~3c ztoxbg1tJxF(4p}TlTaH_mvWE&62J?~lGlIJbx~bx-<3)2|V`Vts7un!k zdy_cm3EIm?$;!{lYGwrqdng+vKr)04VjK?#34C(RmgX5?_be2c&p>Dz&~F9fzkcm- zmBm=6Y#dZwK*$rf-2juv4X&>I+r#)A}wR`1$$e;{zG!`VM)+`Q4Czfc#BX z8O#2^Eu@i7OP;}9oElFVe|&wQuyL4lkbA{rAkg3c6pfbB%;I%JHgWgh{B~v@0lO+0 z&huH$fgTW$#Xjc#MG$16FR=OCgq7v*4-Uy-!y|U*w*YJs(LoT{>R!Rd^QLlwZyg=` z^unK*+HJd%L*8%#)lr)ZsH#_|$H#X(pzNNz=4(z%B%uqUyYf%xI^;MvmVB?Zk@nOE zkIDN48B?A#5q@x0B}(cFee@46Vf-;^kTSyVN&MR!1_tpY00KPF`HC4f=fg%s_t`BM zHQt_d$fqSuhR})h17uo&(3{#ipT*%#Kz0i2TH5%0_lFo*#xp<+t=a9%o-!&UDIcmJ z1js^*p3Ps#Il2cfuCW8dp``j@G?_^F&DdnkGJSMp=n=H&+pQBM=x zM0|oQg-g^29O`LkPBU)PmR)|c^$*H&Li=ot-f`*5LuX;Jxnd5X;^%(&?+1SwU?nUN zZ|sJiHG?#q5C~Z0;SbxK9kmNO$O;$E39@eh_eb9M_xJxGb!ByI<_pq~E2==2))`tb zMK#w4mioG;CjHS^NlNXa7>K2HOBq#uod&VfM0>-b}+5 zABZr$xq&=OGwB+^Spo9X6?lvE$Cze;#r1LC)%#fJHwvBd8SZrh@S9 z!vUK=!;7xLzqAhufaM+u^tcwDTLxv+x|`pD4iicAO_Xzbd!Nh1i@}?5Jj7{Q>qSO@ z(L2HYG|U3o1BY_-gu^A2>PpAmqT6zaqo}<_K1iAfo_>5%lREfQp#SHNbVy3v6aWo( z^%O6s>u#icn%|U+QAoqA+u3xECDOx`fY(KxPNU_TsRSTS&W%(i!-LRElD3WT7yrn? zwz?VQr(T>5lJ!E#j>$0aCR0_8Z5DD)9|)6wTiaWol5hL|H@jD98Mgp-iEw>j#tMp_SWM~<)NKQOGm!)%6wTBDcX##VI?MpQl)KHm0&BQJ~U}p zm)U&xy47l3*0+=KM_lw)!PCq{6S5co=%EjyCANaTW`!(a21uG0nXS(fJ!0%R0f@Nm zGT#N^MH5y6#1?NhoObn#hs=Dm;AbxND0@MY04Kx!g{I%Ul%;zzM%2V~=xyMZGWhXH z5$>dVT9fX|#8GiMwNMwyw>;g&H}CtYt_rA;|0a&Q2sU*kom(}9Fassh?t>Fxufzo> zqjwk(W=HO@j+dy%A)6MeYkeW>wQ_9b;sm+qS*r`;ZD zIUcS*N;0jFe=A)8j+w4`MenS2`#s_4yW=i<`6f*Vnh}v_3Q>`;#r#SHVF87@?|&Iv zXO;jI`kW&R7d6t#9|NZoXxgYf=&ne~GN@=jRH#e#hpv8DCfxVmwqL6Cd(@Xv+}!Lx z2KueU{{`3qC;kx~f>f=`eD-i1(tGIh`4;E(o2wG7^egHrA62Es;b`ZvN&6j_P08MnP&qy6ob2ub`eo4Ge0eacxb5P z`&zwv^$tRabBO3n*yNYW!h1yYmt->eyMgA}DlMhTjzxN)JpP~UkxcHAWU(EAb|LWg zlCU!|wg(U(!gyx*kP7=OBf@BAlmiF>yqSo)nb8Gc3jh$|GXP-5MrQtii2eiO_X+e7 zGkwJ156Y7Mk2YU+#E{LxJ6uRRBkqONF<~WuaYQs4z-VS3%ghqMMj}cu^T$N=UjQEn zAvV<1)ckw6D^S^pL?Zq%W5(?3^Z9!Aa1UnQ7O6M69&1N8QW^0(i0ECUlz??Yh&9E? z%T;PbA`$=Cv12C-A@)R$d&tad(@}zLilV$<9LY-q(=@-q%=`3;EZrHv82oSlHuw7X zUQfiY5aQKvIJ~xak`EtNuU@^2&*z)U%ymSxJyJnrJ^wZX_!Oy#>;D3HT}s(9Zrr%G zp<3Ff2g5KXGxMQDRGUunyDL&JNTZQTr1}L?byn9ibBhq-Z{cv*7_1fa{{f6z4s<>U R0H6Q>002ovPDHLkV1n_Dg{c4l diff --git a/algorithmique/todo.txt b/algorithmique/todo.txt deleted file mode 100644 index c5be892..0000000 --- a/algorithmique/todo.txt +++ /dev/null @@ -1,20 +0,0 @@ -todo -==== - -- un code-block:: ocaml ne passe pas (c'était lequel?) -- le tri de listes est à supprimer (ou bien le faire en python) -- donner les corrections des exos de TP -- l'abstraction de type dans les modules : - refaire le type date correctement - -- l'analyse descendante avec les dates : je l'avais zappé mais c'était bien -- modules paramétrés ? à effacer - -- éviter de "mélanger" le python et le ocaml -- l'appel d'une fonction n'a pas été assez clair: - - reprendre la "boite noire" plutôt avec une analogie avec la cybernétique - - plutôt que de chercher à dire procédure/fonction, dire "bloc de code qu'on - isole" et insister sur les locales et les globales -- ne pas centrer sur la programmation impérative ou fonctionnelle, - mentionner la fonctionnelle - diff --git a/poo/INFAL26-ConceptsDemarcheObjet.pdf b/poo/INFAL26-ConceptsDemarcheObjet.pdf deleted file mode 100644 index 17f55bcd4faf692fba3eed44f8e39f5490c26fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39272 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%0Dh9V#it-TT-Vw4Ja2zg40+MiDjr^rybM5n~b z0T9*Tzy?UYgh5*{WvF(>Vn9l%N9y-u;2Ap+$LY#wd2 zSPDp^k1cmNM`$51(mj#!akAso684x7zlBXVR&#^PAB z0NOmf5cP06_g(g&sw~<2-nnlVCVukzvIlSz4}i6_Nf6 D0@ZKn diff --git a/poo/cours/Makefile b/poo/cours/Makefile deleted file mode 100644 index 8b94f17..0000000 --- a/poo/cours/Makefile +++ /dev/null @@ -1,216 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Algorithmique.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Algorithmique.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/Algorithmique" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Algorithmique" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/poo/cours/_static/cesi.jpg b/poo/cours/_static/cesi.jpg deleted file mode 100644 index dafbe55de24691c42c68b12402a75d4f863000ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60367 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 diff --git a/poo/cours/algo.txt b/poo/cours/algo.txt deleted file mode 100644 index c2f8ed7..0000000 --- a/poo/cours/algo.txt +++ /dev/null @@ -1,291 +0,0 @@ -Algorithmique -============= - -Al-Kharezmi, auteur du traité "Kitab al jabr w'al-muqabala", est l'inventeur -des manipulations algébriques (algèbre = **al jabr**). -C'est Léonard de Pise, dit Fibonacci, qui emprunta le nom du célèbre -mathématicien arabe du 9ème siècle, mais l'algèbre existe -depuis bien plus longtemps (Depuis Babylone, puis ensuite l'Egypte ancienne). - -.. glossary:: - - - algorithme - - terme désignant une suite d'opérations constituant un schéma de calcul - ou de résolution d'un problème. C'est un processus systématique de - résolution d'un problème permettant de décrire précisément des étapes. - C'est une suite finie d'instructions permettant de donner la réponse à un - problème. - -L'algorithmique est l'étude et la production de règles et de techniques -qui sont impliquées dans la définition d'algorithmes. - -Implémentation d'un algorithme ------------------------------- - -.. glossary:: - - implémentation - - Adaptation de la méthodologie de calculabilité au calcul effectif - sur une machine abstraite ou via un langage formel. - -Il n’y a pas de parcours à sens unique de l’algorithme vers l’implantation. -La quête d’une implantation efficace nous amène souvent à effectuer -un retour vers les algorithmes eux-mêmes, et à en modifier des points -essentiels. L’aspect théorique de réflexion sur les algorithmes, -et l’aspect pratique de l'implémentation sont donc en symbiose. - -Un existant émerge de la décomposition structurale d'un -domaine de base. Le fait essentiel, c'est la genèse des genres de l'existant les -uns à partir des autres. - -L'essence d'une forme (un algorithme) se réalise au sein d'une matière qu'elle créée -(un langage). L'origine d'une matière fait naître les formes (concepts) -que sa structure dessine. - -- Notion structurale de non-contradiction -- Notion extensive de "réalisation dans un champ donné" - -Deux aspects réciproques : l'essence d'une forme se réalise au sein d'une -matière qu'elle crée, l'essence d'une matière faisant naître les formes que sa -structure dessine. - -Abandonner l'idée trop simpliste de domaines concrets et d'opérations abstraites -qui posséderaient en eux-mêmes comme une nature de matière et une nature de -forme ; cette conception tendrait, en effet, à stabiliser les existants -mathématiques dans certains rôles immuables et ignorerait le fait que les -existants abstraits qui naissent de la structure d'un domaine plus concret -peuvent à leur tour servir de domaine de base pour la genèse d'autres existants. - -L'algorithme comme généralisation de la calculabilité ------------------------------------------------------- - -L'importance croissante de l'informatique comme outil scientifique -impose d'élaborer un nouveau mode de description des méthodes de calcul (appelées algorithmes) -susceptible de satisfaire à la fois le critère de sécurité (maîtrise du résultat) et la possibilité -d'implémenter les calculs sur un ordinateur. - -Exemple d'algorithme ---------------------- - -.. raw:: latex - - \begin{algorithm} - \caption{L'alorithme de Bellman-Kalaba} - \begin{algorithmic}[1] - \Procedure {BellmanKalaba}{$G$, $u$, $l$, $p$} - \ForAll {$v \in V(G)$} - \State $l(v) \leftarrow \infty$ - \EndFor - \State $l(u) \leftarrow 0$ - \Repeat - \For {$i \leftarrow 1, n$} - \State $min \leftarrow l(v_i)$ - \For {$j \leftarrow 1, n$} - \If {$min > e(v_i, v_j) + l(v_j)$} - \State $min \leftarrow e(v_i, v_j) + l(v_j)$ - \State $p(i) \leftarrow v_j$ - \EndIf - \EndFor - \State $l(i) \leftarrow min$ - \EndFor - \State $changed \leftarrow l \not= l’$ - \State $l \leftarrow l$ - \Until{$\neg changed$} - \EndProcedure - \Statex - \Procedure {FindPathBK}{$v$, $u$, $p$} - \If {$v = u$} - \State \textbf{Write} $v$ - \Else - \State $w \leftarrow v$ - \While {$w \not= u$} - \State \textbf{Write} $w$ - \State $w \leftarrow p(w)$ - \EndWhile - \EndIf - \EndProcedure - \end{algorithmic} - \end{algorithm} - -Exemple d'algorithme avec son implémentation ---------------------------------------------- - -Soit l'algorithme de factorielle suivant, - -.. raw:: latex - - \begin{algorithm} - \caption{Algorithme de la factorielle d'un nombre}\label{factorielle} - \begin{algorithmic}[1] - \Function{factorielle}{$n$}\Comment{La fonction récursive factorielle} - \BState \emph{parametre} : $n$ entier - \If{$n = 1$} - \BState \emph{Sortie} : 1 - \Else - \BState \emph{Sortie} : $n * \Call{factorielle}{n-1}$ \Comment{On appelle la fonction dans l'algorithme lui-même} - \EndIf - \EndFunction - \end{algorithmic} - \end{algorithm} - -et son implémentation en python : - -.. literalinclude:: code/factorielle.py - :language: python - -En voici une autre implémentation (en OCaml) : - -.. literalinclude:: code/factorielle.ml - :language: ocaml - -On remarque que le **pseudocode** est très proche de -la syntaxe du python : - -.. function:: factorielle(n:int) - -:: - - if n=1 - return 1 - else - return n * factorielle(n-1) - end if - -Qualité d'un algorithme ------------------------ - -- correction d'un algorithme -- complétude d'un algorithme - -Sémantique - - Étude du sens, de la signification d'un langage - Définir la sémantique d’un langage formel consiste à lui donner une - signification mathématique. - -Sémantique opérationnelle - - on définit la sémantique par sa mise en œuvre sur - une machine abstraite. - -Sémantique dénotationnelle - - on associe à chaque construction syntaxique un - objet mathématique - -Sémantique axiomatique - - chaque construction est décrite par la manière dont - elle transforme des propriétés ou des prédicats. - -Proposition - - une proposition est un énoncé qui est soit vrai, soit faux - -**exemple** : ``2 + 3 = 5``. Proposition vraie. - -Prédicats - - Une proposition dont la valeur de vérité dépend de la valeur d’une ou plusieurs variables - -**Exemple** : ``n est pair`` : vrai pour n = 4 mais faux pour n = 9 - - -Axiome - - une proposition qui est supposée vraie - -Un ensemble d’axiomes est consistant s’il n’existe pas de proposition -dont on peut démontrer qu’elle est à la fois vraie et fausse. - -Un ensemble d’axiomes est complet si, pour toute proposition, il est -possible de démontrer qu’elle est vraie ou fausse. - -Théorème d’incomplétude de Gödel (1931) : tout ensemble -consistant d’axiomes pour l’arithmétique sur les entiers est -nécessairement incomplet. - -**Les concepts de base en algorithmique sont les axiomes** - -inférence - - règles d’inférence, règles permettant de combiner des axiomes et des - propositions vraies pour établir de nouvelles propositions vraies. - -Démonstration - - vérification d’une proposition par une séquence de déductions logiques - à partir d’un ensemble d’axiomes. - -Lorsque le champ donné (le domaine) ne contient qu'un nombre fini d'individus, -on peut définir un choix de valeur des variables permettant de vérifier la -proposition obtenue par la *conjonction* de tous les axiomes du système proposé. -On dit alors que ce choix *réalise* un système d'axiomes. - - -Il ne s'agit plus de savoir si la définition entraîne l'existence, mais de -chercher si la structure d'un système d'axiomes (*règles*) peut donner naissance -à un champ d'individus qui soutiennent entre eux les relations définies pas les -axiomes. - -Concret et abstrait --------------------- - -Il est possible qu'un même genre d'existant joue dans un schéma de genèse le -rôle d'abstrait par rapport à un concret de base, et soit au contraire dans une -autre genèse le concret de base d'un nouvel abstrait. - -Une pareille présentation des choses implique un tel renversement par rapport -aux habitudes de pensée classiques, qu'il faut encore insister sur le sens -nouveau que reçoivent ici les expressions de "concret" et "d'abstrait". - -Les systèmes d'axiomes sont souvent conçus comme des structures purement -formelles, abstraites. Ces structures sont si profondément engagées dans la -genèse de leurs réalisations, qu'il valait mieux désigner par ces termes les -structures de base. - -Un système d'axiome *peut* devenir le concret de base. - -Ceci permet d'exprimer non seulement l'engagement du concret dans la genèse de -l'abstrait, mais encore les relations d'imitation qui peuvent exister entre la -structure de cet abstrait et celle du concret de base. - -Dans certains cas, la genèse de l'abstrait à partir d'un concret de base -s'affirme jusqu'à réaliser une imitation de structure entre ces genres -d'existants qui naissent l'un de l'autre. - -**C'est pourquoi on représente souvent un algorithme en pseudo-code**, -c'est-à-dire en fait dans le mode de représentation (issu du langage préféré de la -personne qui l'exprime) dominant chez la personne qui exprime un algorithme. - -Comment rendre un algorithme lisible ------------------------------------- - -- Le bon algorithme utilise des identifiants explicites. -- Le bon algorithme est structuré. -- Le bon algorithme est indenté. - -Complexité d'un algorithme --------------------------- - -On peut approximer la complexité des algorithmes. -C'est utile pour pouvoir comparer des algorithmes. - -complexité - - estimer la complexité d'un algorithme, c'est estimer le nombre de calculs qu'il utilise. - -Si f est la fonction caractérisant exactement le coût d’un algorithme et n -la taille des données, on s’intéresse à la façon dont augment f(n) lorsque n augmente -on va montrer que f(n) n'augmente pas plus vite qu’une autre fonction -g(n). Du point de vue mathématique, on dit que la fonction f est dominée -asymptotiquement par la fonction g ce qui se note f = O(g) - -- Complexité temporelle : c’est le nombre d’op«erations effectuées par - une machine qui exécute l’algorithme. - -- Complexité spatiale : c’est le nombre de positions mémoire utilisées par - une machine qui exécute l’algorithme. diff --git a/poo/cours/annexes/agile.txt b/poo/cours/annexes/agile.txt deleted file mode 100644 index 5884c11..0000000 --- a/poo/cours/annexes/agile.txt +++ /dev/null @@ -1,83 +0,0 @@ -La planification agile -======================== - -Le mode itératif ------------------ - -- livrer des versions successives et utilisables qui convergent vers - la version finale - -- ne pas perdre d'énergie à maintenir des specs détaillées non nécessaires - -- de nouvelles orientations fonctionnelles sont possibles, même tard - -- les specs détaillées sont écrites "juste à temps" - - -La planification agile ------------------------ - -- chaque livraison est un projet qui est planifié en tant que tel -- utiliser l'expérience acquise pour affiner les estimations -- préservation de l'écologie du projet au quotidien (code, tests...) - -La confiance, feedback ------------------------ - -- livraisons régulières -- progrès visibles par tous (pas d'effet tunnel) -- pilotage du projet par choix du contenu des livraisons -- investissement du Product Owner -- chercher la collaboration plutôt que la confrontation - -L'agilité ----------- - -- le projet n'est pas joué d'avance -- cultiver la souplesse -- révolution douce -- sortir de la confrontation, jouer le "nous collectif" - mettre tout le monde sur le mme pont et amener tout le monde à bon port - -Les outils agiles ------------------- - -- planification par itérations de 4 semaines -- entrepot de source partagé -- intégration continue -- tests automatisés -- pair programming sur points cruciaux -- sprints -- extranet : - - - hitoires utilisateurs - - test cases - - gestion du backolog et des tickets - - suivi de l'avancement - - documentation - -Le product owner ------------------ - -idéalement, - -- connaissance du métier à informatiser -- fibre projet -- dispo à 100% - -Les tests ---------- - -- automatiser -- viser l'exhaustivité -- tester une cible mouvante -- migrer les tests d'une release à l'autre - -Questions importantes en environnement agile ----------------------------------------------- - -- quelle durée d'itération ? -- comment découper en itérations ? -- que faire lorsque le product owner se retrouve sur le chemin critique ? -- la planification est faite en mode "juste à temps" et "juste assez" -- on ne s'échine plus à blâmer, au contraire on cherche à gagner ensemble diff --git a/poo/cours/annexes/exercices.txt b/poo/cours/annexes/exercices.txt deleted file mode 100644 index 1597a02..0000000 --- a/poo/cours/annexes/exercices.txt +++ /dev/null @@ -1,19 +0,0 @@ -Exercices complémentaires --------------------------- - -+ **Manipulation de chaînes de caractères**: - (création, accès à un caractère, concaténation), listes (création, ajout - d’un élément, suppression d’un élément, accès à un élément, extraction d’une partie de liste), tableaux à une ou plusieurs dimensions. - - + traitement des chaines de caractères - + s.replace() - + s1 + s2 - + un exemple de regexp simple - -+ **Fichiers** : - notion de chemin d’accès, lecture et écriture de données numériques ou de type chaîne de caractères depuis ou vers un fichier. - On encourage l’utilisation de fichiers en tant que supports de données ou de résultats avant divers traitements, par exemple graphiques. - -+ **Piles** - Algorithmes de manipulation : fonctions 'push' et 'pop'. On utilise des listes - (ou tableaux à 1 dimension) pour leur implantation. diff --git a/poo/cours/annexes/index.txt b/poo/cours/annexes/index.txt deleted file mode 100644 index dc5acf1..0000000 --- a/poo/cours/annexes/index.txt +++ /dev/null @@ -1,10 +0,0 @@ -Annexes -========= - -.. toctree:: - :maxdepth: 2 - - exercices - surete - agile - scrum diff --git a/poo/cours/annexes/scrum.txt b/poo/cours/annexes/scrum.txt deleted file mode 100644 index 3777780..0000000 --- a/poo/cours/annexes/scrum.txt +++ /dev/null @@ -1,176 +0,0 @@ -scrum -===== - -.. glossary:: - - scrum - - Scrum est une méthode agile pour la gestion de projets - Le terme Scrum est emprunté au rugby et signifie mêlée. - Ce processus s'articule en effet autour d'une équipe soudée, - qui cherche à atteindre un but, comme c'est le cas en rugby - pour avancer avec le ballon pendant une mêlée. - - -Scrum définit trois rôles principaux : - -- le responsable de produit -- Product Manager, -- le faciliteur -- ScrumMaster -- le développeur - -et bien sûr, l'équipe (auto-gérée). - -Des intervenants peuvent s'intégrer également au projet -de façon plus ponctuelle. - -responsable de produit - - Le responsable de produit (Product Manager) est le représentant des - clients et utilisateurs. - C'est lui qui définit l'ordre dans lequel les fonctionnalités - seront développées et qui prend les décisions importantes - concernant l'orientation du projet. - -Le terme responsable n'est d'ailleurs pas à prendre au sens hiérarchique -du terme, mais dans le sens de l'orientation. - -équipe, développement - - outes les décisions sont prises ensemble et personne ne donne d'ordre - à l'équipe sur sa façon de procéder - -facilitateur - - est chargé de protéger l'équipe de tous les éléments perturbateurs - -planification --------------- - -Scrum utilise une planification à trois niveaux : - -- release/projet -- sprint -- quotidien -- ScrumMeeting - -quotidien - - Au quotidien, une réunion, le ScrumMeeting (pas plus de 15 min) - permet à l'équipe et au ScrumMaster de faire un point d'avancement sur - les tâches et sur les difficultés rencontrées. - répondre à trois questions : - * Qu'est-ce que j'ai fait hier ? - * Qu'est-ce que je compte faire aujourd'hui ? - * Quelles difficultés est-ce que je rencontre ? - -sprint - - Scrum est un processus itératif : les itérations sont appelées des sprints - et durent en théorie 30 jours calendaires. - En pratique, les itérations durent généralement entre 2 et 4 semaines. - Chaque sprint possède un but et on lui associe une liste d'items - de fonctionnalités à réaliser. - Ces items sont décomposés par l'équipe en tâches élémentaires - de quelques heures, les items de fonctionnalités de sprint. - - Pendant un sprint, les items de fonctionnalités de sprint à réaliser - ne peuvent pas être changés. - Les changements éventuels seront éventuellement réalisés - dans les sprints suivants. - -releases - - pour améliorer la lisibilité du projet, - on regroupe généralement des itérations en releases. - En effet, comme chaque sprint doit aboutir à la livraison - d'un produit partiel, une release permet de marquer la livraison - d'une version aboutie, susceptible d'être mise en exploitation - -gestion des besoins -------------------- - -tâches (backlog de sprint) -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Lorsqu'on démarre un sprint, on choisit quels items des fonctionnalités -seront réalisés dans ce sprint. - -L'équipe décompose ensuite chaque item en liste de tâches élémentaires -(techniques ou non), chaque tâche étant estimée en heures -et ne devant pas durer plus de 2 jours. -On constitue ainsi le backlog de sprint. - -Les items de backlog de produit sont les fonctionnalités qui deviendront -les items du baclog d'un sprint. -Ces fonctionnalités sont estimées en points relatifs, sans unité. - -planning poker - - façon ludique et efficace de produire des estimations - sur la complexité des fonctionnalités à développer - - pour évaluer les scénarios utilisateurs (user stories) - du carnet de produit (product backlog). - -à la fin d'un sprint : - -- revue de sprint -- rétrospective de sprint - -comprendre ce qui n'a pas bien marché dans le sprint, -les erreurs commises et de prendre des décisions pour s'améliorer - -mise en oeuvre --------------- - -Scrum peut être mis en pratique avec trois fois rien : deux listes suffisent. -La liste des items du backlog de produit et la liste des items du backlog -de sprint. La saisie et la mise à jour des données est simplement -un peu moins agréable. - -glossaire ---------- - -Directeur de produit (Product Owner) (responsable produit) - - personne responsable de produire et maintenir à jour le backlog de produit. - C'est lui qui en détermine les priorités et qui prend les décisions - concernant l'orientation du projet. - -ScrumMaster (facilitateur) - - membre de l'équipe dont l'objectif principal est de la protéger - des perturbation extérieures. - Il est complètement transparent pour la communication entre l'équipe - et les clients et n'a aucun pouvoir hiérarchique sur l'équipe. - C'est en revanche un facilitateur pour les problèmes non techniques - de l'équipe. - -Backlog de produit (Product Backlog) (fonctionnalités) - - liste des fonctionnalités qui devront être réalisées par le logiciel. - -Backlog de sprint (Sprint Backlog) (tâches) - - liste des tâches à accomplir pendant un sprint. - Elles correspondent à la réalisation des items de backlog - du produit affectés au sprint. - -Mêlée quotidienne (Daily Scrum) (quotidien) - - réunion quotidienne de 15 minutes qui a pour but de faire le point - sur ce qui a été fait depuis la dernière mêlée, - ce qui est prévu de faire jusqu'à la prochaine - et quelles sont les embûches rencontrées durant le travail. - -Sprint (sprint) - - nom d'une itération dans Scrum. - Cette itération dure 30 jours calendaires en théorie, - mais en pratique on utilise plutôt entre 2 et 4 semaines. - Pendant une itération, l'équipe doit développer une liste d'items - du backlog de produit qui a été définie au début de ce sprint. - -Graphique d'avancement (Burndown Chart) (avancement) - - graphique qui montre la tendance du reste à faire total de jour en jour - (pour les sprints) ou de sprint en sprint (pour les releases). diff --git a/poo/cours/annexes/surete.txt b/poo/cours/annexes/surete.txt deleted file mode 100644 index 44da9b7..0000000 --- a/poo/cours/annexes/surete.txt +++ /dev/null @@ -1,93 +0,0 @@ -Outils de sureté d'un programme --------------------------------------- - -La preuve de programme -~~~~~~~~~~~~~~~~~~~~~~ - -Le niveau maximum de sûreté d'exécution d'un programme est la preuve. Qu'est-ce que la preuve -formelle d'un programme ? Selon la définition de Wikipédia, ce sont "des techniques permettant de -raisonner rigoureusement, à l'aide de logique mathématique, sur des programmes informatiques ou -du matériel électroniques, afin de démontrer leur validité par rapport à une certaine -spécification." Bref c'est un raisonnement logique sur un programmme qui permet d'être sûr que le -programme est valide et ne va pas planter. - -La preuve de programme est très peu utilisée dans l'industrie, car très coûteuse et très -difficile à mettre en place. Elle quand même utilisée, mais dans des secteurs où le risque doit -absolument être évacué et où il n'y a aucun droit à l'erreur. Par exemple, le secteur médical -(informatique en bloc opératoire), militaire (peu d'informations nous parviennent dans ce -domaine), l'aviation civile (le logiciel Astrée pour Airbus), la fusée Ariane (depuis le bug qui -avait fait crasher Ariane 5 ces questions sont prises très au sérieux), et le milieu bancaire -(surtout le domaine des décisions boursières : un programme chargé de lancer des décisions -d'achat ou de vente à la bourse qui comporte un bug peut en quelque centièmes de secondes faire -perdre des millions, voire des milliards d'euros à une banque. Le programme ne doit tout simplement pas -bugger). - -Le model checking -~~~~~~~~~~~~~~~~~~ - -Le model checking, l'analyse statique et l'interprétation abstraite procèdent d'une méthodologie -moins lourde de validation des programmes. Ces méthodes analysent exhaustivement l'évolution du -système lors de ses exécutions possibles et permetent de dire si globalement, dans un contexte -donné, le programme va fonctionner correctement. Encore très lourdes, ces techniques ne sont -utilisées que dans un contexte industriel de haute sécurité. - -Les tests d'acceptation -~~~~~~~~~~~~~~~~~~~~~~~ - -Il y a plusieurs types de tests - -- unitaires -- fonctionnels -- acceptation - -Très utilisés dans l'industrie, les tests unitaires et fonctionnels ne testent que certaines -parties du programme et permettent de dire que le programme va marcher grosso-modo à peu près. -Beaucoup moins coûteux à installer, ce sont des éléments cléfs des méthodes agiles. - -Les Outils de linting (validation) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- vérifications syntaxiques -- vérification sémantiques -- vérification sur les imports inutiles ou mal formés (imports croisés - -Exemple en python : pylint - - -La dette technique -~~~~~~~~~~~~~~~~~~ - -Au bout d'un moment le code devient du code spaghetti et les techniques sont obsolètes. -Les tests permettent de solder la dette technique plus facilement. - -**avoir le courage de payer une dette technique, et affronter une dette technique -sinon il peut y avoir un coût à payer qui sera pohibitoire.** - -On solde la dette technique parce que à un moment ça va devenir beaucoup trop -cher à payer. - -Les méthodologies agiles -~~~~~~~~~~~~~~~~~~~~~~~~ - -La manière dont le code est produit importe énormément. Par exemple, une -méthodologie ou le **refactoring** (réécriture de code) est permis et même conseillé -a plus de chance de produire du code organisé. - -Les méthodologies agiles produisent en général du code mieux organisé. Ce sont les -méthodes de travail les plus en vogue aujourd'hui, elles mettent l'accent sur : - -- Du logiciel fonctionnel plutôt que de la documentation exhaustive -- La réponse au changement plutôt que le suivi d'un plan -- Le logiciel fonctionnel est la principale mesure d'avancement -- Une attention continue à l'excellence technique et à une bonne - conception améliore l'agilité -- La simplicité est essentielle (il est facile de faire, il est - difficile de faire simple) - -Le principe de base de la méthodologie Scrum par exemple est de focaliser l'équipe de façon -itérative sur un ensemble de fonctionnalités à réaliser, dans des itérations de durée fixe de une -à quatre semaines, appelées **sprints**. Chaque sprint possède un but à atteindre, défini par le -responsable de produit, à partir duquel sont choisies les fonctionnalités à implémenter dans ce -sprint. Un sprint aboutit toujours sur la livraison d'un produit partiel fonctionnel. Pendant ce -temps, le facilitateur a la charge de réduire au maximum les perturbations extérieures et de -résoudre les problèmes non techniques de l'équipe. diff --git a/poo/cours/apercu.txt b/poo/cours/apercu.txt deleted file mode 100644 index ea09668..0000000 --- a/poo/cours/apercu.txt +++ /dev/null @@ -1,79 +0,0 @@ -Aperçu des algorithmes fondamentaux -=================================== - -Les algorithmes sont partout. Absolument partout aujourd'hui. -Il n'est pas un domaine de nos activités qui ne soit liés à tel ou tel algorithme. - -En mathématiques ------------------ - -- l'algèbre (étude des structures de données) -- l'arithmétique modulaire (théorie des nombres) -- la géométrie (affine, algébrique, invariants topologiques...) -- les diagrammes (diagrammes de Venn...) -- les colorisation d'une carte -- comportements stochastiques - -En informatique ----------------- - -- les algorithmes sur la manipulation des structures de données - Exemple : les algorithmes de tri, de recherche dans un arbre... -- les parcours de graphes (chemins le plus court, voyageur de commerce...) -- la cryptologie (code gray) -- les stratégies de jeux - -Tirés du monde réel --------------------- - -- les jeux (casse-tête, dominos, échiquiers...) -- énigmes, logique et paradoxes -- problèmes de raisonnements. Il n'existe pas beaucoup de méthodes - ou de moyens simples pour traiter et résoudre les énoncés de logique de raisonnement. -- La "marche de l'ivrogne" : processus de progression discrète (pas à pas) - dont l'étape suivante est lié à l'état présent et pas du tout à la mémoire du passé proche. - Il revêt seulement un caractère de type probabilité (stochastique) dit markovien. -- algorithmes de colonies de fourmis (chemins optimal pour arriver à la nourriture) - -Le voyageur de commerce -~~~~~~~~~~~~~~~~~~~~~~~~ - -Le problème du voyageur de commerce, consiste en la recherche d’un trajet minimal permettant à un -voyageur de visiter n villes. En règle générale on cherche à minimiser le temps de parcours total ou la -distance totale parcourue. - -Il suffit de construire tous les chemins possibles et de calculer leurs longueurs. -Avec ``n`` villes il y a ``(n-1)!/2`` chemins possibles. -Avec 36 villes on trouve : 5166573983193072464833325668761600000000, -si le nombre de villes augmente, ça devient vite rédibitoire. - -Résolution par - -- algorithme de parcours de graphes -- algorithme glouton -- algorithmes génétiques - -Les algorithmes génétiques s’appuient sur un principe de sélection des individus d’une population qui présen- -tent des caractéristiques se rapprochant au mieux de ce que l’on recherche; cette population évoluant par -ailleurs selon des critères d’évolution génétique à choisir. Dans le contexte du problème du voyageur de -commerce, un individu est une tournée, un chemin et une population un ensemble de tournées. Il s’agit -maintenant de dé...nir un critère de sélection ainsi que des règles d’évolution de la population. - -- approches métaheuristiques (exemples: colonies de fourmis) - -Exemple de résolution - -.. raw:: latex - - \begin{algorithm} - \caption{Algorithme du voyageur de commerce}\label{commerce} - \begin{algorithmic}[1] - - \BState \emph{Données} : $L$ \Comment{Liste des villes à parcourir avec les distances entre les villes} - \BState \emph{Données} : $L'$ \Comment{Liste du parcours des villes à effectuer} - \State \emph{début} - \BState ... - \State \emph{fin} - - \end{algorithmic} - \end{algorithm} diff --git a/poo/cours/cesar.py b/poo/cours/cesar.py deleted file mode 100644 index c3d25ac..0000000 --- a/poo/cours/cesar.py +++ /dev/null @@ -1,61 +0,0 @@ -# coding: utf-8 -minuscules = 'abcdefghijklmnopqrstuvwxyz' -majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - -def rotation(chaine, x): - """ - Effectue une rotation de x caractères vers la droite: - >>> rotation('abcde', 2) - 'cdeab' - """ - return chaine[x:] + chaine[:x] - -def index(c, chaine): - """ - Trouve l'index de c dans la chaine: - >>> index('n', 'bonjour') - 2 - """ - for i in range(len(chaine)): - if (c == chaine[i]): - return i - return -1 - -def chiffre_minuscules(chaine, x): - """ - Chiffre une chaîne composée de minuscules - >>> chiffre_minuscules('bonjour', 3) - 'erqmrxu' - """ - r = rotation(minuscules, x) - resultat = '' - for lettre in chaine: - resultat = resultat + r[index(lettre, minuscules)] - return resultat - -def chiffre(chaine, x): - """ - Chiffre une chaîne quelconque - >>> chiffre('Bonjour les amis!', 3) - 'Erqmrxu ohv dplv!' - """ - r_min = rotation(minuscules, x) - r_maj = rotation(majuscules, x) - resultat = '' - for lettre in chaine: - if lettre in minuscules: - resultat = resultat + r_min[index(lettre, minuscules)] - elif lettre in majuscules: - resultat = resultat + r_maj[index(lettre, majuscules)] - else: - resultat = resultat + lettre - return resultat - -############################################################################# -# Programme principal -############################################################################# -print(chiffre_minuscules('bonjour', 3)) -print(chiffre('Bonjour les amis!', 3)) -print(chiffre('Erqmrxu ohv dplv!', 23)) -print(chiffre('Eudyr, yrxv dyhc ilql fhw hahuflfh!', 23)) - diff --git a/poo/cours/code/factorielle.ml b/poo/cours/code/factorielle.ml deleted file mode 100644 index 5065a2c..0000000 --- a/poo/cours/code/factorielle.ml +++ /dev/null @@ -1,17 +0,0 @@ -let rec fact = function - |1 -> 1 - | n -> n * fact (n-1) ;; - -let print_fact n = - Printf.printf "factorielle %i = %i\n" n (fact n) - -let main () = - begin - print_fact 5 ; - print_newline () ; - exit 0 ; - end - -let _ = main () - - diff --git a/poo/cours/code/factorielle.py b/poo/cours/code/factorielle.py deleted file mode 100644 index 734719f..0000000 --- a/poo/cours/code/factorielle.py +++ /dev/null @@ -1,12 +0,0 @@ -def factorielle(n): - if (n > 1): - r = n*factorielle(n-1) - else: - r = 1 - return r - -def print_fact(n): - print "factorielle {} = {}\n".format(5, factorielle(5)) - -if __name__ == '__main__': - print_fact(5) diff --git a/poo/cours/conf.py b/poo/cours/conf.py deleted file mode 100644 index 3005e97..0000000 --- a/poo/cours/conf.py +++ /dev/null @@ -1,370 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Algorithmique documentation build configuration file, created by -# sphinx-quickstart on Thu Mar 16 16:07:00 2017. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.pngmath', 'sphinx.ext.ifconfig', -] - -# ajout des cours avec solution des exercices ou non -def setup(app): - app.add_config_value('correction', False, 'env') - app.add_config_value('exercice', False, 'env') - -exercice = False -correction = False - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.txt' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'Algorithmique Approfondie' -copyright = u'2017, Gwen' -author = u'Gwen' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = u'1' -# The full version, including alpha/beta/rc tags. -release = u'1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'fr' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -today_fmt = '%d/%m/%Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -default_role = 'literal' - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'alabaster' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -html_show_sphinx = False - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -html_show_copyright = False - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Algorithmiquedoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -'papersize': 'a4paper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -'preamble': """\usepackage{amsmath} -\usepackage{algorithm} -\usepackage[noend]{algpseudocode} -\makeatletter -\def\BState{\State\hskip-\ALG@thistlm} -\makeatother - -""" - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'AlgorithmiqueApprofondie.tex', u'Cours d\'algorithmique approfondie', - u'INFAL24', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -latex_logo = '_static/cesi.jpg' - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = False - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'algorithmique', u'Algorithmique Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'Algorithmique', u'Algorithmique Documentation', - author, 'Algorithmique', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - - -# -- Options for Epub output ---------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = project -epub_author = author -epub_publisher = author -epub_copyright = copyright - -# The basename for the epub file. It defaults to the project name. -#epub_basename = project - -# The HTML theme for the epub output. Since the default themes are not -# optimized for small screen space, using the same theme for HTML and epub -# output is usually not wise. This defaults to 'epub', a theme designed to save -# visual space. -#epub_theme = 'epub' - -# The language of the text. It defaults to the language option -# or 'en' if the language is not set. -#epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -#epub_identifier = '' - -# A unique identification for the text. -#epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -#epub_cover = () - -# A sequence of (type, uri, title) tuples for the guide element of content.opf. -#epub_guide = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_pre_files = [] - -# HTML files that should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_post_files = [] - -# A list of files that should not be packed into the epub file. -epub_exclude_files = ['search.html'] - -# The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 - -# Allow duplicate toc entries. -#epub_tocdup = True - -# Choose between 'default' and 'includehidden'. -#epub_tocscope = 'default' - -# Fix unsupported image types using the Pillow. -#epub_fix_images = False - -# Scale large images. -#epub_max_image_width = 0 - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#epub_show_urls = 'inline' - -# If false, no index is generated. -#epub_use_index = True diff --git a/poo/cours/control.txt b/poo/cours/control.txt deleted file mode 100644 index 7770490..0000000 --- a/poo/cours/control.txt +++ /dev/null @@ -1,294 +0,0 @@ -Les structures de contrôle -========================== - -L'instruction de saut ----------------------- - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de saut conditionnel}\label{saut} - \begin{algorithmic}[1] - \Procedure{Euclide}{} \Comment{c'est l'algorithme d'Euclide} - \State $\textit{stringlen} \gets \text{length of }\textit{string}$ - \State $i \gets \textit{patlen}$ - \BState \emph{top}: - \If {$i > \textit{stringlen}$} \Return false - \EndIf - \State $j \gets \textit{patlen}$ - \BState \emph{loop}: \Comment{C'est le label (l'étiquette)} \label{etiquette} - \If {$\textit{string}(i) = \textit{path}(j)$} - \State $j \gets j-1$. - \State $i \gets i-1$. - \State \textbf{goto} \emph{loop}. \label{goto} - \State \textbf{close}; - \EndIf - \State $i \gets - i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$. - \State \textbf{goto} \emph{top}. \Comment{C'est l'instruction de saut} - \EndProcedure - \end{algorithmic} - \end{algorithm} - - -.. raw:: latex - - Ligne \ref{etiquette}, le bloc `loop` est aussi un label (une étiquette), - c'est-à-dire une marque posée qu'il est possible de retrouver dans le programme. \\ - -.. raw:: latex - - Ligne \ref{goto}, l'instruction \texttt{goto} (aller à ) est le saut vers le label. \\ - -Description générique d'une instruction de saut:: - - Instruction 1 - Saut Label1 - Instruction 2 - ... - Label1: - Instruction n - -.. important:: les sauts conditionnels sont à éviter, même s'ils sont implémentés - dans le langage cible, car c'est le meilleur moyen d'aboutir à - du **code spaghetti**. - -L'instruction de branchement conditionnel ------------------------------------------- - -On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple d'instruction de test} - \begin{algorithmic}[1] - \BState \emph{entrée}: $quality\gets 0$ \Comment{C'est cette valeur qui sera testée} - \BState \emph{locale}: $a\gets ""$ - \BState \emph{sortie}: $a$ \Comment{La sortie est la valeur de $a$} - \BState \emph{corps}: - \If{$quality\ge 9$} - \State $a\gets perfect$ - \ElsIf{$quality\ge 7$} - \State $a\gets good$ - \ElsIf{$quality\ge 5$} - \State $a\gets medium$ - \ElsIf{$quality\ge 3$} - \State $a\gets bad$ - \Else - \State $a\gets unusable$ - \EndIf - \end{algorithmic} - \end{algorithm} - - - -.. ifconfig:: exercice - - **Exercice** : Compacter l'algorithme suivant en une seule condition de test:: - - Si il fait trop chaud Alors - Si il ne pleut pas Alors - Ouvrir la fenêtre - Sinon - Fermer la fenêtre - Finsi - Sinon - Fermer la fenêtre - Finsi - -.. ifconfig:: correction - - **Correction** : - - :: - - Si il fait trop chaud ET il ne pleut pas Alors - Ouvrir la fenêtre - Sinon - Fermer la fenêtre - Finsi - - -L'instruction switch --------------------- - -L'instruction switch permet de faire plusieurs tests de valeurs sur le contenu d'une même variable. -Ce branchement conditionnel simplifie beaucoup le test de plusieurs valeurs d'une variable. - -Les instructions d'itérations (boucles) ---------------------------------------- - -.. important:: Toutes les boucles concernent le paradigme de programmation impératif - et ne sont pas valides dans le paradigme de programmation fonctionnel - (puisque l'ordre d'évaluation importe) - -- arrêt conditionnel (break) -- passage d'un pas (continue) - -Répéter ... jusqu'à -~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de répéter ... jusqu'à} - \begin{algorithmic}[1] - \BState \emph{locales}: $i \gets 1$ \Comment{déclaration et initialisation de i} - \Repeat \Comment{c'est le label de début du répéter} - \State $i \gets \textit{i+1}$ - \Until{i == 100} \Comment{condition de fin de la boucle} - \end{algorithmic} - \end{algorithm} - -La boucle **pour** (for) -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle for} - \begin{algorithmic}[1] - \BState \emph{locales}: $sum\gets 0$ - \For{$i\gets 1, n$} - \State $sum\gets sum+i$ - \EndFor - \end{algorithmic} - \end{algorithm} - - - - - -.. ifconfig:: exercice - - **Exercice** : Ecrire un algorithme qui demande successivement 20 nombres à l’utilisateur, - et qui lui dise ensuite quel était le plus grand parmi ces 20 nombres - -.. ifconfig:: correction - - **Correction** : - :: - - Variables N, i, PG en Entier - Debut - PG <- 0 - Pour i <- 1 à 20 - Ecrire "Entrez un nombre : " - Lire N - Si i = 1 ou N > PG Alors - PG <- N - FinSi - Ecrire "Le nombre le plus grand était : ", PG - Fin - - -.. attention:: ne jamais manipuler le compteur dans une boucle - -:: - - Variable Truc en Entier - Début - Pour Truc <- 1 à 15 - Truc <- Truc * 2 - Ecrire "Passage numéro : ", Truc - Truc Suivant - Fin - -La boucle tant que (while) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle while} - \begin{algorithmic}[1] - \BState \emph{locales}: $sum\gets 0$ - \State $i\gets 1$ - \While{$i\le n$} - \State $sum\gets sum+i$ - \State $i\gets i+1$ - \EndWhile - \end{algorithmic} - \end{algorithm} - -.. ifconfig:: exercice - - **Exercice** : Ecrire un algorithme de validation d'une entrée utilisateur - - :: - - "Voulez vous un café ? (O/N)" - -.. ifconfig:: correction - - **Correction** : deux solutions possibles, une - - :: - - Variable Rep en Caractère - Début - Rep <- "" - Ecrire "Voulez vous un café ? (O/N)" - TantQue Rep <> "O" et Rep <> "N" - Lire Rep - Si Rep <> "O" et Rep <> "N" Alors - Ecrire "Saisie Erronée, Recommencez" - FinSi - FinTantQue - Fin - - :: - - Variable Rep en Caractère - Début - Ecrire "Voulez vous un café ? (O/N)" - Lire Rep - TantQue Rep <> "O" et Rep <> "N" - Ecrire "Vous devez répondre par O ou N. Recommencez" - Lire Rep - FinTantQue - Ecrire "Saisie acceptée" - Fin - -.. ifconfig:: exercice - - **Exercice** : "C'est plus, C'est moins", c'est-à-dire Ecrire un algorithme qui demande à l’utilisateur - un nombre compris entre a et b jusqu’à ce que la réponse convienne. - -.. ifconfig:: correction - - **Correction** : - - :: - - Variable N en Entier - Debut - N <- 0 - Ecrire "Entrez un nombre entre 10 et 20" - TantQue N < 10 ou N > 20 - Lire N - Si N < 10 Alors - Ecrire "Plus grand !" - SinonSi N > 20 Alors - Ecrire "Plus petit !" - FinSi - FinTantQue - Fin - -Et les autres boucles : répéter... jusqu'à, etc... - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de boucle répéter} - - \begin{algorithmic}[1] - \State $sum\gets 0$ - \State $i\gets 1$ - \Repeat - \State $sum\gets sum+i$ - \State $i\gets i+1$ - \Until{$i>n$} - \end{algorithmic} - \end{algorithm} diff --git a/poo/cours/donnees.txt b/poo/cours/donnees.txt deleted file mode 100644 index 990629e..0000000 --- a/poo/cours/donnees.txt +++ /dev/null @@ -1,577 +0,0 @@ -Les structures de données -=========================== - -.. glossary:: - - ATD - - Abstract Data Type, structure de données abstraites. - La représentation des données est forcément un choix. - Il est impossible de rendre compte globalement d'un élément du réel, - il faut en faire une interprétation abstraite. - -**Exemple**: - -- Un être humain peut être représenté par les données présentes dans sa - carte d'identité. Mais un être humain n'est pas sa carte d'identité. -- Un être humain peut être représenté par les données présentes dans ses préférences - de surf sur internet. Mais un être humain **n'est pas** l'ensemble de ses logs de surf sur le net. - -Les séquences -------------- - -Les types séquences (listes) - -.. code-block:: ocaml - - # 4::1::5::8::1::[];; - - : int list = [4 ;1 ;5 ;8 ;1] - - -Un ensemble de valeurs portant le même nom de variable et repérées par un nombre, s’appelle un tableau, ou encore une liste, ou une variable indicée. -Le nombre qui, au sein d’un tableau, sert à repérer chaque valeur s’appelle l’indice. -Chaque fois que l’on doit désigner un élément du tableau, on fait figurer le nom du tableau, suivi de l’indice de l’élément. - -**manipulation** : - -- `insert()` -- `append()` -- `remove()` -- `find()` -- `print()` -- ... - -.. code-block:: python - - zoo = ['bear', 'lion', 'panda', 'zebra'] - print(zoo) - - # But these list elements are not - biggerZoo = ['bear', 'lion', 'panda', 'zebra', ['chimpanzees', 'gorillas', 'orangutans', 'gibbons']] - print(biggerZoo) - -- Lists Versus Tuples : types mutables, immutables -- Lists Versus Sets : non ordonné, collection simple - -- Recherche dans une liste, recherche du maximum dans une liste -- Recherche d’un mot dans une chaîne de caractères. - -Algorithme de la longueur d'une liste --------------------------------------- - -.. code-block:: ocaml - - # let rec longueur l = - match l with - [] -> 0 - | ::s -> 1 + (longueur s);; - -Cette fonction est prédéfinie en Ocaml : `List.length` - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme qui déclare et - remplisse un tableau de 7 valeurs numériques en les mettant toutes à zéro. - -.. ifconfig:: correction - - **Correction** : - :: - - Tableau Truc(6) en Numérique - Variable i en Numérique - Debut - Pour i <- 0 à 6 - Truc(i) <- 0 - i Suivant - Fin - - exemple d'implémentation en python - - .. code-block: python - - >>> liste = [] - >>> for i in range(6): - ... liste.append(i) - ... - >>> liste - [0, 1, 2, 3, 4, 5] - >>> - - -.. ifconfig:: exercice - - **Exercice** : Calcul du premier élément maximal dans une liste, - proposer une implémentation en python qui renvoie le maximum et - la position du max dans la liste. - -.. ifconfig:: correction - - **Correction** : - - .. code-block: python - - def max_list(L) : - k = len(L) - max, x = L[0], 0 - i = 1 - while i < k : - if max < L[i]: - max = L[i] - x = i - i = i + 1 - return max, x - - couple = max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - - Exemple de généricité : ce code fonctionne avec une chaîne de caractères. - - .. code-block: python - - couple = max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -.. glossary:: - - Matrice - - Tableaux de dimension multiple, c'est un tableau de tableau - -.. ifconfig:: exercice - - **Exercice** : Écrivez un algorithme remplissant un tableau de 6 sur 13, avec des zéros. - -.. ifconfig:: correction - - **Correction** : - - implémentation en python - - .. code-block:: python - - >>> matrice = [] - >>> for i in range(12): - ... matrice.append([0 for i in range(5)]) - ... - >>> from pprint import pprint - >>> pprint(matrice) - [[0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0], - [0, 0, 0, 0, 0]] - >>> - -Algorithmes de tri ------------------- - -On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre. - -Les algorithmes de tri ont une grande importance pratique. -Ils sont fondamentaux dans certains domaines (exemples : map-reduce en database non relationnelle). - -L'étude du tri est également intéressante en elle-même, c'est un des domaines de l'algorithmique très étudié et connu. - -Tri par insertion -~~~~~~~~~~~~~~~~~~ - -Cet algorithme de tri suit de manière naturelle la structure récursive des -listes. Soit l une liste à trier : - -- si l est vide alors elle est déjà triée -- sinon, l est de la forme x::s et on trie récursivement la suite s et on obtient une liste triée s’ - on insert x au bon endroit dans s’ et on obtient une liste triée - -Description de l'algorithme - -- la fonction inserer permet d’insérer un élément x dans une liste l -- si la liste l est triée alors x est inséré au bon endroit - -.. code-block:: ocaml - - # let rec inserer x l = - match l with - [] -> [x] - | y::s -> if x<=y then x::l else y::(inserer x s);; - val inserer : ’a -> ’a list -> ’a list - # inserer 5 [3 ;7 ;10];; - - : int list = [3 ; 5 ; 7 ; 10] - -Tri rapide -~~~~~~~~~~~~ - -soit une liste l à trier : - -- si l est vide alors elle est triée -- sinon, choisir un élément p de la liste (le premier par exemple) - nommé le **pivot** -- partager l en deux listes g et d contenant les autres éléments de l - qui sont plus petits (resp. plus grands) que la valeur du pivot p -- trier récursivement g et d, on obtient deux listes g’ et d’ triées - -.. code-block:: ocaml - :caption: fonction de partage d'une liste - - #let rec partage p l = - match l with - [] -> ([] , []) - |x::s -> let g,d = partage p s in - if x<=p then (x::g , d) else (g , x::d) ;; - val partage : ’a -> ’a list -> ’a list * ’a list = - # partage 5 [1 ;9 ;7 ;3 ;2 ;4];; - - : int list * int list = ([1 ; 3 ; 2 ; 4], [9 ; 7]) - -.. code-block:: ocaml - :caption: algorithme de tri rapide - - # let rec tri rapide l = - match l with - [] -> [] - | p::s -> let g , d = partage p s in - (tri rapide g)@[p]@(tri rapide d) ;; - val tri rapide : ’a list -> ’a list = - # tri rapide [5 ; 1 ; 9 ; 7 ; 3 ; 2 ; 4];; - - : int list = [1 ; 2 ; 3 ; 4 ; 5 ; 7 ; 9] - - -Définition d'un itérateur -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - >>> l = range(10) - >>> for i in l: - ... print l[i] - ... - 0 - ... - 8 - 9 - >>> l.__iter__() - - - -Les listes chaînées -~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - typedef struct list{ - int elt ; - struct list* suivant ; - } ; - - -**Outils de manipulation** : - -- `next()` -- `pointer()` -- `insert(l, a)` -- `remove(a, n)` - - -Les piles ----------- - -**manipulation** - -- `insert()` : insérer un élément à la fin de la pile -- `dequeue()` : (remove and return) : retirer un élément du haut de la pile -- FIFO : "first in first out" - - -Traduction d'une structure de données dans une autre ------------------------------------------------------ - -.. code-block:: python - - >>> listOfStrings = ['One', 'Two', 'Three'] - >>> strOfStrings = ' '.join(listOfStrings) - >>> print(strOfStrings) - One Two Three - >>> - >>> # List Of Integers to a String - ... listOfNumbers = [1, 2, 3] - >>> strOfNumbers = ''.join(str(n) for n in listOfNumbers) - >>> print(strOfNumbers) - 123 - >>> - -.. code-block:: python - - >>> l = [('host1', '10.1.2.3', '6E:FF:56:A2:AF:18'), ('host3', '10.1.2.5', '6E:FF:56:A2:AF:19')] - >>> result = [] - >>> for hostname, ip, macaddress in l: - ... result.append(dict(hostname=hostname, ip=ip, macaddress=macaddress)) - ... - >>> result - [{'hostname': 'host1', 'ip': '10.1.2.3', 'macaddress': '6E:FF:56:A2:AF:18'}, - {'hostname': 'host3', 'ip': '10.1.2.5', 'macaddress': '6E:FF:56:A2:AF:19'}] - >>> - - -.. ifconfig:: exercice - - **Exercice** : Proposer un algorithme de traduction de cette structure de donnée - - .. code-block:: python - - [ - { - 'address': '192.168.0.0', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - { - 'address': '192.168.0.0', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.12', 'high': '192.168.0.45', 'only_unknown': True }, - { 'low': '192.168.0.8', 'high': '192.168.0.35', 'only_unknown': False }, - ], - }, - { - 'address': '192.168.0.1', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - - ] - - En cette structure de données : - - .. code-block:: python - - [ - { - address: '192.168.0.0', - mask: '255.255.255.0', - dynamicRanges: [ - { low: '192.168.0.5', high: '192.168.0.12', only_unknown: true }, - { low: '192.168.0.50', high: '192.168.0.55', only_unknown: false },j - ], [ - { low: '192.168.0.12', high: '192.168.0.45', only_unknown: true }, - { low: '192.168.0.8', high: '192.168.0.35', only_unknown: false }, - ], - }, - { - 'address': '192.168.0.1', - 'mask': '255.255.255.0', - 'dynamicRanges': [ - { 'low': '192.168.0.5', 'high': '192.168.0.12', 'only_unknown': True }, - { 'low': '192.168.0.50', 'high': '192.168.0.55', 'only_unknown': False }, - ], - }, - ] - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> from pprint import pprint - pprint(l) - [{'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}], - 'mask': '255.255.255.0'}, - {'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.45', - 'low': '192.168.0.12', - 'only_unknown': True}, - {'high': '192.168.0.35', - 'low': '192.168.0.8', - 'only_unknown': False}], - 'mask': '255.255.255.0'}] - >>> newdata = [] - >>> for i in l: - ... if i['address'] not in [j['address'] for j in newdata]: - ... newdata.append(i) - ... else: - ... for k in newdata: - ... if k['address'] == i['address']: - ... k['dynamicRanges'].extend(i['dynamicRanges']) - ... - >>> pprint(newdata) - [{'address': '192.168.0.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}, - {'high': '192.168.0.45', - 'low': '192.168.0.12', - 'only_unknown': True}, - {'high': '192.168.0.35', - 'low': '192.168.0.8', - 'only_unknown': False}], - 'mask': '255.255.255.0'}, - {'address': '192.168.10.0', - 'dynamicRanges': [{'high': '192.168.0.12', - 'low': '192.168.0.5', - 'only_unknown': True}, - {'high': '192.168.0.55', - 'low': '192.168.0.50', - 'only_unknown': False}], - 'mask': '255.255.255.0'}] - >>> - -.. ifconfig:: exercice - - **Exercice** : Proposer un algorithme qui permette de récupérer la liste - des adresses IP disponibles - - .. code-block:: python - - { - "local": { - "leases": [ - { - "mac": "02:00:c0:a8:00:66", - "name": "pcxubuntu", - "address": "192.168.0.200" - }, - { - "mac": "02:00:c0:a8:00:67", - "name": "pcxubuntu", - "address": "192.168.0.201" - }, - { - "mac": "02:00:c0:a8:00:68", - "name": "pcxubuntu", - "address": "192.168.0.202" - } - ] - } - } - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> l = { - ... "local": { - ... "leases": [ - ... { - ... "mac": "02:00:c0:a8:00:66", - ... "name": "pcxubuntu", - ... "address": "192.168.0.200" - ... }, - ... { - ... "mac": "02:00:c0:a8:00:67", - ... "name": "pcxubuntu", - ... "address": "192.168.0.201" - ... }, - ... { - ... "mac": "02:00:c0:a8:00:68", - ... "name": "pcxubuntu", - ... "address": "192.168.0.202" - ... } - ... ] - ... } - ... } - >>> leases = l["local"]["leases"] - >>> from pprint import pprint - >>> pprint(leases) - [{'address': '192.168.0.200', 'mac': '02:00:c0:a8:00:66', 'name': 'pcxubuntu'}, - {'address': '192.168.0.201', 'mac': '02:00:c0:a8:00:67', 'name': 'pcxubuntu'}, - {'address': '192.168.0.202', 'mac': '02:00:c0:a8:00:68', 'name': 'pcxubuntu'}] - >>> addresses = [lease['address'] for lease in leases] - >>> addresses - ['192.168.0.200', '192.168.0.201', '192.168.0.202'] - >>> - - - -Structures de données complexes -------------------------------- - -Les types produits nommés -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On les appelle enregistrements, dictionnaires ou tables de hachage. - -:: - - algorithme monAlgorithme - // déclaration d'un enregistrement - enregistrement Personne - chaine nom; - chaine prenom; - entier age; - réel taille; - finenregistrement - ... - Personne[50] t; - début - // Initialisation - t[0].nom <- "Duchmol"; - t[0].prenom <- "Robert"; - t[0].age <- 24; - t[0].taille <- 1.80; - ... - fin - -.. code-block:: ocaml - - # type adresse = { rue : string ; ville : string ; cp : int};; - # type fiche = { - nom : string ; - prenom : string ; - adresse : adresse ; - date naissance : int * int * int ; - tel fixe : string ; - portable : string - };; - # let v1 = { a = 1 ; b = false ; c = 'r'};; - - - - -- les sommes (constructeurs) - -.. code-block:: ocaml - - # type couleur = Pique | Coeur | Carreau | Trefle;; - # let v = (Pique , Coeur);; - val v : couleur * couleur = (Pique , Coeur) - -.. code-block:: ocaml - - type nombre = - Ent of int | Reel of float | Cplx of float × float - Ent, Reel, Cplx sont les constructeurs du type. - -Autres structures de données complexes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -- arbres -- graphes -- dates - -- le parcours de graphes -- les calculs de dates diff --git a/poo/cours/fonctions.txt b/poo/cours/fonctions.txt deleted file mode 100644 index 330cbca..0000000 --- a/poo/cours/fonctions.txt +++ /dev/null @@ -1,588 +0,0 @@ -Les fonctions et les procédures -================================ - -Préliminaire : rappel de théorie de cybernétique -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Théorie de l'information (Claude Shannon, 1949), (ou théorie de la communication) - -Canal de transmission:: - - entrée -> récepteur -> émetteur -> sortie - -.. glossary:: - - cybernétique - - étude des fonctions de réflexes conditionnés du cerveau humain - utilisation au mieux en PNL ("programmation neuro-linguistique") - ou en analyse transactionnelle, ou au pire en ingérinerie sociale. - -La matérialité physique est considérée comme le hardware, le génétique (le -réseau neuronal) étant assimilé au network hardware. - -Les objets mentaux (fonctionnements psychologiques et épigénétiques du -cerveaux) est assimilé au logiciel, au software. - -IFTTT ("if this then that") : la causalité mondaine est ramenée à un ordre de -comportement affecté à un assimilé-machine. - -L'humain est ramené à une machine. -C'est articulation entre "déclencheur contextuel" et "action en réponse de" -n'est pas une "black box" mais un "feedback" qui, pour l'humain, -loin d'être ramené à une entrée/sortie, constitue un **feedback** -utile pour la connaissance de soi. - -A la place, la communication est ramenée à une **boucle de rétroaction** -(comme dans un prompt) entre un système comportemental et son environnement. -La représentation sujet/objet (la perspective traditionnelle) est remplacée -par le clivage intérieur/extérieur. Behaviorisme, procédural. - -L'humain est donc ramené à - -- un ordonnanceur -- un comportement intrinsèque (boîte noire) - -- un stimuli pavlovien (déclencheur, trigger) est considéré comme un paramètre -d'entrée -- une instruction comportementale est considérée comme une action de - traitement -- le résultat est observé. - -Cette articulation entre "déclencheur contextuel" et "action en réponse" -est très exactement une forclusion de la profondeur monadique (Leibniz) de -l'humain à la black box informationnelle (et cybernétique). - -Pour quoi faire ? Pour pirater. Pour manipuler. -Le piratage consiste à - -- isoler les constantes (les procédures répétitives, les algorithmes) -- les observer (collecter les données) - -afin de - -- les réécrire (influence toxique, pishing - hammeçonnage) -- les détruire (attaque en règle) - - -Description d'une procédure -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -En programmation impérative, un programme est une suite d’instructions qui font -évoluer l’état mémoire, le résultat est dans l’état final de la mémoire. - -- une procédure peut prendre des paramètres -- elle modifie l'état courant du système - -- Déclaration des paramètes -- Déclaration du corps -- Appel de la procédure - -.. raw:: latex - - \begin{algorithm} - \caption{Procédure de permutation de deux entiers}\label{permutation} - \begin{algorithmic}[1] - \Procedure{permuter}{$a,b$}{} - \BState \emph{parametres}: - \State $a: \textit{int}$ - \State $b: \textit{int}$ - \BState \emph{locales}: - \State $z: \textit{int}$ \Comment{Une variable intermédiaire est nécessaire} - \BState \emph{corps}: - \State $z \gets a$ - \State $a \gets b$ - \State $b \gets z$ - \EndProcedure - \State \Call{permuter}{10, 12} \Comment{appel de la procédure} - \end{algorithmic} - \end{algorithm} - -effet de bord - - toute modification de la mémoire ou modification d'un support externe - -instruction - - commande ou phrase en mesure de modifier l'état du programme ou de la machine hôte - (allocation mémoire, support externe, disque, écran...) - -Une procédure ne renvoie pas de valeur, mais provoque un 'effet de bord' (écriture dans une globale, dans un flux sortant etc.). - -Une procédure permet de créer une instruction nouvelle qui deviendra une primitive pour le programmeur. -Cela permet de structurer le texte source du programme et améliorer sa -lisibilité. Cela permet aussi d'appeler plusieurs fois, et à plusieurs endroit -dans le code, cette primitive. - -Appel d'une procédure -~~~~~~~~~~~~~~~~~~~~~ - -(ex: pseudo-pascal) - -**déclaration de procédure** - -.. raw:: latex - - \begin{algorithm} - \caption{Procédure de permutation de deux entiers}\label{appelpermutation} - \begin{algorithmic}[1] - \Procedure{permuter}{$a,b$}{} - \BState \emph{parametres}: - \State $a: \textit{int}$ \Comment{paramètres formels de la procédure} - \State $b: \textit{int}$ - \BState \emph{locales}: - \State $z: \textit{int}$ \Comment{les variables locales de la procédure} - \BState \emph{corps}: - \State ... \Comment{Le corps de la procedure} - \EndProcedure - \State \Call{permuter}{10, 12} \Comment{l'appel de la procédure} - \end{algorithmic} - \end{algorithm} - - -- les variables x1,...,xn sont appelées *paramètres formels* de p -- les variables v1,...,vm sont appelées *les variables locales* de p - -les valeurs effectivement passées en paramètres, ici `10, 12` -sont appelées **paramètres effectifs** de p - -signature - - C'est l'ensemble paramètre formel + resultat de l'appel - -fermeture - - L'ensemble procédure + variables locales + signature + parametres effectifs - est appelé une **fermeture**. C'est la procédure + son contexte qui permet - de l'instancier dans un programme. - -Environnement - - Contexte d’évaluation d'une expression ou d'une fonction - -Portée - - La portée d'un identifiant (une variable) est sa condition d'utilisation dans un contexte donné - (utilisation locale uniquement, ou bien globale, ou bien locale et globale) - La portée d’une liaison est la portion du code dans laquelle cette - liaison est valide (i.e. où un identifiant est lié à une expression). - -.. ifconfig:: exercice - - **Exercice** : Que donne ce code ? - - .. code-block:: ocaml - - # let x = 42 in - let y = x - 1 in x - y ;; - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: ocaml - - - : int = 1 - - -.. code-block:: ocaml - - let a = 3 (* première liaison pour l'identifiant a *) - let b = 5 and c = 6 - let somme = a + b + c - val somme : int = 14 - let a = 45 (* deuxième liaison pour l'identifiant a *) - somme - val a : int = 45 - -.. ifconfig:: exercice - - **Exercice** : Que donne ce code ? - - .. code-block:: ocaml - - let a = 3 and b = 4 and c = 8 ;; - let somme = a + b + c ;; - val somme : int = ??? - let a = 44 - let b = 5 - let c = 1 - somme - - : int = ??? - -.. ifconfig:: correction - - .. code-block:: ocaml - - let a = 3 and b = 4 and c = 8 ;; - - : int = 15 - let somme = a + b + c ;; - val somme : int = 15 - let a = 44 - let b = 5 - let c = 1 - somme - - : int = 15 - - Même code en python - - .. code-block:: python - - >>> a = 1 - >>> b = 2 - >>> c = 3 - >>> somme = a + b + c - >>> somme - 6 - >>> a = 56 - >>> b = 5678 - >>> c = 56789 - >>> somme - 6 - >>> - -Portée locale dans une expression - -.. code-block:: ocaml - - # let a = 2 and b = 3 and c = 4 in - let somme = a+b+c in - somme - - : int = 9 - # somme ;; - Error: Unbound value somme - # a ;; - Error: Unbound value a - -.. important:: - - L’ordre d’évaluation dans un let ... in ... est bien déterminé, - sans grande importance dans un cadre purement fonctionnel, mais important - en cas d’effets de bord - - -Exemple de variable globale modifiée localement (**attention, mauvaise pratique** !) : - -.. code-block:: python - - >>> a = 5 - >>> def print_a(): - ... print("La variable a = {0}.".format(a)) - ... - >>> print_a() - La variable a = 5. - >>> a = 8 - >>> print_a() - La variable a = 8. - >>> - - - -niveau - - Le niveau d’une déclaration (de variable ou de procédure) est le nombre - de procédures sous lesquelles elle est déclarée. Le programme principal - a le niveau 0. - -.. code-block:: python - :linenos: - - def _get_config(name): - # return config value - if not isfile(CONFIG_FILE): - raise Exception("Fichier de configuration non existant") - from ConfigParser import ConfigParser - cfg = ConfigParser(allow_no_value=True) - cfg.read(CONFIG_FILE) - - if name == "SUBNETS": - return eval(cfg.get('eole', 'subnets')) - elif name == "LEASES_FILE": - DHCP_PATH = cfg.get('eole', 'container_path_dhcp') - return join('/', DHCP_PATH, 'var/lib/dhcp/dhcpd.leases') - def get_routes(*args, **kwargs): - """ - Send list of reserved IP - return list of tuple (id, machine name, IP, MAC Adress) - """ - cfg = creole_loader(load_extra=True, rw=False, owner=MODNAME, - mandatory_permissive=False) - return zip(cfg.dhcp.dhcp.id_dhcp.id_dhcp, cfg.dhcp.dhcp.id_dhcp.hostname, - cfg.dhcp.dhcp.id_dhcp.ip, cfg.dhcp.dhcp.id_dhcp.macaddress) - -On voit que l'objet `cfg` ligne 6 et 7 a le même nom que l'objet `cfg` ligne 19. -C'est autorisé et les espaces de nommages sont différents. - - -Description d'une fonction -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Une fonction renvoie une valeur et ne modifie pas l'état courant du programme -en cours d'exécution ni ne réalise d'effets de bord. Elle renvoie -**toujours** quelque chose (même la valeur ``None`` qui n'est pas rien) - -- une procédure peut prendre des paramètres -- elle modifie l'état courant du système - -- Déclaration des paramètes -- Déclaration du corps -- Appel de la fonction - -En programmation fonctionnelle, programme est un ensemble de définitions de fonctions, -un résultat est l'application d’une fonction à une structure de données effective. - -- composant de base : la fonction -- opération de base : l’application - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple de fonction}\label{fonction} - \begin{algorithmic}[1] - \Function{permuter}{$a,b$}{} \Comment{définition de la fonction} - \BState \emph{parametres}: \Comment{déclaration (noms, types) des paramètres formels} - \State $a: \textit{int}$ - \State $b: \textit{int}$ - \BState \emph{locales}: \Comment{déclaration (noms, types) des valeurs locales} - \State $z: \textit{int}$ - \BState \emph{corps}: - \State $z \gets a$ - \State $a \gets b$ - \State $b \gets z$ - \BState \emph{return}: \Comment{La valeur, le résulat renvoyé par la fonction} - \EndFunction - \State \Call{permuter}{10, 12} \Comment{appel de la fonction} - \BState \emph{result}: - \State (12, 10) \Comment{Le résultat effectif de la fonction après appel} - \end{algorithmic} - \end{algorithm} - -.. ifconfig:: exercice - - **Exercice** : factoriser le code suivant - :: - - Ecrire "Etes-vous marié ?" - Rep1 <- "" - TantQue Rep1 <> "Oui" et Rep1 <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Rep1 - FinTantQue - ... - Ecrire "Avez-vous des enfants ?" - Rep2 <- "" - TantQue Rep2 <> "Oui" et Rep2 <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Rep2 - FinTantQue - -.. ifconfig:: correction - - **Correction** : - - :: - - Fonction RepOuiNon() en caractère - Truc <- "" - TantQue Truc <> "Oui" et Truc <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Truc - FinTantQue - Renvoyer Truc - Fin - - Ecrire "Etes-vous marié ?" - Rep1 <- RepOuiNon() - ... - Ecrire "Avez-vous des enfants ?" - Rep2 <- RepOuiNon() - - -Définition mathématique -~~~~~~~~~~~~~~~~~~~~~~~~~ - -fonction - - Une fonction f d’un ensemble E vers un ensemble F est une - correspondance qui associe à chaque élément de E au plus - un élément de F. - -- E est appelé le domaine de définition -- F est appelé codomaine -- la **signature** de la fonction : `E → F (int -> int = )` - - -Exemple de signature d'une fonction - -:: - - Fonction RepOuiNon(Msg en Caractère) en Caractère - Ecrire Msg - Truc <- "" - TantQue Truc <> "Oui" et Truc <> "Non" - Ecrire "Tapez Oui ou Non" - Lire Truc - FinTantQue - Renvoyer Truc - Fin Fonction - - ... - Rep1 <- RepOuiNon("Etes-vous marié ?") - ... - Rep2 <- RepOuiNon("Avez-vous des enfants ?") - ... - - -curryfication - - évaluation de l'application d'une fonction - -- évaluter `(f x y)` -- peut donner une **valeur fonctionnelle** -- évaluation de la valeur fonctionnelle sur une valeur des types de base - -:: - - let g = function n -> (function p -> p + 1) n;; - -Typage d'une fonction -~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - # let f x y z = if x > 0 then y + x else z - x;; - val f : int -> int -> int -> int = - -c’est en fait une fonction à un argument qui retourne une fonction:: - -.. code-block:: ocaml - - val f : int -> (int -> (int -> int)) = - -application de f à trois valeurs - -.. code-block:: ocaml - - # f 1 2 3;; - - : int = 3 - -en programmation fonctionnelle, -les fonctions sont des valeurs comme les autres - - -.. code-block:: ocaml - - # fun x -> x * x;; - - : int -> int = - -Récursivité -~~~~~~~~~~~~ - -.. code-block:: ocaml - - let rec fact n = - if n=0 then 1 else n * fact (n-1) - - -équivalent impératif utilisant une boucle - -.. code-block:: c - - int fact(int n){ - int f = 1 ; - int i = n ; - while (i>0){ - f = f * i; - i-- ; - } ; - return f ; - } - -Définitions par cas -~~~~~~~~~~~~~~~~~~~ - -.. code-block:: ocaml - - let rec fact n = - match n with - 0 -> 1 - | -> n * fact (n-1) - -**exemple** : la fonction puissance - -.. code-block:: ocaml - - let rec puissance x n = match n with - 0 -> 1 - | -> x * puissance x (n-1) - - - -.. ifconfig:: exercice - - **Portée locale dans une fonction** - Quelles sera la valeur de la variable `a` ? - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + a - - -.. ifconfig:: correction - - Correction: - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + a - >>> a - 4 - >>> - - -.. ifconfig:: exercice - - **Exercice** : Portée locale dans une fonction avec variable globale - Quelles sera la valeur de la variable `a` ? - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... global a - ... a = 2 - ... return a + 1 - ... - >>> a = myfunc() + 3 - >>> - -.. ifconfig:: correction - - **Correction** : - - .. code-block:: python - - >>> a = 1 - >>> def myfunc(): - ... global a - ... a = 2 - ... return a + 1 - ... - >>> myfunc() - 3 - >>> a - 2 - >>> a = myfunc() + 3 - >>> a - 6 - >>> diff --git a/poo/cours/fondement.txt b/poo/cours/fondement.txt deleted file mode 100644 index 874365c..0000000 --- a/poo/cours/fondement.txt +++ /dev/null @@ -1,198 +0,0 @@ -Présentation de l'art de programmer -==================================== - -Qu'est-ce que la programmation ? --------------------------------- - -programmation - - Description d’un calcul (traitement) dans - un langage compréhensible par la machine - (langage de programmation) - -Le processus d'abstraction --------------------------- - -Débuter en programmation n'est pas une chose aisée. Aujourd'hui, la tendance est au -"bas niveau". Souvent, on se jette dans le grand bain : - -- soit en s'approchant au maximum de la machine (admin système et réseau, noyau - linux, langage C) - -- soit en faisant du dev web côté backend, ce qui ramène à une administration réseau - de bas niveau (microservices, monde nodeJS/javascript, etc...) - -Soit on suit un cursus scolaire traditionnel qui commence souvent par une -explication du fonctionnement d'une machine abstraite de bas niveau, puis en -allant de plus en plus haut, mais étant sous-entendu qu'il faut rester connecté au -bas niveau (comprendre comment ça se passe derrière la scène). - -Dans ces deux cas, il est sous-entendu qu'on apprend plus de choses et plus rapidement en mettant -les mains dans le cambouis, ce qui est vrai bien sûr. Mais cela sous-entend qu'un développeur doit -rester le nez dans le guidon. Qu'il doit être un expert de son domaine en accumulant des technologies -sans aucun recul. Bien sûr il se doit d'être un expert du système dans lequel il évolue -(connaissance du système d'exploitation, binding avec le C, du ramasse miette (garbage -collector), interaction avec les différentes librairies, gestion et optimisation de la mémoire, -architecture par microservices, threads...) mais il doit aussi être capable de prendre du recul. - -L'approche algorithmique (algorithmique de pseudo code, algorithmique algébrique et modulaire) -est un véritable moyen pour le programmeur de prendre du recul : elle commence par se placer du -côté de l'esprit humain et de ses capacités de compréhension et d'abstraction, elle autorise une -pensée rationnelle sur l'art de programmer et permet au programmeur d'effectuer les bons choix, -en connaissance de sa discipline. - -Le lien est fait ensuite avec le plus bas niveau grâce une implémentation effective -des langages à partir des paradigmes de rationalisation de la penseée (modules, -objects, généricité, polymorphisme paramétrique...) et d'un outil de communication -avec la machine qu'on appelle compilateur (dont la description est en dehors de -l'objectif de ce cours). - -La tendance générale de l'évolution des langages est de se libérer de ces -contraintes de bas niveau, un peu comme en sciences physiques où les lois physiques -dépendent de l'échelle d'en dessous (du niveau microscopique/quantique) mais qu'à -l'échelle du dessus, on n'a pas affaire à des effets de bas niveau (pas d'effets -quantiques à un niveau macroscopique en général). Ce processus d'évolution est vrai -aussi dans le monde de la technique informatique lui-même (modèle OSI, comment est -construite une trame IP, indépendances de chaque couche (transport, payload) entre -elles). Même la tendance système est à la virtualisation qui accentue encore la -tendance à s'affranchir du bas niveau (le niveau système), le séparer nettement du -haut niveau (le niveau applicatif). - -Il apparaît régulièrement de nouveaux langages. Comment s'orienter ? Quel(s) -langage(s) choisir pour un projet de développement ? Au delà de leurs disparités, la -conception et la genèse de chacun d'eux procèdent d'une motivation partagée : la -volonté d'abstraire. - -- **s'abstraire de la machine** : un langage de programmation permet de - négliger l'aspect *mécanique* de l'ordinateur. On oublie le modèle du - microprocesseur, jusqu'au système d'exploitation sur lequel sera exécuté - le programme. - -- **abstraire les erreurs** : Il s'agit ici de garantir la sûreté d'exécution; un - programme ne doit pas se terminer brutalement ou devenir incohérent en cas d'erreur. - Un des moyens pour y parvenir est le typage des programmes et la mise - en oeuvre d'un mécanisme d'exceptions. - -- **abstraire le mode opératoire** : Il s'agit de choisir une représentation, un - paradigme d'implémentation qui est indépendant du domaine considéré (paradigme - objet, modulaire, générique, composants...) - -- **abstraire les composants** : Les langages de programmation donnent la - possibilité de découper une application en différents composants logiciels, plus ou - moins indépendants et autonomes. La modularité permet une structuration de plus haut - niveau de l'ensemble d'une application complexe. Les langages à objets constituent - une autre approche de la réutilisabilité permettant la réalisation très rapide de - prototypes. - -Description des niveaux d'abstraction par rapport à la machine ---------------------------------------------------------------- - -Les langages de haut niveau simplifient le travail du -programmeur là où les langages de bas niveau permettent de produire un code -plus efficace. - -- **niveau 0** : le langage machine. Illisible, c'est une suite d'optcode. - impossible de coder dans ce langage. - -- **niveau 1** : langage d'assemblage. Il reste très dépendant de la machine - et aujourd'hui il est rare d'en faire, sauf si on code un bootloader par exemple, - la gestion de l'accès à la mémoire est en réel (le mode protégé n'apparaît que après). - Il faut gérer les ressources,le langage est très optimisé mais presque impossible - à maintenir et rendre générique. Aujourd'hui plus personne ne code en assembleur. - -- **niveau 2** : langages dits de **bas niveau** : (exemple : le C, le C++) - indépendance par rapport à la machine, grande structuration mais très verbeux - -- **niveau 3** : langages dits de **haut niveau** : le raisonnement dans ces - langages ne dépent plus de la machine, et ils implémentent des paradigmes de - programmation indépendant de l'état de la mémoire de l'ordinateur, - ils sont indépendant même du système d'exploitation. - -Qu'est-ce qu'une machine ? ---------------------------- - -Une machine, ce truc apparemment si complexe, est en fait -un assemblage de bric et de brac. - -L'assemblage des connecteurs permet de simuler un additionneur, -en prenant en compte les propriétés de **reste euclidien** -de l'addition. - -La structure électronique est composée de : - -- un ordonnanceur. -- le stockage d'un **état**. -- une pile d'instruction - -.. glossary:: - - adressage - - Dès lors qu'on dispose de ces bases électronique au dessus du processeur, - un langage d'assemblage est possible, c'est le langage de calcul sur les registres. - - registre - - machines ont un espace mémoire et un espace de calcul (registres) - -Un ordinateur, c'est très très stupide, mais ça permet de disposer de : - -- une mémoire très grande et ordonnée, -- une capacité à effectuer inlassablement des tâches répétitives -- une grande rapidité de calcul - -Apprendre à programmer, c'est-à-dire être capable de -contrôler la machine. - -.. important:: Apprendre à programmer, c'est-à-dire apprendre à penser de manière structurée, - pour pouvoir accessoirement ensuite communiquer avec une machine. - -Compilateur ------------ - -Schématiquement, un compilateur est un programme qui traduit un -programme d’un langage source vers un langage cible, en signalant -d’éventuelles erreurs. - -Quand on parle de compilation, on pense typiquement à la traduction d’un -langage de haut niveau (C, Java, Caml, ...) vers le langage machine d’un -processeur (Intel Pentium, PowerPC, ...) - -- xml (libre office, word) -> postscript (imprimante) -- postcript -> image -- syntaxe wiki -> html (Wikipédia...) - -compilation graphique - - passer une description, ça donne un dessin genre ocaml Quilt < mon_dessin.txt - passer par une api qui permet de causer avec une interface - -**transpiler** : transformation d'un langage de haut niveau vers un autre -langage de haut niveau. - -- cofee script, typescript -> javascript -- (babel) javascript -> javascript ES 6 -- python -> javascript - -Un compilateur traduit un programme P en un programme Q tel que -pour toute entrée x , la sortie de `Q(x)` soit la même que celle de `P(x)` - -Un interprète est un programme qui, étant donné un programme `P` et une -entrée x , calcule la sortie s de `P(x)` - -Le compilateur fait un travail complexe une seule fois, pour produire un -code fonctionnant pour n’importe quelle entrée -L’interprète effectue un travail plus simple, mais le refait sur chaque entrée -Autre différence : le code compilé est généralement bien plus efficace que -le code interprété - -Typiquement, le travail d’un compilateur se compose d’une phase d’analyse - -- reconnaît le programme à traduire et sa signification -- signale les erreurs et peut donc échouer (erreurs de syntaxe, de portée, de typage, etc.) - -Puis d’une phase de synthèse - -- production du langage cible -- utilise de nombreux langages intermédiaires -- n’échoue pas diff --git a/poo/cours/index.txt b/poo/cours/index.txt deleted file mode 100644 index aa2ef7d..0000000 --- a/poo/cours/index.txt +++ /dev/null @@ -1,19 +0,0 @@ -Introduction à l'algorithmique -================================ - -.. toctree:: - :maxdepth: 2 - - presentation - fondement - langage - algo - programme - fonctions - control - donnees - apercu - modularite - modules - tp - annexes/index diff --git a/poo/cours/langage.txt b/poo/cours/langage.txt deleted file mode 100644 index 67f858d..0000000 --- a/poo/cours/langage.txt +++ /dev/null @@ -1,336 +0,0 @@ -Les langages de programmation -============================= - -langage - - Un langage de - programmation - doit permettre d'écrire des - programmes de bonne qualité - -Un programme doit être : - -- correct -- robuste -- lisible, bien documenté -- facile à modifier, extensible - -Un langage de programmation doit permettre : - -- la programmation structurée -- la structuration avec les types -- proposer un mécanisme d’exceptions -- présenter des caractères de généricité, de polymorphisme et de surcharge - -.. important:: La structuration et l'organisation modulaire sert à maintenir de grands programmes, - Elles sont une nécessité - -Approche historique et chronologique -------------------------------------- - -- Lambda calcul (1930) -- machines de Turing (1936) -- début des langages vers les années 1950 (A0, Fortran(impératif), - Lisp(impératif et fonctionnel), Cobol) -- années 60 : Simula (classes), CPL (compilation séparée) -- années 70 : C (référence du langage impératif de bas niveau), Pascal - (procédures), Smalltalk (programmation orientée objects), Prolog - (programmation logique), Scheme (programmation fonctionnelle pure), Modula, - C++, Ada, Turbo Pascal, Common Lisp, Eiffel (programmation par contrats) -- années 80 : ML, CAML (langages fonctionnels) -- années 90 : Perl, Python, Ruby (languages de scripting multi-paradigmes) - Haskell (fonctionnel pur), Lua, Delphi, Java (orienté objet, machine - virtuelle), PHP (impératif, dédié au web), Erlang (fonctionnel+ - programmation concurrente), javascript (orienté web, objets par - prototypage), OCaml (multi-paradigme, fortement typé, orienté sécurité, - programmation générique, fonctionnelle et objets, modulaire et fonctorielle) -- 2009 : go (google, compilé, typage statique, objets par prototypage, - prgrammation concurrente), Rust (fondation mozilla, multiparadigme, programmation concurrente) - -Les langages actuellement les plus utilisés dans le monde de l'entreprise sont : - -- javascript/NodeJS (70% du code dans le dépôt github) mais victime de son - succès (chaos complet des librairies) -- le go est de plus en plus utilisé, c'est **le** langage qui monte - actuellement -- Python, Ruby, lua, autres langages de scripting (de plus en plus utilisés) -- PHP, Java (stagnants) -- C, C++ (de moins en moins utilisés) - -Approche par typologie des langages ------------------------------------ - -- **A0 (1954)** : possibilité de découpage de programmes en - sous-programmes ; - -- **ALGOL (1958)** : concept de bloc de code (pas forcément nommé) et d'imbrication - de blocs de code ; - -- **C (1971)** : syntaxe claire et simple, programme fortement structuré ; - -- **C (1980)** : le **code objet**, qui consiste à essayer de faire fonctionner - un seul jeu d'instructions sur des machines différentes. Avant, le code - d'assemblage dépendait du processeur, donc il n'y avait pas un seul et unique - jeu d'instructions ; - -- **1980** : déploiement et succès des langages à objets ; - -- **1983** : turbo pascal (Borland) qui fut le tournant du C, - propose un IDE (Environnement de Développement Intégré). - aujourd'hui le turbo pascal a pratiquement disparu mais pas totalement, - il est soutenu par une communauté open source autour de **Lazarus** ; - -- **depuis les années 90** : deux grands groupes de langages. Les langages à - objets, et les langages fonctionnels. Les deux mondes s'interpénètrent (les - avancées actuelles du web, les microservices (Erlang, Haskell), - viennent du monde fonctionnel, le NoSQL, etc). - Les grandes avancées architecturales (système d'exploitation, linux, etc...) - viennent du monde de l'impératif. - - -Approches par modèles de programmation --------------------------------------- - -- **le mécanisme d'exceptions** : il est possible de rompre l'exécution normale d'un - programme à un endroit et de la reprendre à un autre endroit du programme prévu à - cet effet. Ce mécanisme permet de gérer les situations exceptionnelles. - -- **le paradigme impératif** : les entrées-sorties, les modifications physiques de - valeurs et les structures de contrôle itératives sont possibles. - -- **le paradigme fonctionnel** : manipule les fonctions comme étant des valeurs du - langage. Celles-ci peuvent être utilisées en tant que paramètres d'autres fonctions - ou être retournées comme résultat d'un appel de fonction. - -- **le paradigme objet** : La représentation du programme colle à la réalité en - reproduisant des entités relativement proches des objets réel. Attention, le piège - est de croire qu'il s'agit *du* paradigme universel puisqu'il reproduit en miroir le - réel. **C'est en fait un processus d'abstraction comme un autre**. - -Sûreté du langage, typage -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Tri par ordre de sûreté croissant : - -0. typage très faible (presque inexistant aujourd'hui) : 42 == "42" == 42.0... -1. typage dynamique faible : (javascript) (possibilité de changer le prototype - d'un objet pendant l'éxécution du programme, c'est la fête on peut faire - n'importe quoi) -2. typage dynamique fort inféré par le comportement (behavior, duck typing) - (python, ruby, PHP) Le contenu de la variable détermine le choix du typage - `var = 0 -> type int` -3. typage statique déclaré fort (Java) - `int var = 0 ;` (pas mal mais super lourd, pas **agile** du tout) -4. langages à types statiques muni d'un moteur d'inférence de types (Ocaml) - sûreté d'exécution, agilité, sécurité. - - -La syntaxe, la lisibilité -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Importance de la lisibilité (notamment par rapport aux méthodes agiles). - -- courte (python) -- verbeuse (C) -- l'importance des mots clef du langage -- délimiteur de phrase, de blocs (parenthèses, accolades, tabulations, blocs...) - -Langages compilés ou interprétés ? ------------------------------------ - -.. glossary:: - - langage compilé - - une première passe est faite, des validations son effectuées **avant** - la génération du code objet, cette phase est faite par le compilateur. - - compilateur - - programme qui transforme un langage de haut niveau en un langage de base - niveau - - - phase d’analyse syntaxique (source -> syntaxe abstraite) - - phase de synthèse (syntaxe abstraite -> code objet) - - - scripting (langage de scripting) - - langage interprèté - - générique (langage) - - Langage à usage générique, qui peut être utilisé dans n'importe quel - domaine (par opposition au DSL) - - domain specific - - Domain Specific Language, langage destiné à être utilisé dans un - domaine prédéfini. - - paradigmes - - représentation d'une vision particulière à partir d'un modèle théorique - - impératif - - l'algorithme ressemble à une recette de cuisine, - c'est-à-dire à une succession d'instructions à exécuter - les unes à la suite des autres - - fonctionnel - - l'algorithme ne dépend plus de l'ordre d'exécution d'instructions - pas de mélange entre les données et les traitements - - objets (programmation) - - le monde est découpé en catégories - qui permettent de créer des objets - - **développement par composants** - - les objets sont organisés entre eux par composants suivant des designs patterns, - (patrons de conception) - - garbage collector (ramasse miettes) - - la gestion automatique de la mémoire apparaît en 1989 - - machine virtuelle - - portabilité du code (mais diminution en optimisation et performances) - - JIT (just in time compiler) - - code objet, programmes fonctionnant autour de machines virtuelles - - -- **le typage statique** : la vérification de la compatibilité entre les types des - paramètres formels et des paramètres d'appel est effectuée au moment de la - compilation du programme. Dès lors, il n'est pas nécessaire de faire ces - vérifications durant l'exécution du programme ce qui accroît son efficacité. En - outre, la vérification de type permet d'éliminer la plupart des erreurs introduites - par maladresse ou étourderie et contribue à la sûreté de l'exécution. - -- **le typage dynamique** : la vérification de la compatibilité entre les types des - paramètres formels et des paramètres d'appel est effectuée au moment de l'exécution - ou de l'appel à certaines parties de codes du programme. - -- **le polymorphisme paramétrique** : une fonction ou un objet qui n'explore pas la - totalité de la structure d'un de ses arguments accepte que celui-ci ait un type non - entièrement déterminé. Ce paramètre est alors dit polymorphe. Cette particularité - permet de développer un code générique utilisable pour des structures de données - différentes tant que la représentation exacte de cette structure n'a pas besoin - d'être connue par le code en question. L'algorithme de typage est à même de faire - cette distinction. - -- **l'inférence de types** : le programmeur n'a besoin de donner aucune information - de type à l'intérieur de son programme. Le langage se charge seul de déduire du code - le type le plus général des expressions et des déclarations qui y figurent. Cette - inférence est effectuée conjointement à la vérification, lors de la compilation du - programme. - -Les grands paradigmes de programmation ---------------------------------------- - -Le paradigme des objets -~~~~~~~~~~~~~~~~~~~~~~~ - -- 1962 (SIMULA) : premières notions de classes ; - -Pui, une dizaine d'années plus tard : - -- C++ : intégration des classes pour le C ; -- turbo pascal : intégration des classes pour le pascal ; - -Tous les langages actuels ont intégré des traits objets mais de manière très -différentes : - -- perl (1987) -- python (1991) -- Ruby (1993) - -- L'implémentation des objets en python est très proche des notions initiales de - classes issues du Smaltalk et présente une tentative très intéressante - d'unification des objets et des types depuis python 2.2 ; - -- Java (1995) : très grosse réussite industrielle en surfant sur la vague de la - programmation objet, et des machines virtuelles, mais en fait et avec le recul, - doté d'un support objet lourd et alambiqué. - Le monde Java est lourd, avec des outils consommant beaucoup de mémoire et - qui ne satisfont pas à la règle du KISS (Keep It Simple, Stupid) ; - - -Il n'y a pas **une** POO (Programmation Objet), il y a des POO. -Les implémentations objets dans les langages sont riches et variées : - -- objets obligatoirement construits pas des classes (Java, C++, ...) -- objets sans définition de classes (javascript, Ocaml, go, rust) -- langages à attributs (python) -- langages ou le type des objets est défini par leur classe (python, ruby) -- langages ou le type des objets est différent du type de leur classe (Ocaml) -- objets sans classes mais construits par des prototypes (javascript) -- construction d'objets possibles objets sans classe du tout (Ocaml) -- encapsulation des attributs des objets (Java, Ocaml, C++, PHP) -- pas d'encapsulation des attributs (python, ruby, javascript...) - -Le paradigme impératif -~~~~~~~~~~~~~~~~~~~~~~ - -Un programme est une suite d'états de la mémoire de l'ordinateur, -c'est la suite logique des machines de Turing. -La plupart des programmeur aujourd'hui raisonnent suivant ce paradigme, -et ont une très faible visibilité par rapport aux autres paradigmes existants. -Seuls les programmeurs cultivés sont aujourd'hui capable de raisonner -suivant différents paradigmes, ce sont des programmeurs chevronnés et -cultivés. - -Le paradigme fonctionnel -~~~~~~~~~~~~~~~~~~~~~~~~ - -La notion de fonction que possède sous une forme ou une autre la plupart des -langages est empruntée aux mathématiques et non à l'électronique. D'une manière -générale, les langages substituent des modèles formels aux conceptions purement -calculatoires. Ils y gagnent en expressivité. Certains langages fondent leur -paradigme de programmation sur l'abstraction entrée-traitement-sortie, donc sur le -**mathème fonctionnel** et pas sur la boite noire électronique. La fonction -mathématique apporte un niveau opératoire dans le traitement de l'information. - - -Approche par fonctionnalités ----------------------------- - -Plusieurs domaines de l'informatique on proposé/imposé des méthodologies, -des manières de faire. Ces modèles de programmation on fortement influencé -en retour les langages. On reconnaît aujourd'hui : - -- Le modèle client-serveur -- Le modèle de programmation concurrente (exécution de processus légers, threads) : -- Le modèle de développement d'une application de bureau (MVC, ergonomie d'interface) -- Le modèle de développement web (communiquer sur le réseau Internet, API - REST, microservices...) -- Le modèle de programmation système et réseau -- le modèle **Dev Ops** et les méthodes de développement virtualisés -- les langages présentant des **fonctionnalités agiles** - -Conclusion ------------ - -Les langages de haut niveau sont caractérisés par -des concepts tels que : - -- déclaration de valeurs, types, expressions, portée -- expressions, variables, instructions, structures de contrôle -- fonctions, procédures, fermetures -- encapsulation, modules, objets - -=========== ============ -Paradigmes Concepts -=========== ============ -impératif variables, procédures, modules -objets classes, méthodes, héritage, surcharge -fonctionnel fonctions, fermetures, modules -logique prédicats, modules -concurrent tâche/processus, communication -=========== ============ diff --git a/poo/cours/modularite.txt b/poo/cours/modularite.txt deleted file mode 100644 index 276d12d..0000000 --- a/poo/cours/modularite.txt +++ /dev/null @@ -1,200 +0,0 @@ -La programmation structurée -============================= - -Un langage de programmation doit permettre la programmation structurée. - -.. important:: La structuration et l'organisation modulaire sert à maintenir de grands programmes, - Elles sont une nécessité - -Structuration d'un programme ------------------------------ - -La réalisation d'applications importantes oblige le programmeur ou l'équipe de -développement à se poser des questions d'organisation et de structuration. -Aujourd'hui, on dispose de deux grands modèles d'organisation dont les avantages et les -particularités sont distincts. - -L'écriture des vrais programmes consiste à les structurer pour les présenter -comme un assemblage de briques qui s'emboîtent naturellement. -Ce problème se révèle fondamental dès que la taille des programmes devient conséquente. -Si on ne prend pas garde au bon découpage des programmes en modules indépendants, -on se retrouve rapidement débordé par un grand nombre de variables, -et il devient quasiment impossible de réaliser un programme correct. - -La programmation raisonnée ---------------------------- - -Un **programme** est le codage d'un algorithme dans un langage de programmation. -La programmation consiste à modéliser un problème du monde réel sous une forme -symbolique (pour faire résoudre ce problème par un ordinateur). - -Certains problèmes sont **indécidables** ou **ouverts**. -On utilise un langage de programmation pour décrire la **solution** du programme. -La sémantique du programme est le sens de chacune des constructions du langage. -**Comment passer de l'énoncé d'un problème à un programme de bonne qualité ?** - -spécifier - - décrire de manière complète et rigoureuse le problème à résoudre - -modéliser - - proposer une représentation du réel qui soit accessible au calcul - algorithmique - -transcrire - - La transcription du modèle algorithmique se fait dans un langage - de programmation cible adapté au problème - -valider - - La validation du programme est une étape qui permet de s'assurer plus ou - moins fortement que le programme produit les résultats attendus. - La validation va de la série de tests unitaires (validation faible) - à la preuve de programme (validation mathématique forte). - -Conception descendante ------------------------ - -Une vision **centripète** : du général au particulier. - -Il s'agit d'une méthode de résolution d'un problème. On le découpe en tâches -de plus en plus fines, de plus en plus détaillées, qui aboutiront au programme final. - -On met des *trous* dans les algorithmes de plus haut niveau, -c'est-à-dire des phrases en langage naturel. - -.. ifconfig: exercice - - **Exercice** : **Calculer la date du lendemain** - -.. ifconfig: correction - - - l'algorithme de plus bas niveau - - :: - - lendemain jour = - si jour [est le dernier jour du mois] alors - resultat = [calculer le 1er janvier de l'année suivante] - sinon - resultat = lendemain_dansl'année jour - - - les algorithmes de plus bas niveau - - :: - - lendemain_dans_l'année jour = - si jour [est le dernier jour du mois] alors - resultat = [calculer le premier jour du mois suivant] - sinon - resultat = jour suivant jour - - :: - - jour_suivant jour = - jour + 1 - - et ainsi de suite jusqu'à ce que toutes les phrases soient calculables. - -Algorithme vague --------------------- - -L'algorithme vague, c'est quand on pense l'algorithme en se plaçant du côté de -l'implémentation en premier. On a le nez dans le guidon, la vue d'ensemble est -difficile. - -Voici, tiré du monde réel, un exemple d'algorithme vague -("ce que doit faire une fonction"), placé dans un bout de code -(souvent la **docstring** d'une fonction). - -.. code-block:: python - - def upsert_route(*args, **kwargs): - """ - Create or modify an existant DHCP route - param tuple (id or null, machine name, IP, MAC Adress) - return True or False with error message - """ - # si id présent alors modification sinon ajout - # récupère la liste des réservations en cours - # y cherche la variable sur la base de l'ID - # modifie les valeurs - # applique la nouvelle conf DHCP - - return True - -Voici un autre bout de code avec l'algorithme en commentaire, -et l'implémentation effective de l'algorithme - -.. code-block:: python - - def del_route(*args, **kwargs): - """ - Delete an existant DHCP route - param tuple (id, machine name, IP, MAC Adress) - return True or False with error message - """ - # récupère la liste des réservations en cours - # y cherche la variable sur l'id donné en paramètre - # supprime l'entrée avec vérification que les données fournies - # sont bien dans l'enregistrement à supprimer - # applique la nouvelle conf DHCP - route_to_del = (1, "host2","10.1.2.4","6E:FF:56:A2:AF:17") - routes = get_routes() - if route_to_del in routes: - c = creole_loader(load_extra=True, rw=True) - c_id = c.dhcp.dhcp.id_dhcp.id_dhcp.index(route_to_del[0]) - if c.dhcp.dhcp.id_dhcp.macaddress[c_id]==route_to_del[2] - and c.dhcp.dhcp.id_dhcp.ip[c_id]==route_to_del[1]: - c.dhcp.dhcp.id_dhcp.id_dhcp.pop(c_id) - config_save_values(c, MODNAME) - return True - return False - -Les deux grands paradigmes ---------------------------- - -La modularité -~~~~~~~~~~~~~~ - -Les données et les traitements sont regroupés au sein d'une même entité à deux -facettes : d'un côté le code proprement dit, de l'autre son interface. La -communication entre modules s'effectue via leur interface. La description d'un -type peut être masquée en n'apparaissant pas dans l'interface du module. Ces -types de données abstraits facilitent les modifications d'implantation à -l'intérieur d'un module sans affecter les autres modules qui s'en servent. De -plus, les modules peuvent être paramétrés par d'autres modules augmentant -ainsi leur réutilisabilité. - -Le paradigme objet -~~~~~~~~~~~~~~~~~~ - -Les descriptions des traitements et des données sont regroupées dans des -entités appelées **classes**; un objet est une instance (valeur) d'une classe. -La communication entre objets est réalisée par envoi de message, l'objet -receveur détermine à l'exécution (liaison retardée) le traitement -correspondant au message. En cela, la programmation objet est dirigée par -les données. La structuration d'un programme provient des relations entre -classes, en particulier l'héritage permet de définir une classe par extension -d'une autre. - -En programmation objet, un **programme** est une collection d’objets qui communiquent -entre eux par **message**, le **résultat** est un message envoyé à un objet particulier - -Comparaison entre les deux paradigmes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Il y a dualité entre ces deux modèles. - -- On ne peut pas augmenter les composants d'un type dans un module (pas - d'extensibilité des données), mais on peut ajouter de nouveaux traitements - (extensibilité des traitements) sur ces données. - -- En objet, on peut ajouter des sous-classes à une classe (extensibilité des - données) pour traiter des nouveaux cas, mais on ne peut pas ajouter de nouveaux - traitements visibles de la classe ancêtre (pas d'extensibilité des traitements). - -**La combinaison des deux paradigmes offre de nouvelles extensibilités pour les -traitements et les données.** diff --git a/poo/cours/modules.txt b/poo/cours/modules.txt deleted file mode 100644 index 5df4b5e..0000000 --- a/poo/cours/modules.txt +++ /dev/null @@ -1,313 +0,0 @@ -La programmation modulaire -=========================== - -Il s'agit de décomposer un grand programme en -morceaux (**modules**) connectés entre eux par des **interfaces** bien -définies. - -Ces modules doivent être aussi indépendants que possible. - -module - - ensemble de ressources liées sémantiquement - -interface - - mode d’emploi du module, avec en plus un principe de masquage - des informations (partie publique, partie secrète) - - -Signatures, type abstrait et langage de modules : la programmation modulaire -permet d'aller très loin dans la programmation structurée. - - -Définir des fonctions dans un fichier séparé --------------------------------------------- - -Les fonctions peuvent être définies dans un fichier et le programme dans un -autre fichier séparé. Dans ce cas, pour pouvoir être exécuté directement avec -la commande python `nomfichierprogramme.py`, le fichier du programme doit -importer d’abord les fonctions du fichier dans lequel les fonctions sont -définies. - -1. Fichier de fonctions -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: python - - # Fichier foncmaxliste.py - # Recherche le premier élément maximal dans une liste ou - #dans une chaine de caractères - def max_list(L) : - k = len(L) - max, x = L[0], 0 - i = 1 - while i < k : - if max < L[i]: - max = L[i] - x = i - i = i + 1 - return max, x - -2. Fichier de programme -~~~~~~~~~~~~~~~~~~~~~~~~ - -Pour utilser les fonctions définies dans d’autres fichiers, le fichier de -programme doit commencer par les instructions qui importent ces fichiers de -fonctions ou directement les fonctions de ces fichiers. Dans la syntaxe -ci-dessous, on importe une ou toutes les fonctions du fichier `foncmaxlist.py`. - -.. code-block:: python - - # Fichier progmaxlist.py - from foncmaxliste import max_list - # ou plus simple: - # from foncmaxliste import * - print max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - couple = max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - print max_list(’totovaaumarche’) - couple = max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -Au lieu d’importer les fonctions, on peut importer le fichier qui définit les -fonctions avec la syntaxe qui suit. Dans ce cas, le fichier de programme sera -changé comme suit : - -.. code-block:: python - - # Fichier prog2maxlist - import foncmaxliste - print foncmaxliste.max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - # la syntaxe indiquant le chemin d’acces a la fonction max_list utiliser ‘‘.’’ - couple = foncmaxliste.max_list([4,5,6,9,12,5,10,3,18,5,6,7]) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - print foncmaxliste.max_list(’totovaaumarche’) - couple = foncmaxliste.max_list(’totovaaumarche’) - print ’Max de L est ’, couple[0] - print ’et se trouve à la position ’, couple[1] - -L’exécution directe du premier fichier de programme:: - - python prog max list.py - -L’exécution directe du seconde fichier de programme:: - - python prog2 max list.py - -Définition de l'implémentation d'un module -------------------------------------------- - -Tout fichier qui contient au moins une définition d’une fonction ou d’une -variable est appelé un module (une bibliothèque). Le nom du module est le nom -du fichier enlevé le suffixe `.py`. Ainsi, un fichier de programme qui contient -au moins une définition d’une fonction ou un fichier qui ne contient que des -définition de fonctions sont des modules. On peut importer un module ou des -fonctions ou variables d’un module dans un programme, comme nous avons vu dans -les exemples ci-dessus. - -.. important:: on peut importer un module, ou bien lancer un module en tant que - programme executable - -.. code-block:: python - - if __name__ == '__main__': - main() - -Pour faciliter la programmation, Python définit un certain nombre de **modules internes**, -appelés les builtins (la librairie standard). - -Par exemple : - -– Lors de l’ouverture d’une session interactive, on est dans un module interne nommé - main . Toutes les variables définies par affectation au niveau de ce module sont valides - globalement dans la session. - -– D’autres modules internes sont string, math, random - -Dans une session de travail sous l’interpréteur Python, la première importation d’un mo- -dule qui, à part des fonctions qu’elle définit, contient des instruction de programme fait -exécuter ces instructions. Dans la même session, les importations suivantes ne font pas -exécuter ces instructions. Pour les exécuter, on utilise la fonction reload(nomdumodule) -(sans sufffixe .py). - -Exemples d'interface --------------------- - -:: - - type: son type - arguments - arg1 : description de l'argument 1 - arg2 : description de l'argument 2 - préconditions: - arg1 > 10 - postconditions: - result < 19 - raises: TypeError, AssertionError, SystemError... - test: tests nominaux pour chaque cas spécifié - -- L'interface racine carrée - -:: - - racine: - type: float -> float - arguments x: float, flottant dont on veut calculer la racine - pré: x >= 0 - test: racine 25.0 -> 5.0 ; racine (-25) -> raises TypeError - -- L'interface `lendemain` - -Il faut définir auparavant un type spécifique appelé `date` - -:: - - lendemain: le lendemain est la date qui désigne - le jour suivant de la date passée en argument - type: date -> date - arguments : - d: date - description: la date dont on veut calculer le lendemain - -Le langages des modules -------------------------- - -.. code-block:: ocaml - - module type PILE = (* signature (interface) du module *) - sig - type ’a t - val create : unit -> ’a t - val push : ’a -> ’a t -> unit - val pop : ’a t -> ’a - end - - (* implémentation du module *) - module Pile : PILE = (* le module est restreint - par la signature PILE *) - struct - type ’a t = ’a list ref - let create () = ref [] - let push x p = p := x::!p - let pop p = match !p with [...] - let rec print p = match p with [...] - end - -- `struct .. end` introduit une collection de définitions, valeurs, types ou modules. - C'est une **structure**. - -- `module Nom = struct .. end` permet de donner un nom à cette structure et - c'est ça un module. C'est une structure nommée. - -- `sig ... end` introduit une signature de module : une interface pour un module. - -On restreint souvent une structure par une signature pour "cacher" certaines -définitions. Une signature de module fournit une **interface** entre l'extérieur -et l'intérieur d'un module. - -En dehors du module, on accède à ses composants grâce à la notation pointée - -.. code-block:: ocaml - - let p = Pile.create() - Pile.push 45 p - -Les foncteurs --------------- - -Si un langage possède un langage de modules, on peut aller plus loin : on peut -considérer un module comme étant une expression de base du langage. - -- La signature d'un module peut être considérée comme le type du module -- La structure du module peut être considéré comme sa valeur - -Quel est l'intérêt ? On peut alors définir des **foncteurs**. - -foncteur - - "fonction" d'une structure vers une autre structure. - On peut ainsi paramétrer un module par un autre module. - -.. code-block:: ocaml - - module Nom (M1 :S1 ) (M2 :S2 ) (M3 :S3 ) ... = - struct - ... - end - -On applique un foncteur à des paramètres modules, pour -obtenir un nouveau module : - -.. code-block:: ocaml - - module M = F (Titi) (Toto) - - -Contrainte de type par signature ------------------------------------- - -:: - - module M = - struct - type t = int * int * int ;; - let make d m y = d, m, y ;; - end ;; - - let d = M.make 8 5 8 ;; - - module type S = - sig - type t ;; - val make : int -> int -> int -> t ;; - end ;; - - module MS = (M:S) ;; - - MS.make 5 1 2 ;; - -Type et signature ------------------- - -:: - - # module type A = sig - val a: int -> int - end ;; - module type A = sig val a : int -> int end - # module B = struct - let a x = x + 1 ;; - end;; - module B : sig val a : int -> int end - # module C = (B:A) ;; - module C : A - - # C.a 2 ;; - - : int = 3 - # - -Module auquel on impose une signature ------------------------------------------ - - -:: - - module type DATE = sig - type t - val make: int -> t - val get_year: t -> int - val get_month: t -> int - end ;; - - module MR = struct - type t = int * int - let make x y = (x, y) - let get_month (x, y) = x - let get_year (x, y) = y - end ;; - - module date = (MR:DATE) ;; diff --git a/poo/cours/presentation.txt b/poo/cours/presentation.txt deleted file mode 100644 index 6263f9e..0000000 --- a/poo/cours/presentation.txt +++ /dev/null @@ -1,72 +0,0 @@ -Avant propos -============ - -Introduction -~~~~~~~~~~~~ - -| "**Que nul n'entre ici s'il n'est géomètre**" -| Maxime apposée au porche d'entrée de l'École de Platon - - -- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique - algébrique. L'algorithmique est un sous-domaine de l'algèbre et des - approches modulaires (arithmétique modulaire...) - -- Le point de vue mathématique étant assez exigeant, **aucun formalisme fort** de - l'algorithmique mathématique ne sera présenté. Aucun symbole mathématique donc, et - seulement du pseudo-code. - L'approche mathématique forte utilisant le formalisme mathématique de - l'algorithmique algébrique est en général enseignée en France uniquement aux cours - des grandes écoles. - -- L'algorithmique présentée ici est donc délibérément pseudo-scientifique mais en revanche - ouverte au **multi-paradigme**. En général l'évocation d'un algorithme en pseudo code est toujours - réducteur car limité au style de programmation le plus à la mode actuellement, c'est-à-dire le - **style impératif**. Nous présenterons un éventail des plus grands paradigmes de programmation - existants. Nous nous limiterons à la **programmation impérative, fonctionnelle, modulaire, - générique et objet**. Nous envisagerons les structures de données et les structures de contrôle - spécifiques à chacun des styles évoqués. - -- Et parce qu'un honnête programmeur doit avoir une vue d'ensemble de **l'état de son art**, - nous évoquerons un panorama des différents langages existants -- historiques et contemporains -- - en les comparants les uns aux autres. - -- Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous - limiterons l'exposé à deux langages d'implémentation des algorithmes : le **Python** pour la programmation - impérative modulaire et objet, et le **OCaml**, car nous évoquerons aussi certains points - de programmation fonctionnelle et modulaire, polymorphe et teintée de généricité. - -Intérêt -------- - - -| "**Il ne suffit pas d'avoir les mains propres, il faut avoir l'esprit pur.**" -| Thalès de Milet ; Sentences - VIe s. av. J.-C. - -L'algorithmique en tant que rapport à la vérité et à la pensée juste et vraie, -en tant qu'art de découper un problème complexe en tâches élémentaires, -en tant qu'énoncés de compréhension et de sémantique, -est la seule chose vraiment profonde dans l'informatique. Le reste n'est que 0 ou 1. -Cette notion d'algorithme est profondément enracinée dans le désir humain de -transmettre des méthodes pour comprendre des problématiques, -qu'il s'agisse de processus scientifiques ou mathématiques, de secrets, -de philosophie ou de divination au sens des anciens Grecs. -De règles linguistiques, aussi, chez les Romains. - -Objectifs de ce cours -~~~~~~~~~~~~~~~~~~~~~ - -Il s'agit de : - -- maîtriser et concevoir un algorithme de base, -- choisir une représentation appropriée des données, -- décomposer en sous-problèmes et affinements successifs, -- savoir organiser son code en fonctions et en modules. - -Le développement raisonné d’algorithmes et leur implantation -permet d'acquérir les qualités suivantes : - -+ Analyser et modéliser un problème, spécifier, -+ Exprimer une problématique, une solution ou un algorithme, -+ Traduire un algorithme dans un langage de programmation, -+ Concevoir une réponse à un problème précisément posé. diff --git a/poo/cours/programme.txt b/poo/cours/programme.txt deleted file mode 100644 index 6133cf1..0000000 --- a/poo/cours/programme.txt +++ /dev/null @@ -1,476 +0,0 @@ -Définition d'un programme -========================== - -Qu'est-ce qu'un programme ? ----------------------------- - -- Un **programme** est une suite de **phrases** ; -- Une **phrase** est une **déclaration** ou une **expression** (*statement* en anglais) ; - -Production d'un programme : - -1. on écrit le code source du programme ; -2. on demande au compilateur de le traduire en code machine : c'est la compilation du programme ; -3. on demande à la machine d'effectuer le code machine : c'est l'exécution du programme. - -.. important:: - - L'introduction à la compilation et les différentes phases de la compilation - d'un programme sont des sujets qui ne seront pas traités dans ce cours. - -Dans un programme de base, il y a deux fichiers : - -1. un fichier contenant le code : c'est le source du programme. -2. un fichier contenant le code machine : c'est l'exécutable. - -Que peut faire un programme lorsqu'il est exécuté ? -Le programme doit communiquer. S'il reste isolé, il ne pourra pas -produire quoi que ce soit. Voici les trois moyens de communication qu'a un -programme : - -1. communiquer avec l'utilisateur, -2. communiquer avec des fichiers, -3. communiquer avec d'autres programmes. - -Les expressions ----------------- - -expression - - Une expression est une valeur caculée du langage, une opération arithmétique - qui retourne une valeur (entier, texte, valeur logique...). - C'est donc une suite sémantiquement correcte de **valeurs de base** et **d'opérateurs** - -Par exemple, la ligne suivante est une expression effectuant une addition:: - - 5 + 6 - -Expressions à partir de types de base -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Autres exemples d'expressions : - -- 5 est une expression de type int -- 4.5 est une expression de type float -- 'c' est une expression de type char -- true est une expression de type bool -- print ('c') est une expression de type None -- raw_input est une expression de type string - -Les expressions se complexifient avec la complexification des données et des traitements, -mais le principe de l'expressivité d'un langage reste le même. - - -.. ifconfig:: exercice - - **Exercice** : - Le parenthésage et les opérateurs booléens:: - - Variables A, B, C, D, E en Booléen - Variable X en Entier - Début - Lire X - A <- X > 12 - B <- X > 2 - C <- X < 6 - D <- (A ET B) OU C - E <- A ET (B OU C) - Ecrire D, E - Fin - - **Que valent D et E si X = 3 ?** - - -.. ifconfig:: correction - - **Correction** : D sera VRAI alors que E sera FAUX - - - - -Les déclarations ------------------ - -Un autre exemple d'expression : - -.. raw:: latex - - \begin{algorithm} - \caption{Exemple d'expression} - \begin{algorithmic}[1] - \BState \emph{sortie}: $l$ \Comment{C'est l'expression calculée renvoyée} - \ForAll {$v \in V(G)$} - \State $l(v) \leftarrow \infty$ - \EndFor - \State $l(u) \leftarrow 0$ - \Repeat - \For {$i \leftarrow 1, n$} - \State $min \leftarrow l(v_i)$ - \For {$j \leftarrow 1, n$} - \If {$min > e(v_i, v_j) + l(v_j)$} - \State $min \leftarrow e(v_i, v_j) + l(v_j)$ - \State $p(i) \leftarrow v_j$ - \EndIf - \EndFor - \State $l(i) \leftarrow min$ - \EndFor - \State $changed \leftarrow l \not= l’$ - \State $l \leftarrow l$ - \Until{$\neg changed$} - \end{algorithmic} - \end{algorithm} - -Exemple de déclarations : - -- `a = 1` -- `b = 'c'` - -.. important:: Le signe égal est utilisé de deux manières - - - lors d'une déclaration d'une expression - - lorsque deux expressions sont équivalentes - - Suivant les langages, il y a deux symboles différents, ou alors - ils sont identiques. - -Il s'agit de **renseigner** une valeur dans une expression nommée - -- en javascript : - -.. code-block:: javascript - - var b = "blabla" ; - -- en python : - -.. code-block:: python - - b = "blabla" - -- en java : - -.. code-block:: java - - String b = "A"; - -- en OCaml : - -.. code-block:: ocaml - - let a = 1 - -Grâce au mécanisme d'inférence de type dans OCaml, le mot-clef **let** -signifie ici véritablement l'instanciation d'une valeur au sens -mathématique du terme : soit `a` l'entier tel que a soit égal à 1... - -En OCaml comme dans tous les langages fonctionnels, tout ce que nous avons l'habitude -d'appeler des "variables" à propos des affectations, sont en fait des **constantes** -au sens du paradigme impératif de la programmation. - -.. important:: - - Par voie de conséquence, le symbole ``=`` est utilisé à la fois pour la définition des objets et pour le test d'égalité. - Pour les autres langages, on utilise `==` ou bien `===` (javascript) car - le `=` est sémantiquement déjà utilisé... - -Toutes ces notation, apparemment anodines, correspondent donc à des paradigmes de programmation - -Lorsqu'on ne déclare pas les types des symboles déclarés, c'est que soit - -- le typage est faible -- le typage est dynamique (calcul du type en fonction du contenu de la - variable) -- le typage est statique et fort mais ça ne se voit pas - (var le système les calcule automatiquement par inférence de type) - -Assigner, allouer, affecter une chose à quelqu'un ou à une autre chose. - -Exemples dans la langue française : - -- Le traitement que le budget **alloue** à ces fonctionnaires. -- Un système d'exploitation multitâche alloue le travail du processeur aux processus en attente, pour un bref laps de temps, à leur tour. - -.. glossary:: - - affectation - - Une affectation, aussi appelée assignation par anglicisme, est une structure qui permet d'attribuer une valeur à une variable. - - Il s'agit d'une structure particulièrement courante en programmation impérative, et dispose souvent pour cette raison d'une notation courte et infixée, - comme ``x = expr`` ou ``x := expr`` ou encore `x <- expr`. - Dans certains langages, le symbole est considéré comme un opérateur d'affectation, - et la structure entière peut alors être utilisée comme une expression. - D'autres langages considèrent une affectation comme une instruction et ne permettent pas cet usage. - -Voir aussi : - -- Les déclarations de types primitifs et conversions de type -- Les types de base:: - - Octets (8 bits) byte - Entiers courts (16 bits) short - Entiers (32 bits) int - Entiers longs (64 bits) long - Réels (32 bits) float - Réels longs (64 bits) double - Caractères (16 bits) char - Booléens boolean - -- Déclarations par lots:: - - x1 = e1, x2 = e2, ... xn = en; - -Exercices : algorithmes sur les affectations - -.. ifconfig:: exercice - - **Exercice** : Calculs d'affectation:: - - Variables A, B, C en Entier - Début - A <- 3 - B <- 10 - C <- A + B - B <- A + B - A <- C - Fin - -.. ifconfig:: correction - - **Correction**:: - - Après La valeur des variables est : - A <- 5 A = 5 B = ? - B <- 2 A = 5 B = 2 - A <- B A = 2 B = 2 - B <- A A = 2 B = 2 - -.. ifconfig:: exercice - - **Exercice** : Calculs d'affectation - Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ? - :: - - Variables A, B en Entier - Début - A <- 5 - B <- 2 - A <- B - B <- A - Fin - -.. ifconfig:: correction - - **Correction**:: - - Après La valeur des variables est : - A <- 5 A = 5 B = ? - B <- 2 A = 5 B = 2 - A <- B A = 2 B = 2 - B <- A A = 2 B = 2 - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme permettant d’échanger les valeurs - de deux variables A et B, et ce quel que soit leur contenu préalable. - -.. ifconfig:: correction - - **Correction**:: - - Début - A <- n - B <- p - C <- A - A <- B - B <- C - Fin - - Il faut passer par une variable dite temporaire (la variable C) - - -.. ifconfig:: exercice - - **Exercice** : - Que produit l’algorithme suivant ? - - :: - - Variables A, B, C de type entier - Début - A <- 423 - B <- 12 - C <- A + B - Fin - -.. ifconfig:: correction - - **Correction** : dans un prompt python - - .. code-block:: python - - >>> a = 423 - >>> b = 12 - >>> c = a + b - >>> c - 435 - -.. ifconfig:: exercice - - **Exercice** : - Que produit l’algorithme suivant ? - - :: - - Variables A, B, C de type texte - Début - A <- "423" - B <- "12" - C <- A + B - Fin - -.. ifconfig:: correction - - **Correction** : dans un prompt python - - .. code-block:: python - - >>> a = '423' - >>> b = '12' - >>> c = a + b - >>> c - '42312' - -Interaction avec l'utilisateur ------------------------------- - -Il est possible de communiquer de la manière suivante avec un programme : - -- lire et écrire sur l'entrée/sortie standard -- lire et écrire dans un fichier -- afficher (du texte, un nombre...) -- lire (du texte, un nombre...) -- interagir avec les prompts - - -.. code-block:: ocaml - - let x = read_int () in - let signe = - if x >= 0 - then " positif " - else " négatif " in - print_string signe - - -.. ifconfig:: exercice - - **Exercice** : écrire un algorithme qui demande le prénom d'une personne - et renvoie "bonjour, je m'appelle " - -.. ifconfig:: correction - - **Correction** : (implémentation en python) - - .. code-block:: python - - # coding: utf-8 - prenom = raw_input("quel est ton prénom ? \n") - print("bonjour, je m'appelle " + prenom.capitalize()) - - -La REPL (boucle d'interaction) -------------------------------- - -.. glossary:: - - REPL - - Read Eval Print Loop : outil principal de communication avec un programme - ou avec un système. Exemples : la console python, le prompt OCaml. - - interface - - outil de communication avec un programme. - - - interface texte - - interface graphique - -**Exemples de REPL** - -Le prompt python:: - - Python 2.7.12 (default, Nov 19 2016, 06:48:10) - [GCC 5.4.0 20160609] on linux2 - Type "help", "copyright", "credits" or "license" for more information. - >>> - >>> dir() - ['__builtins__', '__doc__', '__name__', readline', 'rlcompleter'] - >>> - -Le prompt ipython:: - - Python 2.7.12 (default, Nov 19 2016, 06:48:10) - Type "copyright", "credits" or "license" for more information. - - IPython 2.4.1 -- An enhanced Interactive Python. - ? -> Introduction and overview of IPython's features. - %quickref -> Quick reference. - help -> Python's own help system. - object? -> Details about 'object', use 'object??' for extra details. - - In [1]: - -Le prompt OCaml (utop):: - - Type #utop_help for help about using utop. - - ─( 09:21:24 )─< command 0 >── - utop # - # let x = 1 in x + 2;; - - : int = 3 - # let y = 1 + 2;; - val y : int = 3 - # y * y;; - - : int = 9 -Construire une boucle d'interaction avec l'utilisateur en python:: - - #!/usr/bin/env python3 - error = True - while error: - try: - entier = int(input('donnez un entier : ')) - error = False - except: - print('une valeur entiere est attendue') - print(entier) - -Lire et écrire dans un fichier ------------------------------- - -Les descripteurs de fichiers (file handle) - -Exemple en python - -.. code-block:: python - - >>> fh = file("test.txt", "w") - >>> fh.write("un contenu exemple") - >>> fh.close() - >>> - -.. code-block:: python - - >>> fh.read() - 'un contenu exemple' - >>> fh.close() - >>> - -Linéarisation (serialisation) de données par exemple en json - -.. code-block:: python - - import json - data = dict(a='essai', b='essai2', c=range(3)) - with open('data.txt', 'w') as outfile: - json.dump(data, outfile) diff --git a/poo/cours/tp.txt b/poo/cours/tp.txt deleted file mode 100644 index 3d3ebd5..0000000 --- a/poo/cours/tp.txt +++ /dev/null @@ -1,101 +0,0 @@ -Travaux Pratiques -================= - -.. ifconfig:: exercice - - **travaux pratiques :** - - Ecrire un algorithme qui renvoie le résultat d’une mini-calculatrice. Cette - méthode aura - comme paramètre deux nombres et une chaîne de caractère qui vaudra « + », « - - », « * », - « / ». - -.. ifconfig:: exercice - - **travaux pratiques :** - - - Ecrire un algorithme qui renvoie si deux mots (chaîne de caractères) passés en - paramètre - sont des anagrammes l’un de l’autre. (Lettres identiques mais dans un ordre - différent) - - -.. ifconfig:: exercice - - **travaux pratiques :** - - ascii art (ligne d'étoiles) - - Concevoir un algorithme qui, pour un caractère imprimable et un nombre n - donnés, imprime une barre - horizontale de n de ces caractères. - - ``****************`` - - 2. Modifier l’algorithme pour l’impression d’une barre double. - - :: - - **************** - **************** - - 3. Modifier l’algorithme pour l’impression d’une barre d’épaisseur quelconque - donnée. - 4. (optionnel) Transformer les algorithmes ci-dessus en fonctions. - 5. Écrire un programme Java implémentant la dernière version de l’algorithme - (épaisseur quelconque). - - 3.3 - Triangle de nombres - Concevoir un algorithme qui imprime pour n donné:: - - 1 - 1 2 - 1 2 3 - 1 2 3 4 - 1 2 3 4 5 - ........... - ............. - ............... - 1 2 3 4 5 6 ... n - -.. ifconfig:: exercice - - **travaux pratiques :** - - code de césar : faire un programme pour chiffrer et déchiffrer par décalage - - exemples : Effectue une rotation de x caractères vers la droite:: - - >>> print(chiffre('bonjour', 3)) - erqmrxu - >>> print(chiffre('Bonjour les amis!', 3)) - Erqmrxu ohv dplv! - >>> print(chiffre('Erqmrxu ohv dplv!', 23)) - Bonjour les amis! - -.. ifconfig:: exercice - - **travaux pratiques :** - - :: - - écrire “Entrer un numéro de mois” - mois <- lire - selon que mois est - cas 1 : écrire “janvier (31 jours)” - cas 2 : écrire “février (28 ou 29 jours)” - cas 3 : écrire “mars (31 jours)” - cas 4 : écrire “avril (30 jours)” - cas 5 : écrire “mai (31 jours)” - cas 6 : écrire “juin (30 jours)” - cas 7 : écrire “juillet (31 jours)” - cas 8 : écrire “août (31 jours)” - cas 9 : écrire “septembre (30 jours)” - cas 10 : écrire “octobre (31 jours)” - cas 11 : écrire “novembre (30 jours)” - cas 12 : écrire “décembre (31 jours)” - défaut : écrire “numéro invalide” - fselon diff --git a/poo/diapos/Makefile b/poo/diapos/Makefile deleted file mode 100644 index fd60fc0..0000000 --- a/poo/diapos/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -RST = python tools/rst.py - -TEXDOCUMENTS = $(basename $(wildcard *.tex)) -RSTDOCUMENTS = $(basename $(wildcard *.txt)) - -SOURCES = $(addsuffix .tex,$(TEXDOCUMENTS)) -DVI = $(addsuffix .dvi,$(TEXDOCUMENTS)) -POSTSCRIPT = $(addsuffix .ps,$(TEXDOCUMENTS)) -POSTSCRIPT_GZ = $(addsuffix .ps.gz,$(TEXDOCUMENTS)) -PDF = $(addsuffix .pdf,$(TEXDOCUMENTS)) -RSTSOURCES = $(addsuffix .txt,$(RSTDOCUMENTS)) -HTML = $(TEXDOCUMENTS) $(addsuffix .html,$(RSTDOCUMENTS)) - -all: dvi ps ps.gz html -dvi: $(DVI) -ps: $(POSTSCRIPT) -ps.gz: $(POSTSCRIPT_GZ) -pdf: $(PDF) -html: $(HTML) - - -${DVI}: %.dvi: %.tex - latex $< - latex $< - -${POSTSCRIPT}: %.ps: %.dvi - dvips -o $@ $< - -${POSTSCRIPT_GZ}: %.ps.gz: %.ps - gzip -c $< > $@ - -${PDF}: %.pdf: %.tex - rm -f $*.out $*.log $*.aux - xelatex $< - rm -f $*.out $*.log $*.aux - -%: %.tex %.dvi - latex2html -local_icons $< - touch $@ - -%.html: %.txt - $(RST) $< > $@ - - -clean: - rm -f -- *~ *.log *.aux *.out *.nav *.snm *.toc ${DVI} ${POSTSCRIPT} ${POSTSCRIPT_GZ} ${PDF} - rm -fr ${HTML} diff --git a/poo/diapos/beamer.tex b/poo/diapos/beamer.tex deleted file mode 100644 index 62eb264..0000000 --- a/poo/diapos/beamer.tex +++ /dev/null @@ -1,268 +0,0 @@ -\documentclass[ignorenonframetext]{beamer} -\usepackage{graphicx} -% Internal links only wors with second screen on the right -% \setbeameroption{show notes on second screen} -\usetheme{Madrid} -\usecolortheme{dolphin} - -% gets rid of bottom navigation bars -\setbeamertemplate{footline}[frame number]{} - -% gets rid of navigation symbols -\setbeamertemplate{navigation symbols}{} - -%\usetheme{Warsaw} -%\usepackage[french]{babel} -%\usepackage[utf8,utf8x]{inputenc} -%\usepackage[T1]{fontenc} - - -% Replace babel -\usepackage{polyglossia} -\setdefaultlanguage{french} - -%% Require XeTeX -\usepackage{xltxtra} -\usepackage{fontspec} -\usepackage{xunicode} - -\logo{ - \hspace{120pt} - \includegraphics[width=2cm]{img/cesi.jpg}~ - \hspace{113pt} - \includegraphics[width=1cm]{img/logo-cadoles.png}~ -} - - -%%\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}} - -\title[]{Algorithmique} - -\subtitle{CESI alternance} -\subtitle{promotion GMSI B3} - -\author[Gwenaël Rémond]{} - -%\institute[E.O.L.E]{\includegraphics[width=2cm]{beamer-skel/img/logo-eole.png}} -\institute[Cadoles]{\includegraphics[width=2cm]{img/cesi.jpg}} - -%\date{{\small 8 avril 2013}} - -\subject{Talks} - -\AtBeginSection[] % Add a TOC with current section highlighted -{ - \begin{frame} - \frametitle{Plan} - \tableofcontents[currentsection] - \end{frame} -} - - -\usepackage{hyperref} -\usepackage{hyperxmp} -\hypersetup{% - colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone, - pdftitle={EAD3}, - pdfsubject={Présentation technique d'EWT}, - pdfauthor={EOLE}, - pdfkeywords={EOLE, J-EOLE, distribution, GNU, Linux, Éducation, - nationale, Ubuntu}, - pdflang={fr-FR}, - pdfcopyright={Copyright © 2017 Équipe EOLE }, % Require XeTeX - pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}, -} - -\parskip=0.8em - -\begin{document} - -\frame{\titlepage} - -\section{Introduction} -\begin{frame} -\frametitle{Objectifs} - -\texttt{ - "Il ne suffit pas d'avoir les mains propres, \\ - il faut aussi avoir l'esprit pur."\\ -} -\emph{Thalès ; VIe s. av. J.-C.} - -\begin{itemize} -\item<1-> maîtriser et concevoir un algorithme, -\item<2-> choisir une représentation appropriée des données, -\item<3-> décomposer en sous-problèmes et affinements successifs, -\item<4-> savoir organiser son code et faire des petits programmes en python. -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{L'art de programmer} -\texttt{GEEK SUBLIME (Vikram CHANDRA) -Une vision esthétique, littéraire, mathématique du codage} - -\begin{itemize} -\item<1-> Programmer, c'est abstraire, prendre du recul. -\item<2-> Abstraire, par rapport à quoi ? Par rapport à la machine -\item<3-> Les niveaux d'abstraction par rapport à la machine -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Les langages de programmation} -\begin{itemize} -\item Qu'est-ce qu'un langage de programmation ? -\item Les grands paradigmes de programmation (procédural, objet, fonctionnel, modulaire, générique \dots) -\item L'historique des langages. -\end{itemize} -\end{frame} - -\section{Algorithmique} -\begin{frame} -\frametitle{Les algorithmes} -\begin{itemize} -\item définition d'un algorithme -\item implémentation d'un algorithme -\item représentation d'un algorithme dans un langage cible -\end{itemize} -\end{frame} - -\section{Algorithmique pour la programmation} - -\begin{frame} -\frametitle{Qu'est-ce qu'un programme ?} -\begin{itemize} -\item <1-> Les expressions -\item <2-> Les déclarations -\item <3-> La REPL (Read Eval Print Loop) -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Approche générale des fonctions} -\begin{itemize} -\item Les procédures -\item La portée d'une variable -\item Les fonctions -\end{itemize} -\end{frame} - - -\begin{frame} -\frametitle{Les structures de contrôle} -\begin{itemize} -\item Le branchement conditionnel -\item L'itération -\item \dots -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{Les structures de données} -\begin{itemize} -\item Les listes -\item Les dictionnaires -\item Les arbres, les graphes \dots -\end{itemize} -\end{frame} - -\begin{frame} -\frametitle{L'état de l'art de l'agorithmique} -\begin{itemize} -\item en mathématiques - \begin{itemize} - \item algorithmique algébrique, - \item arithmétique modulaire, - \item \dots - \end{itemize} -\item en informatique - \begin{itemize} - \item en informatique fondamentale - \item en langages de programmation - \item dans touts les domaines où l'informatique intervient\dots - \end{itemize} -\item en sciences physique, en biologie -\item en sciences sociales (réseaux sociaux, auto-organisation\dots) -\end{itemize} -\end{frame} - -\section{Programmation modulaire} -\begin{frame} -\frametitle{La programmation modulaire} -\begin{itemize} -\item La programmation raisonnée -\item Le paradigme modulaire vs le paradigme objet -\item exemple de programmation modulaire en python -\end{itemize} -\end{frame} - - - - -% Not present in TOC -\appendix - -\begin{frame}[label=thanks]{Remerciements} - - Je remercie la communauté du logiciel libre pour tous ces - merveilleux logiciels sans lesquels si peu de choses existeraient. - - Cette présentation a été réalisée grâce aux logiciels libres - suivants~: - - \begin{itemize} - \item Le système de composition \LaTeX{} - \href{https://fr.wikipedia.org/wiki/TeX_Live}{TeX Live} - \item L'éditeur de texte - \href{http://www.vim.org/}{Vim} - \item L'environnement graphique - \href{http://gnome.org/}{Gnome} - \item Le système d'exploitation - \href{https://debian.org/}{Debian} - \end{itemize} - - \begin{center} - % Do not mess with graphics - \hypersetup{hidelinks} - \begin{tabular}{cccccc} - \href{http://www.gnu.org}{\includegraphics[height=1.3cm]{graphics/gnu-head.pdf}} & - \href{http://www.kernel.org}{\includegraphics[height=1.2cm]{graphics/tux.pdf}} & - \href{http://www.debian.org/}{\includegraphics[height=1cm]{graphics/debian.eps}} & - \href{https://fr.wikipedia.org/wiki/TeX_Live}{\includegraphics[height=1cm]{graphics/texlive.pdf}} - \end{tabular} - \end{center} - -\end{frame} - -\begin{frame}[label=license]{Licence} - Cette présentation est mise à disposition sous licence\\ - \href{http://creativecommons.org/licenses/by-sa/4.0}% - {Creative Commons \textsc{by-sa 4.0}} - \begin{columns}[t] - \begin{column}{5.5cm} - \begin{itemize} - \item Attribution - \end{itemize} - \end{column} - \begin{column}{6.5cm} - \begin{itemize} - \item Partage dans les mêmes conditions - \end{itemize} - \end{column} - \end{columns} - Vous pouvez obtenir une copie de la licence - \begin{block}{par Internet} - \href{http://creativecommons.org/licenses/by-nc-sa/4.0}% - {\url{http://creativecommons.org/licenses/by-nc-sa/4.0}} - \end{block} - \begin{block}{par courrier postal} - \begin{quote} - Creative Commons\\ - 444 Castro Street, Suite 900 Mountain View,\\ - California, 94041, USA. - \end{quote} - \end{block} -\end{frame} - -\end{document} diff --git a/poo/diapos/graphics/Logo-EOLE.eps b/poo/diapos/graphics/Logo-EOLE.eps deleted file mode 100644 index 13f4889..0000000 --- a/poo/diapos/graphics/Logo-EOLE.eps +++ /dev/null @@ -1,133 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:20:58 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%BoundingBox: 0 -1 232 85 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 232 85 -%%EndPageSetup -q 0 -1 232 86 rectclip q -0.290196 0.247059 0.454902 rg -133.668 16.757 m 133.668 16.757 133.25 1.257 148.941 1.257 c 176.328 1.257 - l 170.723 3.749 168.633 5.874 164.891 10.585 c 150.969 10.585 l 147.234 - 10.585 145.441 13.222 145.441 17.538 c 145.441 17.538 145.492 75.363 145.414 - 75.445 c 142.301 82.999 133.668 84.519 133.668 84.519 c 133.668 83.995 -133.676 39.347 133.668 16.757 c h -133.668 16.757 m f -41.039 38.73 m 41.207 38.808 41.25 38.921 41.457 39.109 c 41.5 40.347 41.375 - 41.511 41.164 42.823 c 40.625 46.238 40.664 49.726 41.207 53.07 c 41.125 - 53.214 l 41.043 53.366 40.914 53.405 40.914 53.405 c 40.664 53.48 40.414 - 53.554 40.121 53.515 c 35.613 53.366 31.141 52.577 26.758 51.265 c 24.457 - 50.702 22.16 50.14 19.863 49.577 c 17.984 49.015 16.688 48.152 15.812 46.913 - c 16.062 46.839 16.145 46.691 16.23 46.538 c 16.48 46.464 l 16.395 46.238 - l 15.98 45.863 15.812 45.409 15.895 44.886 c 15.977 44.738 16.105 44.698 - 16.188 44.55 c 16.523 44.327 16.859 44.101 17.062 43.909 c 17.234 43.988 - 17.234 43.988 17.355 43.952 c 17.523 44.027 17.816 44.062 18.023 44.249 - c 18.316 44.288 18.445 44.249 18.57 44.21 c 24.836 43.464 30.973 41.999 - 37.027 39.933 c 37.152 39.894 37.281 39.855 37.242 39.749 c 37.324 39.597 - 37.449 39.558 37.406 39.445 c 37.91 39.296 l 38.91 38.995 39.785 38.734 - 40.75 38.698 c 40.914 38.769 40.914 38.769 41.039 38.73 c 39.117 40.687 - m 38.117 40.988 l 39.078 40.948 l 39.16 40.796 39.117 40.687 39.117 40.687 - c f -49.855 72.859 m 49.855 72.859 54.316 79.749 63.262 84.269 c 13.684 84.269 - l 0.484 84.269 0.527 73.152 0.527 73.152 c 0.527 17.499 l 0.527 17.499 -0.117 1.984 15.809 1.984 c 64.07 1.984 l 58.465 4.472 54.559 8.597 50.816 - 13.308 c 50.816 13.308 15.844 13.296 15.891 13.308 c 11.449 13.308 12.086 - 17.542 12.086 17.542 c 12.156 69.034 l 12.156 73.109 15.902 72.859 15.902 - 72.859 c f -69.723 45.148 m 69.723 45.148 66.891 28.866 79.219 23.05 c 84.949 20.351 - 89.504 19.945 95.855 22.363 c 99.852 23.882 103.457 27.659 104.977 31.769 - c 106.496 35.878 105.191 40.874 101.199 44.757 c 99.793 38.538 98.297 33.53 - 92.91 30.741 c 89.711 29.116 86.457 29.386 83.211 30.995 c 79.961 32.605 - 77.473 36.48 76.484 40.363 c 76.484 40.363 74.473 47.585 82.195 59.417 -c 75.809 56.718 70.875 52.245 69.723 45.148 c h -69.723 45.148 m f -0.945098 0.792157 0.0745098 rg -110.621 8.773 m 117.836 13.503 123.312 20.792 125.211 30.261 c 125.238 -30.429 l 126.707 37.968 125.305 45.933 121.43 52.601 c 117.527 59.308 110.711 - 64.777 102.098 65.82 c 102.074 65.831 l 96.797 66.464 90.988 64.273 86.93 - 60.507 c 82.406 55.163 80.273 51.816 80.387 44.03 c 84.254 49.132 94.043 - 54.202 100.949 53.523 c 105.414 52.984 108.629 50.445 110.898 46.542 c -113.168 42.636 114.066 37.445 113.184 33.058 c 110.383 19.085 94.641 12.073 - 81.125 15.976 c 62.398 21.382 55.426 40.464 63.086 58.038 c 72.824 73.859 - 90.422 80.905 113.074 77.519 c 105.887 85.03 93.703 83.984 93.703 83.984 - c 82.363 84.874 61.398 78.519 53.613 63.808 c 42.234 42.316 52.059 11.566 - 78.055 4.062 c 89.188 0.847 101.344 2.695 110.621 8.777 c h -110.621 8.773 m f -0.290196 0.247059 0.454902 rg -194.387 67.495 m 185.594 67.495 178.215 64.179 172.285 57.597 c 166.355 - 51.011 164.41 42.503 164.41 32.046 c 164.41 20.98 166.184 15.999 171.609 - 9.894 c 180.992 -1.075 203.68 1.32 210.367 1.402 c 217.055 1.484 219.438 - 1.644 231.012 0.57 c 228.027 5.839 220.824 9.495 218.348 10.011 c 206.766 - 12.195 193.328 8.179 181.414 15.484 c 176.691 19.57 175.734 22.14 175.559 - 29.62 c 223.012 29.62 l 223.012 35.269 l 223.012 45.374 219.598 53.257 -214.785 58.945 c 208.164 64.816 201.25 67.409 194.387 67.495 c h -194.184 58.421 m 199.434 58.421 203.531 56.702 206.484 53.245 c 209.438 - 49.788 211.941 44.956 211.984 38.745 c 175.684 38.745 l 175.715 44.808 -177.715 49.339 181.262 52.972 c 184.805 56.601 189.109 58.421 194.184 58.421 - c h -194.184 58.421 m f -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/poo/diapos/graphics/Logo-EOLE.svg b/poo/diapos/graphics/Logo-EOLE.svg deleted file mode 100644 index f55c0d7..0000000 --- a/poo/diapos/graphics/Logo-EOLE.svg +++ /dev/null @@ -1,1277 +0,0 @@ - - - -image/svg+xml       \ No newline at end of file diff --git a/poo/diapos/graphics/Logo-EOLEienne.eps b/poo/diapos/graphics/Logo-EOLEienne.eps deleted file mode 100644 index 72c3b78..0000000 --- a/poo/diapos/graphics/Logo-EOLEienne.eps +++ /dev/null @@ -1,318 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:15:46 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%BoundingBox: 0 -1 1660 851 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%BeginResource: font DejaVuSans-Bold -11 dict begin -/FontType 42 def -/FontName /DejaVuSans-Bold def -/PaintType 0 def -/FontMatrix [ 1 0 0 1 0 0 ] def -/FontBBox [ 0 0 0 0 ] def -/Encoding 256 array def -0 1 255 { Encoding exch /.notdef put } for -Encoding 32 /space put -/CharStrings 2 dict dup begin -/.notdef 0 def -/space 1 def -end readonly def -/sfnts [ -<000100000009008000030010637674203eb93108000000e8000002546670676d5b026bf00000 -033c000000ac676c7966e2f9cb840000009c0000004c686561640e24be09000003e800000036 -686865610eaf07730000042000000024686d74780796006600000444000000086c6f63610000 -00980000044c0000000c6d6178700647062d0000045800000020707265707c61a2e700000478 -000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204 -002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206 -2900000001660133016600bc00e90000013d00a200fa031f00020002006601660002000200ac -015400ec00bc006201660181048501540166016d04a400020166007f04cd0000000201330062 -00710000002504a401bc00ba00e500660181018d0548055a0166016d000000000002000200f6 -05c301f0053902390058046d043d04b2048104b2016601750466048100b00466043902d1049c -047b04cf047b005801330166014c0166014c000200ac009a014a0123009a029a014401190144 -02cd00c100000166013f019a013b05cb05cb00d500d5015000ac00ac0077020a01c701f2012f -015801b2012300f600f6011f012f0135023501ee01e70133009800d10358050a009a008f0112 -009800bc00cd00e500e500f2007304000166008f05d5022b05d500c300e100d700e50000006a -01020000001d032d05d505d505f000a8006a00ec00e1010205d506140721046602f800ec0183 -02a602f80123010201020112011f031f005e03cd046004c7048900ec01bc00ba01020333031f -03420333035c0112011f05d5019a009a00e106660179046004600460047b000000ec02c302b8 -02cd00be00dd00d50000006a025c027b029a00dd01ae01ba01120000008501ae04600762041b -009a069a045800ee009a029a00d102cd019a015005cb05cb008b008b063100f6040600f0034c -016004a800c10000002505c101000121074a06120096014a078300a800000337007b00140000 -00c9010005c105c105c105c101000108061d00960427039e00ec0102027d0133009800d10358 -017900cd02390362009c009c009c009301b8009300b80073000014000326b707060504030201 -002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c20100720 -b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ff -ff5058041b0559b0051cb0032508e12d2c4b505820b80128454459212d2cb002254560442d2c -4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b005254960b02063 -68208a108a233a8a10653a2d0001000000025eb8b54203fc5f0f3cf5001f080000000000d3d9 -0a2000000000d3d90a20f772fcae0fcd096500010008000000010000000000010000076dfe1d -00001021f772f9320fcd00010000000000000000000000000000000204cd006602c900000000 -00000000004c0000004c000100000002034e002b0078000c0002001000400008000005ed0221 -0008000441840280012600fe000301250011000301240121003a0005012400fa000301230016 -000301220121003a0005012200fe00030121003a0003012000fa0003011f00bb0003011e0064 -0003011d00fe0003011c00190003011b001e0003011a00fe0003011900fe0003011800fe0003 -011700fe0003011600fe000301150114000e0005011500fe00030114000e0003011300fe0003 -011200fe0003010f010e007d0005010f00fe0003010e007d0003010d010c008c0005010d00fe -0003010d00c00004010c010b00590005010c008c0003010c00800004010b010a00260005010b -00590003010b00400004010a00260003010900fe0003010800fe00030107000c000301070080 -00040106b2972e054113010600fa0003010500fa0003010400fe0003010300190003010200fa -0003010100fa0003010040ff7d03ff3e03fefe03fcfb2c05fcfe03fb2c03fafe03f9f84705f9 -7d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03f2fe03f1fe03f0fe03ef1e03eefe03edec0a -05edfe03ec0a03ec4004ebea0a05eb3203ea0a03e9fa03e8911605e8fe03e7fa03e6fa03e591 -1605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03dffe03defa03dddc1805dd6403dc1803dba0 -1e05db6403dad92505dafa03d92503d8d12505d8fa03d7d61405d71603d6d51005d61403d510 -03d4d30b05d42003d30b03d2d12505d2fa03d1911605d12503d0940c05d02303cfce1405cf26 -03cecd1205ce1403cd1203cc911605cc1d03cb1403cac9bb05cafe03c9c85d05c9bb03c98004 -c840ffc72505c85d03c84004c72503c6fe03c56403c4901005c4fe03c31c03c2fe03c1fe03c0 -bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203bdbc1105bd1a03bcbb0f05bc1103bbba0c05 -bb0f03ba0c03b9911605b9fe03b8fe03b71503b61203b5fe03b4fe03b3fe03b21703b11903b0 -1603afad1b05affa03aead1b05aefa03ad911605ad1b03ac911605ac7d03abfe03aa2603a9fe -03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05a3fe03a20e03a24004a1a01e05a1fa03a091 -1605a01e039f9116059ffa039e940c059e1c039dfe039c9bbb059cfe039b9a5d059bbb039b80 -049a8f25059a5d039a400499fe0398972e0598fe03972e0396911605961e40ff0395940c0595 -2003940c0393911605934b039291160592fe03919010059116039010038f25038efe038dfe03 -8cfe038bfe038afe0389fe038887250588fe0387250386fe0385fe0384320383960382fe0381 -fe038019037f0a037efe037dfe037cfe037bfa037afa0379fe037776a60577fe0376a6037574 -1b0575fa03741b0373fa03727d0371fe03706f2c056f2c036efa036dfa036cfa036bfe036afe -0369fe0368630c0568320367fe0366320365640a0565fe03640a0364400463620a05630c0362 -0a0361601505619603600111056015035f0a035efe035dfe035c0111055cfe035b5a1b055bfe -035a0111055a1b0359fe0358fa0357fe035601110540ff56fe0355fe03541e03531403525119 -0552fa0351011105511903504f190550fa034f4e11054f19034e11034d1e034c4b14054c1503 -4b4a11054b14034a490e054a1103490e0348fa034746140547150346140345fa0344430e0544 -0f03430e034241250542fa0341011105412503403f0f0540fe033f3e0e053f0f033e0e033d3c -0d053d16033c0d033b64033afe0339140338fe0337130336351a0536250335341405351a0335 -c004340a0d0534140334800433320c05331403334004320c033130a60531fe033001110530a6 -032f0c032e13032d2c3a052dfa032c1525052c3a032b64032a640329fe032815032717110527 -1e03262003251e0324231105402b241e0323110322000d0522fa03210f032140042014031f0a -031e1e031d1c19051d25031c0f13051c19031cb801004091041b0d031a194b051a7d03190111 -05194b0318fe031711031615250516fa031501110515250314640313110312fe031101110511 -fe031064030f0e10050f13030fc0040e10030e80040d0111050dfa030c32030b0a0d050b1603 -0b80040a0d030a400409fe0308fe0307fe0306050a0506fe03050a0305400404fa0303640302 -01110502fe0301000d05011103000d0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d0000> -] def -/f-0-0 currentdict end definefont pop -%%EndResource -%%BeginResource: font DejaVuSans -11 dict begin -/FontType 42 def -/FontName /DejaVuSans def -/PaintType 0 def -/FontMatrix [ 1 0 0 1 0 0 ] def -/FontBBox [ 0 0 0 0 ] def -/Encoding 256 array def -0 1 255 { Encoding exch /.notdef put } for -Encoding 32 /space put -/CharStrings 2 dict dup begin -/.notdef 0 def -/space 1 def -end readonly def -/sfnts [ -<0001000000090080000300106376742000691d39000000e0000001fe6670676d7134766a0000 -02e0000000ab676c7966f9f1ddd70000009c00000044686561640d13be360000038c00000036 -686865610d9f076f000003c400000024686d747807580066000003e8000000086c6f63610000 -0088000003f00000000c6d617870046f0671000003fc00000020707265703b07f1000000041c -0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec -310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f2720629013500b8 -00cb00cb00c100aa009c01a600b800660000007100cb00a002b20085007500b800c301cb0189 -022d00cb00a600f000d300aa008700cb03aa0400014a003300cb000000d9050200f4015400b4 -009c01390114013907060400044e04b4045204b804e704cd0037047304cd04600473013303a2 -055605a60556053903c5021200c9001f00b801df007300ba03e9033303bc0444040e00df03cd -03aa00e503aa0404000000cb008f00a4007b00b80014016f007f027b0252008f00c705cd009a -009a006f00cb00cd019e01d300f000ba018300d5009803040248009e01d500c100cb00f60083 -0354027f00000333026600d300c700a400cd008f009a0073040005d5010a00fe022b00a400b4 -009c00000062009c0000001d032d05d505d505d505f0007f007b005400a406b80614072301d3 -00b800cb00a601c301ec069300a000d3035c037103db0185042304a80448008f013901140139 -0360008f05d5019a0614072306660179046004600460047b009c00000277046001aa00e90460 -0762007b00c5007f027b000000b4025205cd006600bc00660077061000cd013b01850389008f -007b0000001d00cd074a042f009c009c0000077d006f0000006f0335006a006f007b00ae00b2 -002d0396008f027b00f600830354063705f6008f009c04e10266008f018d02f600cd03440029 -006604ee00730000140000960000b707060504030201002c2010b002254964b040515820c859 -212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b0559 -b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d -2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b0022545445921212d2c45 -442d2cb00225b0022549b00525b005254960b0206368208a108a233a8a10653a2d0000010000 -00025eb862af5a3e5f0f3cf5001f080000000000d3d90a2c00000000d3d90a2cf7d6fc4c0e59 -09dc00000008000000010000000000010000076dfe1d00000efef7d6fa510e59000100000000 -00000000000000000000000204cd0066028b0000000000000000004400000044000100000002 -0354002b0068000c000200100099000800000415021600080004b8028040fffbfe03fa1403f9 -2503f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603f02503ef8a4105effe03ee96 -03ed9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5e45305e59603e48a4105e453 -03e3e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603dcfe03db1203da7d03d9bb03 -d8fe03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe03d21b03d1fe03d0fe03cffe -03cefe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c6851105c61c03c51603c4fe03c3fe -03c2fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb -05b8fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004b52503b4fe03b39603b2fe03 -b1fe03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205ab2503aa1203a98a4105a9fa -03a8fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03a16403a08a4105a096039ffe -039e9d0c059efe039d0c039c9b19059c64039b9a10059b19039a1003990a0398fe0397960d05 -97fe03960d03958a410595960394930e05942803930e0392fa039190bb0591fe03908f5d0590 -bb039080048f8e25058f5d038f40048e25038dfe038c8b2e058cfe038b2e038a8625058a4103 -89880b05891403880b03878625058764038685110586250385110384fe038382110583fe0382 -110381fe0380fe037ffe0340ff7e7d7d057efe037d7d037c64037b5415057b25037afe0379fe -03780e03770c03760a0375fe0374fa0373fa0372fa0371fa0370fe036ffe036efe036c21036b -fe036a1142056a530369fe03687d036711420566fe0365fe0364fe0363fe0362fe03613a0360 -fa035e0c035dfe035bfe035afe0359580a0559fa03580a035716190557320356fe0355541505 -55420354150353011005531803521403514a130551fe03500b034ffe034e4d10054efe034d10 -034cfe034b4a13054bfe034a4910054a1303491d0d05491003480d0347fe0346960345960344 -fe0343022d0543fa0342bb03414b0340fe033ffe033e3d12053e14033d3c0f053d12033c3b0d -053c40ff0f033b0d033afe0339fe033837140538fa033736100537140336350b05361003350b -03341e03330d0332310b0532fe03310b03302f0b05300d032f0b032e2d09052e10032d09032c -32032b2a25052b64032a2912052a25032912032827250528410327250326250b05260f03250b -0324fe0323fe03220f03210110052112032064031ffa031e1d0d051e64031d0d031c1142051c -fe031bfa031a42031911420519fe031864031716190517fe031601100516190315fe0314fe03 -13fe031211420512fe0311022d05114203107d030f64030efe030d0c16050dfe030c0110050c -16030bfe030a100309fe0308022d0508fe030714030664030401100504fe03401503022d0503 -fe0302011005022d0301100300fe0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b -2b2b2b1d00> -] def -/f-1-0 currentdict end definefont pop -%%EndResource -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 1660 851 -%%EndPageSetup -q 0 -1 1660 852 rectclip q -0 g -BT -115.200005 0 0 115.200005 1659.494566 0.0000456218 Tm -/f-0-0 1 Tf -( )Tj -ET -0.945098 0.792157 0.0745098 rg -158.102 787.356 m 160.379 829.535 l 190.289 799.809 l h -158.102 787.356 m f -21.06434 w -0 J -0 j -[] 0.0 d -4 M q 0.380357 -1 -0.775998 -0.295156 0 1266.965088 cm -471.528 27.38 m 435.436 6.755 l 471.344 -14.188 l h -471.528 27.38 m S Q -58.695 757.856 m 80.516 721.688 l 39.07 729.465 l h -58.695 757.856 m f -18.464385 w -q -1 0.699805 0.543047 0.775998 0 1266.965088 cm --278.556 -404.865 m -310.193 -422.942 l -278.719 -441.304 l h --278.556 -404.865 m S Q -10.25 623.512 m 41.414 613.496 l 14.113 596.141 l h -10.25 623.512 m f -17.112694 w -q -1 -0.121862 -0.110002 0.811158 0 1266.965088 cm -75.757 -781.871 m 46.436 -798.623 l 75.608 -815.637 l h -75.757 -781.871 m S Q -101.438 509.071 m 70.375 498.742 l 82.148 528.875 l h -101.438 509.071 m f -12.576204 w -q 1 0.937579 0.772771 -0.802194 0 1266.965088 cm --330.318 558.711 m -351.867 546.4 l -330.429 533.894 l h --330.318 558.711 m S Q -0.290196 0.247059 0.454902 rg -161.094 604.578 m 161.094 604.578 152.773 561.961 192.316 543.309 c 210.699 - 534.641 225.316 533.344 245.688 541.098 c 258.508 545.977 270.074 558.094 - 274.949 571.278 c 279.824 584.461 275.645 600.489 262.836 612.942 c 258.316 - 592.989 253.516 576.926 236.242 567.981 c 225.973 562.762 215.535 563.629 - 205.117 568.793 c 194.703 573.957 186.715 586.391 183.539 598.844 c 183.539 - 598.844 177.09 622.012 201.859 659.969 c 182.059 644.739 164.789 627.348 - 161.094 604.578 c h -161.094 604.578 m f -0.945098 0.792157 0.0745098 rg -293.059 497.508 m 316.207 512.684 333.766 536.067 339.859 566.434 c 339.953 - 566.977 l 344.664 591.156 340.164 616.715 327.734 638.102 c 315.219 659.625 - 293.348 677.164 265.715 680.52 c 265.637 680.531 l 248.703 682.571 230.078 - 675.531 217.055 663.453 c 202.543 646.313 195.703 635.578 196.059 610.594 - c 208.465 626.961 239.875 643.227 262.027 641.047 c 276.348 639.321 286.664 - 631.18 293.949 618.653 c 301.23 606.125 304.105 589.465 301.281 575.391 - c 292.289 530.563 241.789 508.082 198.43 520.598 c 138.359 537.934 116.312 - 599.153 133.5 657.778 c 160.254 711.746 268.816 729.453 286.945 734.754 - c 280.277 744.656 213.539 742.957 213.539 742.957 c 180.559 734.364 130.008 - 728.141 104.754 682.086 c 53.828 589.199 105.188 506.442 188.582 482.371 - c 224.301 472.059 263.293 477.992 293.055 497.504 c h -293.059 497.508 m f -0 g -BT -32.000001 0 0 32.000001 1361.895445 368.012451 Tm -/f-1-0 1 Tf -( )Tj -ET -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/poo/diapos/graphics/Logo-EOLEienne.svg b/poo/diapos/graphics/Logo-EOLEienne.svg deleted file mode 100644 index 7a2c713..0000000 --- a/poo/diapos/graphics/Logo-EOLEienne.svg +++ /dev/null @@ -1,779 +0,0 @@ - - - -image/svg+xml    \ No newline at end of file diff --git a/poo/diapos/graphics/Logo-MENESR.jpg b/poo/diapos/graphics/Logo-MENESR.jpg deleted file mode 100644 index 02d68704027f8a225c05e87cd8888e10b501976e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9572 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 kPeX(!w4*50O%Ux2LJ#7 diff --git a/poo/diapos/graphics/Logo-PCLL.eps b/poo/diapos/graphics/Logo-PCLL.eps deleted file mode 100644 index f151afd..0000000 --- a/poo/diapos/graphics/Logo-PCLL.eps +++ /dev/null @@ -1,927 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.8 (http://cairographics.org) -%%CreationDate: Tue May 16 12:27:36 2017 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 3 -%%BoundingBox: 0 -1 300 165 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 300 165 -%%EndPageSetup -q 0 -1 300 166 rectclip q -0.32549 0.286275 0.529412 rg -197.438 160.944 m 171.461 160.944 148.402 148.244 134.059 128.76 c 154.211 - 128.76 l 165.531 139.28 180.707 145.713 197.438 145.713 c 214.016 145.713 - 229.07 139.405 240.355 129.057 c 260.641 129.057 l 246.285 148.385 223.293 - 160.944 197.438 160.944 c h -132.855 37.463 m 147.086 17.01 170.703 3.549 197.438 3.549 c 223.234 3.549 - 246.145 16.073 260.508 35.323 c 240.219 35.323 l 228.949 25.041 213.953 - 18.772 197.438 18.772 c 179.809 18.772 163.918 25.92 152.438 37.463 c h -132.855 37.463 m f* -4.26191 w -2 J -0 j -[] 0.0 d -5 M q 1 0 0 -1 0 164.490509 cm -197.438 3.547 m 171.461 3.547 148.402 16.246 134.059 35.73 c 154.211 35.73 - l 165.531 25.211 180.707 18.777 197.438 18.777 c 214.016 18.777 229.07 -25.086 240.355 35.434 c 260.641 35.434 l 246.285 16.105 223.293 3.547 197.438 - 3.547 c h -132.855 127.027 m 147.086 147.48 170.703 160.941 197.438 160.941 c 223.234 - 160.941 246.145 148.418 260.508 129.168 c 240.219 129.168 l 228.949 139.449 - 213.953 145.719 197.438 145.719 c 179.809 145.719 163.918 138.57 152.438 - 127.027 c h -132.855 127.027 m S Q -q -0 164.491 300 -165 re W n -% Fallback Image: x=0 y=0 w=300 h=165 res=300ppi size=2580000 -[ 0.24 0 0 0.24 0 -0.629491 ] concat -/DeviceRGB setcolorspace -8 dict dup begin - /ImageType 1 def - /Width 1250 def - /Height 688 def - /Interpolate false def - /BitsPerComponent 8 def - /Decode [ 0 1 0 1 0 1 ] def - /DataSource currentfile /ASCII85Decode filter /FlateDecode filter def - /ImageMatrix [ 1 0 0 -1 0 688 ] def -end -image -Gb"-V#C$t`_Z+TWTnl<<&Yt88b,Xs2W2ka,:g=(M65>*n8eDZ2(mhN?N"B_H["+5p+.A - <))6]`'+5R]f?:_V:#om[bNcc\tLR=!98HgXVBTBGt8j6i'dBCB!VHZ0u - LnW#DWd,0R#dci1=3U^ZdGoX-LFj.hBC\rto0E=uRLJqe*Nd:%%]!1bkYap\`u6@:BmK-Uc - 5g>UMEJ*k$.Wb'gn1*Bef>o]]:Gf<3sE'j1,Z"98E%!&0DO@_$gHB)L'Jd6!Aj>dd-Z_$Ql - d+#\((^Rd`c/[fRU`nI`_piL1([`;HJIf)B3o]8[)<\0UO[:\OWQsK50rk*LSHE-6H(]XO9 - !:U!!3I)DRYO1(c,'*K$Z_hXXmCRIJh`4t(:28U0V"0sgfaIn(XcMmBtP)dsQq(cBtn\H2 - -ejdIEsMkN,QH!<<*"5Y>p3hSflS@s5hHL[>Ke]mN)Ki3l?M/+8!@)GsdeGPc7$nF4f8>B` - KSSN1h\h?j5_!!(_jVI]&NHW"r`s,kM$opdIgQ1As^O41hr(fC25`[kI<^ACIfRIp,&e]/a - 3!!!!592!Ng4*5X76qkD[jh8;)k1N:RG:Uc1kEcj;q^`)F]/=2%HqJFjlE^Qm!!!#c/gi%@ - k`Kr0(@N15CNtoc;jI)4o!!?so'>tn[.0o?O'M\)ab5S"4;\%u!'n8<1F6O,FSrf0c%?8Fj - borfRLUph%NDc/FRI]^HVa4c?iU0,!&!GT;Y&uCZ%2qf'L1K:!!z$G*=?SD2;1:qmR5>? - \hkb/8-_Y@)?*Lf5KZ.nB9C#ljr*TE%PGHZe#)BHQ^=D85";1#r@Lhe^MUT1*Nrm_,-TXSQ - `:!!!"\5NV!0iXVLg$/3n@lZD57Lq$9qm6#N'i49#;:Zgg#WBQ4@!!!#/]GoJO2Qf2&k1B) - 4/]T=/42duEWO;d$OisIW*PRrY2cp(\!!$-aE`2IcLmUL,6Tc=`.;q-jT;?\jOi%AU=M&>* - NU,@D(]XO9J - ohRAcLRgDP:kZfrGDT8!!&\9okUP$(C]Lr3H^deULXE.,!3.KX1X&r@PAfc`s% - E.*j[@\0@-Bh4Tk`b!5KRecWln:gP13,3Dk(^+N3Dao:!="p6J>fY,d"9!<<*"YYf"Ep82s - ;#PAU)hCiD[R\;JBBQ:DLB.AT!&3^)l,t59S%`Vn??rFk`(ojnoFD@d - 4IL.[ot(Y5!!'f%V5It.MqmLOH^=4,6&^9n:J!!&s/Yup]fs#FoB6I/-dCB>[%e&oSSDs625qbC>)+#!Zp!8puDkuhe'mH - `SN](0/mL_HZ;5GtW>Lri36;Z0>o!!!#i^Vk1pB22aU1J\>)NL-RCXQ^ZV?+cm->mgW4!9? - qrNh#\[]%F?OTCTrc+YK#1NCWi+>]qm]U?ZqV!!!"\J&E?g45=J2o$ooI/tG<,6=P,Wo9E; - U!!'fH\N+r)2oP^B@tsR94X'VJ"*t,hgN"PmO0T)m!!$+E1F%6X6qm>M;j8s"$-AP0[e&"i - jaUfPjf!X3!rr<$c7V7CCJ!`MYM+q:^5OEbhrgV=:0\jSS$!(u!!#,X7XEY6d%0f-66)LJm - /rY-h49t%Xniq9!!!!YMp..H'bN00WN:KX:.Tq1kI)&@_fjI.!<<*r^sPpaEN4E:ApigtXm - 'PfWilj3!!%PEAS'sS>J."XgBl#hjb/_Bd\U6bb%5p?EcP/e-NF,H!(Y,RZYW`bTUXPDj\' - S[Ldl]4T"8LN+U\f_"TSNf^33oQahHZX<5/8WKG[DODSPRpMGnrbzb]bTjEQF44PV9QR+ZA - Cg5Kl<=n?hJ]#QOi)@#d%@0)H)`XF-F1#a('j,G.,I=nNL5!!!#'h2U`7;^XuAo'fSl\gE) - tP1GU_cBtmq,ro9(eHGpQ!3f49:>UkaR#[cuPV9$C+f<;\Q%+&2:2U+A!!!"#&[O"e].SZW - (XdsJ]B9!ne+^j-W4q*g!!!"&cCDI.CsYN1Me>A4_r)*YUl1,X1)Vcg_$D!!!"tOI;4oHcF(V:&'Mt+YJil%bt*S-DT],DpHSNd'2X86!'!!%QIn']/o_gN:L?N:a+>TtDA??A1V=nQnF!!!# - p;dQ&,q9n*dRuL:ZmNmOr:cbs#]6_G&m]$Bi!!%)24`f^lIHN"cmLhik1d_Jk4eHsnop#pc - !!)g\DJid*fZpp"7k7s.&jfhai\D--GAD(kT'E?p!!!"(f]eSkhS!PN?ec8\nkJuRS='q<6 - 1qVp!!!#%-RU9#FRE0N1d_O'4lX>a0I07qA5lq!!!!#W1/@amnV8/APV6SS+o++rH3Tp(Q) - +7k#64`(B4nLI[3?flm2)O^Y@%Y[q**e9'-=S<09?#1!WW5Y_3-G,)"Q]LjU5-V8:eq!^2k - oGqd0='!8M3W<1K;Q^[h%I+f#+86d'Ib=7&q7'a+L:J?qe\OZ)Kk--DRRKTH6VE?Ps],Loj - `!!!!I[O:pt0'rb*Y>,BI7&3JfJA$:B<*pFB!!&Z]G'<;t^ic6.e?;M:Ia7,V-U:ogihA8B - k/Q2H4Or%S!!!!Ye:khV"*t,$?]Gaca91JYB@b$0f2Z0,!<<,X+PSdrl-OI@nl7(]eu"/d# - nTV(UZ]/S;/rV>QN.!cYck.0S>d/GPqP<-+iId,,thLQ<*q]f!!$CCB2;n6U&,8[CJI2%Yp - t15s*!PSA^sjY!!!"dCua4Om@0)4^=ji#8bf6gX%-F/2Qr0AI2rIk!.[)8ZZE%'?_r.48I- - K&R6G>-:/7tWCFT;a!2Nl1SFTUNfuhp4KFhTb#4r8:FRb+N.k:T"!,QarhoX/\-R`>%&jhD - 2&XTnXqbO3*^&e97^cE7S?f?od[drod^7HU'&CVjVDW,"c`J"d%!!"Vp,<]hdn8RL484!Te - CI\67-oEkLobA8C!!#(*S[n<>fBLFZO+\)(J;DD)q8@'KYIac7!-kI@J"6$!oN/bE,_Q_a` - N,:(J\_XbG4>Q1]RM@J[9gurmm'!.UNXJr0.[C`dZMcd(@W*@07=))'1ta6KIJ - N)]-cV^+pmEmAbS3Rh"nCMA(pJ"+*fj`*^$AJeRj3DShl0!/..ma))cEf`jH%?KbS\#b2nlSX;nVqG%O5;V$kn9`?jr/NaKD=hn - kJR8`NkJ%M%mTrAQnr5\u?C#*=\pKa\T2EEX5h27#UQsK - 5p:0l/hbZ9/kg+G6?j2@Q+GATFQD"4[mP?*V8g>f4_SrM77eATHR/stGh(B=HNIaZ\#LCIL - ]I+:`W/a]$ena82Kd^U%N@6:6.*(rD<2)i!0/B]itZf7%:hmiBqlkpa2DscCqMXk7CS1m;8 - /kAX[<.21V!!)(I=0JFllT%o>HB1$Q\p7!knaiLNZa]:WMA)Q1_M9'0^\"nWj$sd7YMMKZq - M&F2(4OeG]^g\DS0:,hQuV5.MX&Y(!!"-K3HOJk-mm).Tp[1UD:ZH54G'EmglE9NpI[e!If/M0C++<.9Zu8-?h]T11PodL(F!8o - Wp"`IGUKHk**Q&"7Y!HV=1`*?&0Ye:H>/]\o^=48He_)Bb2>oo@qPhQ(OA\L5[&`OdhiU.uR(]CH[TYps(Ordb*4EJM - i>5(2@2//F.'0uW>(TuC-q-RuAN@tod%k"o"X!'igt<^^D&UjR#K%&S1-Oi)UaG!s;\BBQ9 - YGMqgC1U8sCO8\l]$ToAJT-]iG.,Uj8<<*"qOGUBlB]#Z/=(T<@\p'SU*k(\:[8b[h%:%5U - M`3t7DYgBXGibhX0bV6pMfWq6CFB/_:_8J@3c`jcjm+Xq)^"PE]=&gAc74p?Q'J[ac%5lO" - Xu[4M/Gf]Z@q\F!W[b&7T>t!IM'_(@RMGXRuRsq^&6B:9<(c'j>RD8(BO[_`,UXKJo4 - pd/S2_&0 - YOaH*@aD]ji#X7#OKb!N4q=@DRQ+n-VrL#NkKBfcF!!'fp_WG]6^>^>\Vfe2c'?@7H4F:*$ - W<)q;Z+.^a5;2SDV#IJ^m`ta`>?%45!!!"BZ#!"=o!K7DPI=hWRPo0YV$kmTT,5;V:7\mOc - 7boW#>\KFU+BWT?1iID!!$E4[4D"Aq[k2Iqds>iVld^[,t7Ju!GFKcG\sbdau2s`.=]O&gK - Ck'YNh;Q!!'ek4/1^s)t@\Up$'hDgt^g^2m0'X4sL'&/ghskS@Z/r(N`[MC$"<_F5'RBB*8 - 27J-fZqS772O4RJSt%LLjRH8@q]klB?[l-bQA1!BC90'*Z]o0WaXX$.O(!!&gb5+1Knl*#J - GIs5JN_eHqdV&1YaAEoVj+d - -N[\Q_m*kReT[&E2ci:?QhCFrcLViZ!!'h-,i;/iY"PGYePq*ZGFr#n&+[P!jBL"nNqMg$? - 25GA^o$;H;m0P(`m*!!!!9P+.[0bM\)s=&9&SS_Hnq>lKM'rDfHkJE(0OjXck8X^0E'b27 - ^Q0]H!&S'(s?!!'NZ^kn2rf1lK$SrNXL7P@P/:02l5!B%#b:(_CFjmU+hQmq&sWBU(W!!#' - GK^M[NC+`_c(]Oh=IFnQ#!<*M6-LB/E5l"$OJ7LpKi+$bS`#$d?@.25+H!63&d\U6bV2I93+* - .D^JH&5;bP\'S%-;9#Je0S2s2a;On.B$CTU_P-Y^,!W1`<.fc!(b-]A%8'W>V^s3<0&pIi_ - bV4![f$lDPh9\51c-.k.J/38f*XT1g0M.p2UO\0,>7TS<;$)?9b6DJ%ffjm/Xg+"pFiNGB' - )51G)jbK\:9'"Xk*(]71]m[5q\KBf3@!!!A5bo:,WYDDatHj>F5:.eQ8W.Fm)6K5Br"6M(_ - ;s4$o=E?b#T`tJs"]Rhd"`EU@f6$X)[s$:c$_O!mb[[n[`7q;?o.eDFi;#?L\`GIE!)VYN[ - FD?"-RiC1jl?+G$,(AIDkR5UOa-Nc)GkOa"cZ - +>=%^7mM`NhURG?[6B@^cd44"!*O=7pP;!!!2A[#(hX=MoNhIM([pnaW3sY>>7T3LOic2pY - I2>Gd?dV>:H"!.Y,Z?0"32/"_3WL[^?PC!J&(O/e!!))$7us0 - Ue"jcDb/"S&"n()adZN0iRju$<;ROA,H - `6X?>P1*DQ?D*t'S%Y"ZTNWEl2 - qCo!:lCbEJ^feN)[O4a\VFK\L]lq;tY\Fn6d]el+[X5W;JuETCSU-W#k%.WW3%7*2tkQ\p' - U;I"dc&,*ltZ=7&q7;uu4(bHlj)D=VM=rh>Nndc7AWia4+6%kI\\E-W5B?R(=X;80K\2sJa - S+R\`%eOL@);*1N3g,C+Kr6g^G,6!;5(K:D8J>AGB1!3QTq'Ot3B3i'lH2*)Km8SKr!D'ItrXs-[^8>X;\p7$4+jg8i^]n;(LFZ`RjF_Phm=/O48_ - "%ZJ2qd@`I6EKXRZ`l5)A+C`I'rd!!$,4c-!`Bf.d"C5BNN;iV[iK#8;WU:7k5Fd@%2;RZQ - W(q1:'r!&3\K_PO\87k7r^\9^US>EY,?V>=R$0]2P=W<7GM/&008HJ11nFo5pIl@TBC!*m< - h^5i%!?UpC+oZ:n>o(Y$\ODftKV=3>=jd-le:\RUH5nsA"kR/6@>kttMV;p6B7-NF.WXgE+T"V0#(]mOucf5hQZjT - ]Z3HEpapBfjfWW3%WNi7qmPcmkf2uS%,?+YD]oe?TBhM(RQ^ZuN2r1`8`q0ctal=1)"!1^o - [`+pAsN`3YOERFQ+cVI3Y<.,/U3/a7T)2%d@.).ULB_[0/!!!S9ZZ>p8$rXepERB^a&WrWT - X83Y7E%[QHfo,!2$OPNTCrklVHW;.Q!!&[Z=:Yi('hiF7aNR?o^-`&(zzzzzzzzzzzzzzzz - zzzzz!",`i-SDNWL`s2Qma,+e#7q'dPq+:f2]X6R-13I*>6"X'Vm^Ni$3-.2Li(hVl%nU,L - k=j:itmrPr2uMhbP%kuJ,fQLcpCBj#qZlacr+FA9*G:qE,r*V#Zr@#*!%190Pm - K#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4F<@5 - (P!!)H.cH]HR"oJT1iZ>I+RF"j*">*V#Zr@$UEr5Rtqr!);cC[>ii9b,fAK(*[MsAin(G8t&d/PDLWa.!&gGX!,4DNBEc - CI&3rV#!,5Q5o$qp8705tdIL/JUn);Ir0f"TTqb'bs`K<2ht8Uft0@#mgq3gYBf.)t,FJZr - G(mrUndM%g4KW*jen7cr-P?/QF.);uhFuU,,",fOO[*PH%W`*^>,/ITrVE3WiQc[:lNpTqt - '^>,k80W;loE181O2$!O?&BW1t3`sW=c/R#N - [7S,%5[VU&-[-?>AV)eodWjQN>181O2$!O?&BW1uncX^X"?G#=IV+ZZ%M7h+=t5c0V94IW$32\(0/)ehn`(2n&X+S/!TW_@**:kFu_'3Zjc\:fD8#JU01gS/C#lurZE]=X!X.L+e9AP6 - oYY.aR=il$[kDJiM";!dc)S[r'3ZlMTV]eaQ3mUE_#Z.\[_d_+[r1"_ - 2E'.Aq0RI8CM`Y-Vk5"cA4Z7M`?4dYMA@eT@)2p?C!]bK">//-ZrEI?;P=4F<@5(P!,r5SC - T4eR]=[h%djHFf7=OA7Ma\&NZ)u`fCS*_7;Z+WW4*FT%:uPi4X@SHt1M>!tS.%""8^LA;78 - &mP/JUn);Ir0f"TXnIi0J[nN>a\Jn)#cYo<)B2C2BV5M\`:kWH\@2fs>>We>`&D5O@Op2LY - FDRE-q7scr-P?/QF.);ugkD8m5u'>;n3=\T4Ojbbn1)p:ueZjn/9?cHFDCkKdd - OA9`BF4n(s6PUNeZlW0Fqcr-D;/_+%3<12*2T`crI-F?_PE!`OJC8"kfE6Xh/16_J&n[X.n - OH:$5*uR:lr&kRl&c["$U.$idpktI'1h`l>U8?"cQ3npOWA:0D!ek/^Y?nm\*?@:]hRjq[r:.JphU?`9bJOGd"j-* - t7Ri-9YHR^sX+!Z7gX"3l@^4!jq@6]/PG"aUMj>h+=t5c0V94IW$32\E\#"QQq<(cf.,*[^ - =gQt0isk$#[;tBO3B9*Cg-NcPV)eodWjQN>181O2$!O?&BW2!i&km5CG:Zn&Ug1HN#)d4a7 - "i,Jj^>Gp-UCD5(+iN5ZrAG>99ff8'`_KjrE?5jkF[6)WD^]+95W7]R>F#eGdLEt5teU$/Q - F.)<%(%*PmK#W!*k+]>H4oWs*c3M<%V+MPW_5&S"6*umFjE&I%8ig>3beHf@/0r*4@l*iX@ - F3k09C;aiX85MHOVl181O2$!O?&BW2!i'("FPKn''e?b.ghLlRL]gsD<:9'03Y_r[;+511hb7JGOP%jE)Bme[ri48/bSc#dm68c?[_Ut>Aq2tcWum0GiB%W - g01n!20S?=?+Y:%ge1e,KS5#H1M?FKgUC%T7Wn"GH1AiiT7?k9>.&+Ys8MmiRPYm=B[H>3b - :d5:I.r[]^86^.l1S9S_$;'H044_HD3ZYT;B5GNN>qcipoIW)`nDAZ3hq,G^'oO;FG^Z[u'p.n\l<=Y3+m/9((MPNc1n2Bkc - %n9mc?BpY=QZ%.89"b*Dkumk7kH\MGtr\T?q_q;mq]2/3u].<3^!rqPLk1M5GAoqfQ0Wi5h - -&J="R.TWX<_:QGDl-`mE?:H"#lU\B^RF"j*">*V#Zr@$E#nCXJ_FG\rUq;BUp@bqnD3m[Yn'\%*;GrZ\o.cA@d,06BN - KM!)\=_u8!sT/F#?:S]agY6-`A2f6lk`uQ_5Puh:s\LH<.N3d*=(7?1b=A)r-C/qZVe`:rMM'nl#%1P1+8u< - 0MDq_R4O$33(r2satCoKpb*3!/OY5C+E'E@gAs)$>jnn$0GAO9%D'!tW+cr'n[,rhcu:7aR - NGMV,gH#nV5M+6Ogk?#04@JR3JLRXd&\$rikXhb#i2('bAP^VSamkphhs8M#sPan,RPa%D% - N>e4p?Q*HYlKm31++bBr%[qe)OLAn7k4o - Q1TS&!L26]p^cl@bWJPm+kPq1G`7DCh\r9ma@qig:Jh?^3mJ7mFq9d[0O"JV>C#`fjd3glI - <@jor>PUWE!W2181O2$!O?&BW2!i&ff@uVb`qf]3H-];0SP[e5RZ"EL$(YVk8hjD!__d[A@ - JHAVjRCDjPtMkpMt`-7L5ejioaA[,8%BcaK-Sn35C2q=s!2*Up;/LS:QeKU)rkBW3b\V#l0 - ?E(inF5('m.>.n4RG1qRN/=+kh>FX+N[!6nC>5L<^qmFqd]Y([igY-e"h;$d$04&JLoONao - \ODDlG29S'g!EVE9UK5V=nV1:f,h-"&[YN*cr-P?/QF.);ugkDNbPJ`3d&kVW;#N'6[K@d+ - !6\-J\KO,7pEBRp1pWP7Z;<%r]^/=PP71ae,^Q9rpFE999"gd1B)qORh[P\Gh]ZDG']^ed8 - FOB98+"c<12*2!Pg!@VPP3A/a_2q@l6`3M2?4rG;m8&J)Z;4hLGS([VacVo%U$9RsObmM>t - QiNu'HUr5]I#et7,#WFE%?5*eXeS52BJ<0Z^qd*Sn![r0j&@EtB'rVH2f<2l%s?1-:GRgh0 - \g"E]EXh>C1fU"XAl?IPu1i:sRDV_nM5QAA*pQDh^V-^cWX\+j.#"O.0[F]eRHpU.d`5s.5 - mD=PbI=6NZeZ*3Ma(s;0XlKl,ZrEI?;P=4F<@5(P!,r5SBW9apD)8Ii?bUp`_a__lbr'`u* - Dp$E[VWK``JXO7JLUj9h5t\W`^[r[hL"]Sj83MNQ7=r=)fNAtA?)Ar*^4uH@=sBm<1uV^h* - FFL5(3:7[?It#]6LplG^]4;F_0r[\9:[eIL@,I=[@B6uVX@8^Y?j(aGl.-tA*kOY - ',MHtj?Z-#md@g'^A%Y]_u7NqoBWTpQ75a%G>.$K2)[ADaKP&Zp$.g-Q)-WCDJlV>&&#aNe - lr@AAg1EY9PCD%JsIl"=t0N^"FIW-8WtLc0$Xj\H61,E7M$m-fk6r-*MGfR$@i'NVnlO'fs - Bl3`uinR;`$Rg".J(EF)l;CpKDYej#pQ[eX'Tg8UJ6njiSI?K^ukVqJ4n'?PN#!n8PF_]mT - X]mYb\iV7(-h8p?GN#7i^PROG1*DADiKhhg(u/QF.)<%(%*PmK#W!*k+]>O(:kP7?Ao`n/i - :@=s5fL?eb_WD]Q&*&q?Vgt&T3BB2!_#4H89H:senJ%k@+rr);8>;^#7FL:HgY?\WdW\J@0 - oB&alhamG7pU=T#f3a#5HWYnPou)\#\u0Fu"q@ZF(\G+Nf6"bS4D<(a)tmG>/QF.)<%(%*P - mK#W!*k,H>,iupiWlk]^8"f8@M^Y%Gh>j]^]2%9#iisd[pbGJqtAP\\RW[?7YW\3V:M\K:O - BmD?@'_Jhg9P2dRAN8n%\nZg+f]E&e^r9ZJ0aW+gY@P\$rj?39$_sFm>4!dgHKidN2HL6Nq - X"99ff8'hZhNAO9#n!1.)&9?kT#M2mT;3HF12YIpSmjukbLmej:D',)%%n)Gl)TP^<"9h@q - (rS?%7O$/f#Sut/>\Lgg'G29?=cBp?(L0`ZJGH^_E[;+6t@9BQIq'<'O:Goi1XHm&'H?JUp - ^AdtE)l>".-1-%R(F`8Cg9k]SN,1:RW_@**:kFu_'3Zjc\-1WRqX1uam^^Z@9q0_9>8J%j( - ).JDj5\Uf;lBKbl\e*-4k'RjT+Y/r@FL]$AW#m]F6:]OH1sgi*j%N_6id[C:u+-Yc=NpP(Jb55OKfRl>3@rr"eE+V*0Wk/ToaPAO^$!qe - 4ZgV;t:L621!$X]r9#).1+S?Fb*q][tRI'e31EGm19<99ff8'hZhNAO9#n!12X%QMT!!+!! - =[^u4"fNutPg>-VPUjBmK)ltkKllTY$]`0NH$g,(@u]d>*&<`>>qkro9&(b)A"2;KqTdD;K&BM\7=.aLhT*U - 8?"cQ3npOWA:0D!ec8MdGE6+&L4YQ0X - 7J>G&r"Ws8D\g?dXY/O%M+>>0AmD,R0#&Xc_9>-q7scr-P?/QF.);ug - kDVRP&QV+T:==0H8_T(D-k^Nf:CbhR;EC5j,h9R.4"O'S/6`k^Sc1^t - rT1cqn%ooGu(%&.'r:A5ij3+p]p$:5!pKH;1n])`,k80WDJ24.MGu8!4 - W0fQ>5%/XD-/^L8HEWi60BieU9Vq?soZ$+==Nrh0VWES!TJ.oS`QB[;+7?hKnA1SRog-DlG - HG1$608[P7#glitj8AO9%D'!tW+cr'n[,rfs=SMtJYmZLoNTrYbfP*0pr&fr*s4c"qH2'aG - 8H`4f8$ig"^O5>&dAB>J+QW1kX++C0%GER.eQ>``M:7TZP60Qt+U]"O!ET>'\]E6ZYV94IW - $70Ab181NGJ4jkDQ>5KeQdO4.P$9[34iG$\pM(4J@S>5l8iV>"]]H1N6I!P,DFm[m_EYGQZ\(9D([;+66#;NK[k2k^hhT\VKCUp!:-8[PYHe3q]F6D7>^*tZ - ,dn`3Y*i+)Qju1Q4g!EW.6;*"FZrEI?;?=QZ3-e/6e>SN'oZEFLQ]mVCoD#;aWOeA!uiI!+[LJ,KE_l(fK?ks/TnjZ!SW0j-rD0K3SEOd3Ybhu9PCD%J - sIl"=t0N^"=J,eUIL6k/N'S1YI8`Sfs>>WN^%7+,i*H^>H1\aG1CG$DJj@^naSO+[6bXe7J - HD\@df=!5Ao6NVR4j/L^/mWSnm]3P*Z>FPZ>&$Z%9$sA%[E!R - lq<'Oi1MrVW;k^&1KU)rkBW3b\V#l0?E:T;E]_q?D\ts#`RPd!^4CcA>h2t.l0f%8PmG#%h - .8ls4<`YO&M.L4.PV-6FHU'MK[k1gmfW`uMrVl]_\hC\J4553QDG!P:55F7Qh+c,UIVH?CM/`mP>e;M(#?R(>.*Xl9:)_#goQf&B?hLQ)&=Z!AEhO=f"V41KpF - 2%=t5c0V94IW$32]pq-0ktT=Vd>'L)Nkj,Ap*K4A6&I_Bplg:CdOm2@OjVb`r9*UW0r^G`g - XHhQgR*Di\@]mpBF]*BM^.$r^)'h;$em7 - k7iSn:hAkN:41BrJb`BjH2sPN#?-sNK,Z!^-$Q'%qXs0d]=WtCT/1,?nNAbKjN3Spm[C)*c'gLo^OCTSG..+3\[f8^ - ^EPVn;FQl%I9c4]O$32=f99ff8'`_Kj9=.YA4?VD,?RU$^F-s(6\+]Fb'BO#kb*B;GcQ58tGe8.db*FVpI$"0qk? - Bg]k09A7**IBU[VacV]"2Lu)H!"^`pD6VQgkC>);N-IUOW=C@eTs,!uELj0Q#ONZ"(fa*BL - QOn(nKm2QTr]gASe[rR\g`-$Oa<-5tu-n%st,L(.jH6 - ocP>jb4LW0R`EXf;r+2M'HN*A&jTmqWO[afXnauePZQj-9,C6jiWjpdu1;cQ7&&A0qHImOjabKMZXuoN^1MWTe>XW\MHI9[8sLmj%N?3#BB82PP$WJ!-(BpOXDXDOq'6:/PqcTZ.5 - M+'j%g#M2E78&mP/JUn);Ir0f"TXnI=tTEN>JIIkrqYaEe.eo^W?QDmg[jUS)gQhQ*W>j-1 - H=r[%3'3BB#f@0@q0B4ECmKKc+7XO*jHEA5Y6f@;ekJh3Pan3k6,j:6:f*8DOcLMEB&ji52@Bm#PMC@")`MZ9>e. - 0=p?iFF>,m[SSF#M)BtoMtl-m].Qdd-]W_@**:kFu_'3Zjc\-,lLWBs?TcJZNkc2%U6)!@f - hI`fgU11b>R=0=CT:"&7hBWFTt92"mMp+BCIQmmB1&*"1U[?E+BY&rsYakiZh[CN+@(5q:` - hgRBV,U7(Br:mbcBW3b\V*YJlW_@**!8nJp[&)Up)]LIJ).G\T>/#Rql*4 - <12*2T`crI-F?_PE!aY.ak&B&pA7%o'2o>M%dquSUIK5:^#8_LT,51KcC?mQ4DVqpU&aW=^ - HXD+Y\2:R*ZcBk^AG(s-DJ(0D;*L(nc/CENsQIHZu=k$Dh%YRp8rk;HKqI?5Q"?b^WDZe7n - #kCV59S8!W1!`bn]jBp%<1W\8dc`I%d2=BO5(V+\cl+$+Kl,9oSKeElV_`JXs2*8%T1O4`Reldq&ELl[Tm8kN"STG\DS - AS!/5,`"SreQ(t,peUG+7un]+s5UM&f::pR_)H8e&8.H!fVVB4`$D+QUZ:@ncC[=nR[U7&C - (Ed,PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P - =4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G - :qE,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff - 8'hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.) - ;ucmu-V$gp#qZlacr+FA9*G:qE,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc< - 12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);I - r0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G:qE,r*V#Zr@#*!%1 - 90PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8'hZhNAO9#n!!$tYZrEI?;P=4 - F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);ucmu-V$gp#qZlacr+FA9*G:q - E,r*V#Zr@#*!%190PmK#W9$gII6;%I^!,utc<12*2T`crI-F?_P!!"B:99ff8' - hZhNAO9#n!!$tYZrEI?;P=4F<@5(P!!!!H7n]*R/JUn);Ir0f"TSOAEjSf6cr-P?/QF.);u - cmu-V$gp#qZlacr+FA9*G;3Fm7>NjQ'k%ZN/nhZrEI?;P=4F<@5(P!,t@E)&_nWqsGDA]TJ - GCUj=Wnm#IA]'3ZlMTV]eaQ3mUEa'u;qkg6$M/N%=p4EKYDl59W,03YALBW4g[Q7*V#Zr@$E/W1Du/mPo*U&V0@q==FVm8H/*!;8`P - PmK#W9$gII6;%I^(\5TgIm!SkUP0bb9URZj[V\r+5lc'o99ff8'hZhNAO9#n!*=1>r;"L#. - mL84hH$pmaiMOoe^FY/5$Fs[BW4g[Q7GV8cTeJ%.0/te;Ir0fKb - CalRF"h4_"h+aQ8WU6:f2cFMj>h+=t5c0V94IWMYo%h4oNa$6[SOn=gr9SA7VM2cY_FFM>q - nmjN6cTCt5ioN#FZpTPd3kp%;6If9,h4S+N - OP2>$N]mBA:%3%4lhnT2C"Ug>45H]>#^k7>qL:Xq+Bq3E,ruF=Q]]s24YTm>O9PCD%JsIl" - =t9)uoB4FqQnY4?]mBE;Tu4AI'e4=hcsb4i3B(j2:q]63Ir4)W]m0),g(ebYUe.Sa$,F8gW - A:0D64$hq9PCDEFaNiKC#?XQd@s'H/uSFo;5-J%Q7\l+U/^S$$G'06:6dJ>?K59B;PZj&E3 - KGAZ$Q*.0k84Fl-^k=3niG[")pJ.W_@**:kFu_'3Zkj='T"ckF[6A@QD-ZHgeYg""9j88kM - _Cg9n==C.LmOl.\p+9O,&Eh>$O#]6h+=t5c0V94IW$(P"\rB1hA9OHTlF6O.opK.OsQuD[r1$5g2@4".\Hnr<@5(P-p^Lk - #qZlE-S@#Hq\Mr'gV%sClCCCqo>;)'BUk:*M\hG1Lp4pChgG#imC*0L'i9LJ.MGu8Pb=kqK - U)ts&f)6`Z=HO*4/e1+?@#39:8>U]N/Z7G-cK:tmFnskg,(ArE)*c>RF"j*">*V#ZrFPs=g - M_N]=XQd61k[+2GEdmUVP!rc0aB$qZBX87j!/$_hJWogGCJsE)*c>RF"j*">*V#ZrFOBIt) - t87n23bfO@06K'HW3!TiM-GL$Ru\od0W4*K8!UU4"93RL`96;*"FZrEI?;W/6T6:0``Wk5l - iM%V,9qN8@3l`/fa'PP>!_08(-:o6pS?+Y:5H],71^cBe?AO9%D'!tW+cr/j#eui:o_sMh? - +nb?o(ccWtqXs/MT0Ag8RsSe`o^qdN7urQ-IDUXD?[r#sN>aYq2@+O$KlYA&/UQQ@8'7)I[ - t"F,#AfEd$90D:W_@**:kFu_'3ZlUgk?+PSppNMX8;)\r6PDeS2p2\N>omHEoP#oET>(;rU - 56Nq_tsX)IL4+fm^O;(pnGOf#*7R4(_^(<5:NA;Ir0fKbCalRF"jjbUaN&_hJV[pXAEXX8i - 1rmkS)]Fk,*qpNA3-d\M_&3s)o!=t8I#BW3b\V*YJlW_@**E+Un))FFW35TfX#5:OX!BEdaDY1ccO:cO,k)EX^Ah,.On'g_p - P5L1G^i3R_0*tm&ZSuY$JZXc>MCF:&M>bVqR!`,;1_=jN3U$euY8sCY"_!;Z["%VG3Nq()F - >ga,UND/ss@5-Z>te=]pLj+'uBlfl+Y(2IXIUWDf^PGEDU'qtBDM:/4hIX5!*6ZY.UAdn.3 - g`EBQ^djB'(mG>N\r:@I?kJTYc27IpCA7WWu`emi6p?^Jl6lJ:=r9_sIq=.H[C8@p"(d"[f#3M:[6H/oBE0F[Vjp4H - hZr\"q;4.f]LGJ*C$faTr#nbQ3npOWA:0D_Dto8HM,ZU+#VJE7u\F`HEoTM$"q155aoflIDpO.oo@@V(Q,h]SD - 8tGeqAacH'%(gpeNYT3]'PIH?_q*dF#`2`J4gPq+e1g2tQ+0uo=s\)71V3,p-)4T*fdW+rHhWt/Y#A4rk005@?Ua/mIq`qc:mHW,r9=]*)Zk(jG*e4+XO$EVgi4smo=0?X1Oae3OW_@ - **:kFu_'3ZlUP?OD0\`]P?^)X^Y<"H5<^3&V&=YgYjbl\1\L_[3 - t-]=8TSO[YQ7P&+>KA3nUirccUQ'Jb%nRAcWe6TZC1M4=HogG,\V-\V#04):>k0U#%+44lH - PURi`Z\%Ct?[_UtmbPM:-YA%a:trEqXa9XCn`Rk:j_k=(gJVlBGOA_j-Bjpg]4fTdpYL8Cg - +A2r1N_j-.p&lE^)DLWHLL4X^OO+R$16HS'.m>W]i4.GWW(1)mfWk#Mg('VoX(/PHa[kM^/ - d+s]2bk1WF*DhU9<34J_8W-YJ:(JABC!8D-+BkU=/J_A*3VU>Zepi=K>ISgKob!8sLn!jd0 - =lgU>AF\J[e.PmK#W9$gII6;*"Gb08'dnr6VRnhKo44ibaea:O8?Z(@(\%R'C(,JAHu[d&u - 9%ho]l<46UGR@-02e##hQ',0hN-oj;5q!d7n4uqgJFm@HgL"b[[4am2!M_DeXedgQ3If9+? - ;,NL36UQ6K]SD8tbRBCD.FPP8:RU+@3_rCS]mB?E0>/X;h(iQa9URY)jqiWuVb`ZZ>E4IN* - AA`a`9+UE]6a.M3"rCl]8d+GcC\LFQ9%Y[kigRJH - XQpmn1]7uDiWU;\DO`/ - H6E"(qC.q<[D)60dQC8:O]e=-^16-=Ka)HYB>b#s - Hsl=EJqJ[tHgEIc[U-+A\VGTL_]WrM1B"Bpeui:/1F:f&;Ir0fKbCalRF"jjKY4t1F;G609 - 9usNGF*,(HLtnHcNN)l1o%d5qrZu#fJY%f[a[XQ9''8q]k-W!@[BN!ZXIM6h,8/)'u7b!C0 - FeEZY%J+SRI?f-,RR;D4$:QQ?qoM1"1Uk?EID=KS0II?4@.H<2!pKRV(BM7pI@Q]tM[]hQU - G+N)(QX41fRscK7ke>Z$-*Jo#d"Q7lVE^b<[M&6C7.s'ieM>,k80WDJ24.MGu8S5!$bQBAr - VmaS5"lC$MP@^5Rie&U8*d+t-IBk#i1BC4MQmA+^[_D^1EehJbad&kXFcC-W6L;S"l)`MZI - s8MohQsm7/`Ki)[B'juq[a]a&p6k\K^q3UK>4pCE;qAZ$NbPIZX]i-nMpKY;2a@)q"4QGAI - J\2?'1bnpDqqk-kn>IelY6tN*,P!M,#5%+*dP]rajdCpe(U4WJsIl"=t5c0V94IW$>6\^gG - U;BK[#uFX.JRhHM6]>qJtd@/R,ZjiCe>Hg/MBV&$YMEh5:4VR;3>DIQUaVi# - ei=JGic`ue>V8RY8OO,oY*;R8 - 'q?647>-t5.Qi4"eXI!:CfcDs>o('*Z-qU,/b(Q&f-"s85Tr#WZN#=E@GEG_)>WLtmrnqYR - a,d^MEp.rS#7e+aDQ__lL$md/>ICetCoN,+rC1qod\YM9OkW8MC!iZ/]k@,W$SR;gCj]9`> - 3_qWQ`=&dB)8Cnnb(L@>BPlEfi!MA1M0`H]fX0Ce>cM!HVCD1P9pLsd&gM2HVE@8'e31mHM - +;Sq#gg'fP)7f-;Cf50M/"8b(Q&f-"s85Tr#WZ(g1XRqQ&t@4U_++ghn^C8u)5!1WQ7>Lm[5U$ - njH2rIe>Q6PC/s*Qr8(/\IB:!pO+U[%dn`3!P*0:%H?U3RFI*HT=__IK$Pk:tC05JlXB;a% - 316n^&\>fnB?89>1]E^^cTLem_hJW>aBcE$mG,7YVl+0["q=mep!niR@DM#0P=_LFb(Q&f- - "s85Tr#WZ<3KV6G>Vf?%:JQH,9rsqc'ej'6\PmaY#hg`kg?.A/R#MugU8+aFt?q1<3-1+Zt - N=26j\Ku<3BKZWlNTP[T"t3Z.f6AUQ<.bk*mM]LA:ZCc^H`WpYUI-Z=M(Q8X'#Ckp,dmY$/ - 5Jp$:3_+"]Y2"tT$E]X,:kB^c'gM - !R6>idA2-"r0eSV:ph`Dp/pn?n2iX^sV[^\ATG - PA+;X$T->`!P"o;^\V0`]R\H"G:d-j1p3J7RMiE_HSNpXnU;<>_55F9'ic6<)fA.O'\T[A/\1AKp\?_TngV/+5FJgDX89Z - KP#5n2LD`(!W:J]l]HabsYT7?k9SaX%FT5q`"DBF\#.MGu8Pb=kqKU)tCP+.qVA@Z:==7,@ - sf@SWqi_$:a]63F_k006KN?]4qU(81/DPHkCT:p-qmEq\amN<)R&QV&.7MJ!M5JOO;cTZ/1 - nUDGSp"@MA^MJ:1F^(kJ-Q=$q*"M")dh)2jp`tQJ%3+Sm.GbH,9&I:,o3m9-V>g,OdiX);E - S[>&qsHOu'@Uft2Vc_QgXW?+`Bho-L%=?Kc^m:(UL5Dr-hloV96VB7pYUHZ3&fZZqYg0GlO - G*Ke%0\f%,M6DWjDZ->JGplqqqEkAE6(d*cSc5k>'hf;c6N3qn6:IG0`>GS<69ZjK@k/![t - 3-g7Qu&Y[Bc-EohCuC>HJ/mZ_f(>`BXZNZL?`43el+D)d"Bph-4Ip76Ea1&b,6U8?"cQ3np - OWA:0D_Ps%hIG2bW-R0j'oh>DOb*=KR9:+5#F30Rk=05Y;AAF0D2]DJtg`qkBP*hVME0@** - <8k]J$^E2Ad[cjUZh*>(1\g:9T76W.GLORK_WOI^6rJuI+_oN7YGiFQqf<,u2EbFa*?@#1J*/oh7HLtn,d2FiT?uU"\[+*iNEcO3am& - 3!)_5\$-04)Ya;/8q@s*]EOWm4Nrqbq=h-1 - =-C$YL,#P$076T4k8.;5\9Tqt'^>,k80WGj=k[VX>sDE[U81TIAK^BP2iX?0jq68M_&DVMC - (6h00TFbfAA^V@Scc"a5-h)[g4/(3$UHd2?2k2k\Bq&NC9=I?o*c#'GhBDC;,hs&FjO>W)a - XC&`Vp/$GN(LFRgSaf9@6q$66cerkc*8FGq>e-U+2;=!'.pfl5dJ0*dIf$88bA6V94\T[kJ - ).^%ll0lUTfo(,n*b165`\gU:tRVYcL=;56Tp&# - 0$.L_iHsVq%H:b(Q&f-"s85Tr#W*)#:jq-oJ$&q-RUUC#ms-e##jGG3#%Ghf?gm7f'Z0t>oD;3Y"BH&mJe/cfih*!e[ - g8[^_Q]R<%gF0i7nk3bRmGG[np6ahjeK3]&B:m`LnJ>P[dFLH]M3]V)=t5c0V94IW$E#Xlc - 5bY/=2Tb%e-R`K(]Z#%)*OJ%4tR,ZrAG>99ff8'i&>oZt[+0Y%GqIWLi7%[;4AhGIG,-n$[*&f[s<^ - cdoOg>WYM*Kt]= - V]fB'PD?QBnD]O+hKMda5-UV#?qcq&eu1FRIr;[ZP\?G^+JC`fJ`P=&8_6D19^66F9^[cr- - P?/QF.)<&bU;:QRF4EB(SQcHb"SDj'X.ofsUJpn@EV@Z?hJSut/8\Lgg+qsCl##OKm8McBl - Uqtk.>=K5=LK1"=qV2?M#H^Eb?Sp3U!6bb?11"miX2W(*;`/##Z,>Xab8Tt_9[T)(stR9#_t!j/0-B*=6Fj - $(&]&T17;S.,>W]ab=VG402E;fY+\pKm9S8;^aqmBD>gY5qVSpU5"eJKGP+@,hEX&lKBoCR - .>o@Ua'GMPP)fi":rBqi9mCX:5:%3.?(HZ14E9s[>_c-4B_>e%$3YhHi?]WGDIDVB`--rE> - .aY/fD6US7/:pt1C,N%""+Peu^p:gllgt/]DeZ*E9XKcVg9$gII6;*"FZrEI?;W1TP:S4f% - [.sFVO&]!I5E'tLq8A+'17Pdnj+cu:G3$`,]&T17;K_GQo>rAP=>f%,j2Z:Lbk(#D)]?f$/ - bS&aks/$k1W,I)LgQ\q - AY1V$^5&<7)b1p?^JDK=q3[le6tJDVWm!\Ja#&?U*oaI/`s)2@lCJR]8N\p4HqcD;1rdj*, - `mGhDKQ;Wa^Mb(Q&f-"s85Tr#W*(qG!VjMtrY@cSRinlsMT[u?Hq5F^M-FUusUDng/>J/K4 - B\mN=6O,l4TP[.L.?='5kP=`Objr99l?@2&sm2n:d'U&>>-RW[??F+6q+mf,eJds'tL\^oBHhp2(OkXKa([B^@=U\&>5%` - $:-SHP^JIJA&s/5XhrN?j#b)n%JII_2_e5"@T9^ZMEY(qsij"XI7W4m'V*+labm<]]ZM3rF - RqMhKuAm\T9(H`_P9sD1r@Zr.]>$_@n=(hd?lt6`jP"KZd!r3UL*W>U7NsAkZU3EWSl;>_& - Zn#qQgY'J(c^<2icLGFAKM_SSXL:.9X'mFehDn5bu9D+\Y5ED&HDr4$]u2/:VPgJdB"0J%/ - --*(j]"R=dcJ,]8A^rORD>57-X;PZhqC'T`1W@TRjW(N*l4fCfLA?"(f-5S48+Pai_Vba94 - 'YAsX=K5H+/n0%*JFHHA-Vp_&Zn#qQgY'ULI[V@Fl/( - GF(Gbl8m"C4%qJG6"U="nT@p^6@H1=A->HiIZ$$A]pASgJdAu03>;]@;/5K9-$*;XDn'eW` - @7/ZOmc]_Oi[e8P)Lj*Aj4]Z@!sp.d#mUe07nue,]XU#WFhjnmp\pLk/GcW9W_7#(qL'c'$ - fUqtga;aYF>&=)$6efo@(7<1P(5!jGWaJY`E#^f'7sQ3p:mlAKd60M\F=.b+,ZVG3O,Ik0# - ?O)sF*7;YG49;PB]._u82PURj4k/E5p=kZa-;Q1$l$@IauX?lWf7R6b3Vdq#U.a+=;Wm[V1 - $YkeR=mF(j,DDVX0O]QP$S:TfWHt1qNfFm[YLS3(i?9?fe@0W*q!Pc_aN]q=NHcZJ99g/m. - c:@Zj(7Imq)1)?]=:Tq:)H?jcB2^lKF.oiSpgnop1.W - s./I/3>Ep0!]Z1t&ilfOrUn - e:n)(1T=+u4%apBU6Dul7S-a6QXC.t6`SN9^u;l0tG&fA$M0(h2>eh$W$Tg%'UnB5)eYZ.$ - uV1nc9l8RUJPM'TZ5Ok4%DdI/`Zd'6!*BSG?(2:(?\o-=bC'Rb0r5TMCp_E\cD.mVHUe-b\ - :AXV=GMbQ5r`l;5.L[k.:11&O$aHJ# - V8tfD/#CsDk:qFV+R#qm'H0;]bCCHg6=!_K%`Mc=mGkVl]'BZbimfj0==?7[FD<_[o,:)'G - Mgd2F_.b@RTQu(!)t0HX^HYKZ].PY#qr\\eMOP'e32Pp%;=4QVrC2apBU6Dul7S-a6QXC64 - RCR@+q8S1o?cE5$J'C=Pqd67XQ:q-3[\YJ5b"_QkpG/6-;!Bc0'[ZuGp8lIF)EZRh;mX]r: - &Q"gk)VKU="Q?r>q@GqY-*^4tMhVS&&nKYG4PI8n]kKZs!SsPe1K\G'-;P]+f!V>L#=7>Xl - If3GFnHOX)baC7m\oc&^1FI<@B&o:cISk6.WilIsPnR7LhuYH0:11':"DQGg)0M%&042FhT - 0@6GP.KX]Pq#epDhYbQg9tikD$6.SZaR6JB[K/VI7m4+JWE_O'OS.VM4F.te#6+giX82[m8Y`'5p@Ks*$$%M.o$jX;e-_6Y5;$R^2fIQKDSk5cS_=Q)D_3gT,5%g6'DR54"&p$7bkPRhnJalU^4/%)Ksh7Mm=LN#`Y9KGoD(8dpJH?!!,9s$B*Z#V_?/;\NKaKA*_,=jqQ@cq\T[ - !pKW`1G+Y>&?9GTkiD@IW3kdOJ3!Wr%_l0g_jV;&X]Y_?tfs7G/97j"_#qQg1!L>2_YZ,#!&4[rP7NI+mqssUHSiqG1'M2R - WL+mi>>\T2PgY5XGB3ad-Q7B5L'Sn@J\"&FpEK_Jor)'s9E_:\)H:f\c5*I?i(+ue9oB&Y^ - MoFA!pu."lk\-g$-l,ai<.BCIlC/B2o&T?7p6JMu,LgYsZ5NVG=9Vj5A;P9WW`QBAb^*ZrE - WSl;>_&Zn#qQgY/=SP7U5j_$0JbM+EH*^^L%!m3U]-L>042H&Dr6Fh3?TGpA^8C:2f>k,#" - t4a>On,a9e'/C,ht.`hnFNgVP[%T6>`W?j2Sa]N-at[7_sY(E,b<@7>pTjV-G./QBp%S>.8B$C'kOs7-UFjSJQ8eCms*>,Ba285n$_AQ/54=AbHqV/G/&R - :Yh=?+O!%OXpV>#3O'nMcrBpVG3h[U/\-YK36g'[jC;(%[H\od2R\7S$);Guu?]ij'"?ORO4R[/ - ?snm/hK8Q9PeNfG[R+oB+uD;2Lq[RU&n - ]1P$mtI5<#RG,$^-,,)`5gP\BS3-nUg(n?-'/\od0lET0BkT4M._Z:U6,TqS10VT;ndk007bkKaP6c.ojN)>?Vfg9hG33[A - -rb1Eh(4$#D\CY%jnOX$SaB]>>Hbk;*b$E[OA^3B%;W&d:468i]7FR@d>J\QL(ll#K8LD7J - ujr5Mf&fqjMLkn$0i'?bf]a"ub`;Z`QgU?qRq2*p.>0+a<]2ke&)*.)B"dUVcYZ/CA=K7n, - ;LsZ<*ZeX_7Ld@G=B`"CcX*YQXeA+;g=b0HhS#BeQ-!.ombPKVY$<.MR>c8IDVVa0_#eCfl - fQH](G&ZBZZ`;9IQi#GJE<1X6N6oY7un]c$HQnphVR,_,E - hIb3b!eUc^l.5AdnPK))uT.W;]t'=g?RMLA+*%af(]!-^fC"6EZR-[r8mh\_5]jeu`.8Fd] - $irqJi[@>&(,L9X]XZ=HO9cl'TF+Vd1jrd;bH*W>m0s7Y2cZ[MXE5[\Z/o!2iMZL86s##hE - p4ad%/^V>81D3FpUW:ATLCBk7bOEUFmicLoBEX@6gCTaJ/ - ,\$DdNusuSF(U=G/Q1HJS2G)JE"+@6Au1Y<:EJMbY-+pg*^.[4$O>*/:J]=(gUBtK33dJ`` - i4m5e?3)HEOWm)`/ru8A"&mV]=YZgcXm#^.WKHJSN:m+m`Y(6s":`_3P\PS"I9D)!)&Rj== - Q"QaJas,-B!2SbhU)7@o*N.48%pkn'Iaqa,V/Z2/;d>GMe8R3"[--3tR_#6D6`".TNKJZ!t - \"q=9C@Ck2Wk`;XNCiPUGF7>jd:1OoE%5Q:Ff]mB?T[r+p!K:GKns".*B6tUrKrV,3-4Vh\ - US.Sb!\T6fQC##R[Rt_@k8\c^m9N:T?oT7sfK*r;?04eG@;O_/t>E!g - Y;`YZ/CA=K7n,;Lp/SHhONDG>JDt^nsQ`t - Dc5#JLh98;QUgpA=Q,uG2.=K#$RPEShr/Uiu)N>mf0'q2@+K!i"oE]Y^5eZ)WE(-jKJ`^`X - 3o'G$cQ6"uKkkN\hP:M[7G_ZbLL(>@iCXt$u4$*ZP#P,pr5EKA<@).hr(DDWU!*[5>3+g"j]9MA-4"q?gO:]H'8R2O3/eSEa;;5 - o)Q*&qnfAV]pBdmrdtIer:V;9)3kYZ*W6V#i9b;WS%I$8f]ggUBVb^SV^(o?TOKr`n"Eo&n - >KqXeJ.q[Jjk*fV'qqY^/qfZp?\N/;,*)k!p+#G"Ir@Udf`9bja\S:oCOP!.L0F__.>qGjJ - XR&*5%QC@__VB^+>.^u&LLO]@&Q_fE_99uMU5Uq[-/Rk\InV7-#Eqo-4Z,]B^YZ*W6V#i9b - ;WS%I$FE5u:f+cImF32+Un^81$B2a7]Qis5V-d2[(+jjk_?FX8%@4",N>jgB0O\Zb(+rk53 - (p8.,Y[f&Gl%%]qrCURg:)"HZ;DgG*BSFDC85-)e5ndOZIIqg'0E7jq-1=GAZW`$ffX\o^MO-6cH@&ZDd":#0m))EUXhRokK7e5`g5A\uVf<8P>Wf7Fnh;-mcf&2W]Y$ANYR - $6X.0EGR\b!M+>qbKlOKS>*lj[ia"6U?2!nOL]$H$OZaAK:&Dod#$4IU;P_HVt\@E[5uLR^ - :KX4?YimIJVRDdSa$FdF$A&[\Lk@\Nk]Ie0eJ_baG7$G#N,*Wg26$aHQal.OVH"^]di?SA8 - $RV?mY>,\*NGV+N0u%O#`B[VacY)`P&R>EBa%rr0@7[`!55f.^aV&32tKV?0Cb$ZXAm#7`S - +ekGkb^'Y`$:S0gVc<3Hp`JYPML(.XbAQ5%]KiTMDSs5P^aN-r:-HVZd]6sGFe##k:o]_Rl - 9qORqp5_H;:h3W=b*FXVcThGcP%BVVC@[]MMmmW^?F+66-kH?(O":kOgiO,],.3=4g!O - R<'TB_C/kF&YeLhnHcJ>>,:4-dS;CPAr#k21VOG#qQg1!L>2_YZ.7taEWXP?2j]d0554qV* - [B&X]r8/Rl1ET#:idnnRr.4#F;4\;Q3^!g4BJ97*Y6GN4Z]K)aRN->Uc\h=0Gp:2b74^0d? - c)$kR&-o1@]fPhBOPt3FeudQ-?QTjl+gtb+q"XBSMi5cNJ,Un5%>u# - UDIHs.J,]B;kKagX<2uaEJ:KY$k1$A/LTq7D1UHrNl]Y3Ec'pYUP*4mBRN0e%oB+T(=&818 - X=;>Qo]ah;p$1*%mbK*H$F-)W]QpjQBt7j#)@8Q1[r.aUZd-kA&t7&Ng%1O_>oGkP["O:l. - TWWAY"Dbsfc&V5:#AVoO]0.:R145(!"iP:'.\LPI['OkdaoD>ZWuq2\F3j, - aqXHhZsh4I!/oj9&&?'3HaB!\@>H@&ZD(q"jjTfs>>6PUSbAoOu[Ka`lWjQZ8Of2fE"HUs5 - Af-SdQ.r-0u+4EKYD^V@P;Kl,YWp$]ZqDV)$30dBRuTgFG?(+`RnABCiOWtHKtQ;*+P@\57 - Wl!V!M<'Ga,FQ15q"Uc*uf[u9oH,kpc]63Gj^OL`;>?`I&VfV%H.JWnA=Q8B$n(bI[G4!ui - './f\Empm[M6-[NKpjl7P5gl=3TRps1M.'C,uQ48=]5(jq=u$nG`ZV!Y[PG*%MP[RfW\eB( - +hRhkWjN7e>Q6)NfI2D>Z"=Z;^%`Qp?^HY99t\=P0K-Veui:?AT.MEo?X4ep?gW/mbN6GUubKF]"qXp%":[Zc6(V'Y"Y?sNUn<$p!\Qojl,q!cV.p?fJ:n`%HA&,Z1unLj`hJ>LBp//<+)Q7=8d; - uhH?J>E;IF9sKu:11&O$aq;?6 - d/"I:MbYZ/CA=K7n,;?6cD!gX/ncm>nq3J"".0#1BH"I9ApckEW_!.Z\QV90)q'lX2>.OVH - "!.^YkV#gX=#qT(O@&\YaYZ*W6V#gYh"=t8fTM&[lEWSl;>_&Zn#qQekTI4-H!!$:+99g/m - .c:@ZWgpk&!<@G_f@RLD+@CkliE[Z.!/LiF.OVH"^]di?SA8#'z9H707SA8#'( - LX4_!_W[s!!!!QEF>bd!_W]%J>LBp//8-b!!'gQJYgKq//<+)Q7=8d;ucmu!!!Z;Q7=8d<5 - 8Z>Wgpk&!<<*"!)+A7Wgpk&!>f.CEWSl;z0QCL"EWSl;>_&Zn#qQek!!!#7`.=c-#qQg1!L - >2_YZ(T&!!!!4#F6heYZ/CA=K7n,;?6at!!#\4=K7n,;?7SAWH&&5"TSN&!&/D#WH&&5"^H - SSapBU6z^r1f#apBU6Dul7S-a6PMz'*jgQ-a6Rc"^%dp^et15!!!!m**B52^et1L@&\/J9* - G:q!!"]m@&\/J9*JRNV90)q'`\46!5QO(V90)q'lX2>.OVH"z!##U'.OVH"^]di?SA8#'z9 - H707SA8#'(LX4_!_W[s!!!!QEF>bd!_W]%J>LBp//8-b!!'gQJYgKq//<+)Q7=8d;ucmu!! - !Z;Q7=8d<58Z>Wgpk&!<<*"!)+A7Wgpk&!>f.CEWSl;z0QCL"EWSl;>_&Zn#qQek!!!#7`. - =c-#qQg1!L>2_YZ(T&!!!!4#F6heYZ/CA=K7n,;?6at!!#\4=K7n,;?7SAWH&&5"TSN&!&/ - D#WH&&5"^HSSapBU6!!$!8f@Tchl-kZQNl-S\Z`p[l>n0\nW2M+?:X?.I[n`JT[:@7;#7hm - :>nPF&YZ*W6V#i9b;WS%I$31'`&/#UrjiS;S(RMo:rjtmo2C2"^ba+!%^\sIBJNtsLio2"B - HK=&D0miW\mbPM,XBF#rbUi/?hR$u1mi$c6J>LBp//<+)Q7=8d;ufUXf\"h4B?o/agJ=4mA - a.X>QS2]@8kS)KP]Zj$r*3N5kKK>MCY#Qr)`G?UpPsGd9(M&bPAGid;G@:7&RE"lD:u4+;l - - @oU'V8<*B\RccC?oDp*E4h*.@_XrUf=fn*6,L9\om*) - am9#\g=ihk"\T$=#F6heYZ/CA=K7n,;?8I/gt^\<#Jaq`B%O4nk?TDJ#(rUPZY%)1C!`N(V - OqBo!L@K[>e>/2h5d:gEHcV>C^l[;N"7I>:11&O$aE_(F\dqWcV3]SiW8\8c#E^=9,\LNfS8JYf6]Ub - )2]Pq,NE/s]8EG3rE.o)%mjo<) - %FYgdc^PbgQlqNU6=b*MG9OWuCd_GYsTJYaQ:%4i5[1`'8/(*kRf:ggPe[XPq0I]Xh9M@!dEp8\oOJP6F.PO&j<(*p@V':`X!_^e,=B\m+O6NH3 - PB`G9`9Z$YF6Ch#gm=NkF*`1[o<)%FYgdc^Pbf!>:7OkWVdmc-N30ooJan;f,'j\L'gXYm= - DHFJq=EdfBESfYeZ)V:6UQ-cai_JS$\cpQ=gM`1Y#,4-WTc)o9-oouPq#de&($4N0,RoGV# - oZZ91AIk==So90!NhVbO+&nbEXUPeYDs3cTf0io7hI?iZK<=e]4&`B?rbenmo`T.SUmbC-# - &5;NnlnZ;3*FY?"Q0CtW%%DQu,(9*N[XO6RF'=-H1U1KW)4f$+;1BK=0LK - 'Pq-?R@X+4dKfaMHo^(8;8"^#M#@& - ^eS"F:09MWcq%"^#M#@&^eS"F:09MWcq%"^#M#@&^eS"F:09MWc - q%"^#M#@&^eS"F:09MWcq%4*N;>4 - IgW#'OkN\/mc1]cE8c?+\1?Ct:_M - +1$:F>8#Xf^u\3HJ6(>e+Fh(=IVOF&7%U/;t3dg_l_hSbf?2Z6*/rn_ - "aM1>7LCPVSr^MkcV-KVQg?d:d&%Tr&gU>?@meeC;//?QJ@&XF+\`hI>,9e>QpoS,NQ8s$K - UfL6h:n[q.4$A&jfU,)s7n<%(]=3"QhIXlrALTC"6A5csX]p"bJ-!i[00ascHq6eaKWQUK- - ?c:Q7[OO+G/oU`mFntkT0GPM2pKRjaJb8H3pC-P;Nc"r`:8QY68W&K^5rBbSiqE]GOCt[Dd - J`i<39>hN5f5;GThRc`j+%Gf[u`VGENH%/mXpBKB.\27uF7c`f1poOr+T3q)'j8JsK$i9DD - J6rqncd;iI"\+!4;(s+(7WQ7>m,q!W:baAK^$rE6I=&XcXuq[!Q8[r:/IE,b$oZY,OQj7(aM#/[SN>i?k3VI4o]]:g>:6m;ik/gNN;"27h"f&%nac8)[r:0dc'ug\B[3,.$Pk:4 - EcN@jfZB=)("[O&^etcX#*t,hRZ#HB2)$_'p?^I$MA0J=)PuJ\?[a/N*4:RTY@#$c4*GFk! - X5A7R1\FE6\Z"hF`i-(jpbf0A7S>M$!h2m-8f@M1_haq$`75RnQ,'fhO5@Y0n<`(. - >/Rl>7@2FY#QH[C*[EKr(XP5XU?5]jDDa,YB4hGpT-`3tJLR@BZrEa'c+9CZ.Q7Og7>$:7TtLH#ou=P@Hm2R5Sp99U[ePn(tb#5(+RT==U&s^etb4F4#uD - '($m<'Lg#4^]!l\UIUBp-o*2!B[itX6s/Ldq,MnBoiLkC7;YbrV%Tb4]6:=;D[b&kUIG]DD - &L/faT/VO\T0HPOXEqrfs><=,U>p]5s7ju(^qoqXAJDUP<]*F;d(KAaPrL8'4PU&qXfpA(i - XS=oTUe'W`5slCgg>EkDI(c^m;sl)107$k1RH.p&n8bEjaVU[%:']4Lu;8B#[%e]5^c'Vf' - f`f(c[YW5]82(C(jnDM+ip8)otefR,*PYd3/Q5U>Id@io4"Zo8B3HM'N9#Ld(Pu"AWV(Q)e - .'9ft5($2%Uji:=0bt<:(M@5f_ueu`/!lI8\2P.Gf%8h37UYZ+#oJYaQHk - +VrN4`]USTgFHt)B5K+W(h)EXS`E^&e5j=9T9D.@3V"0]V%ZL'$>BWpkZ^$e[*c@^qfg>lR - U_VCgVW0Q8%ch)O=!UEkQel'^su=_hZ33+otfG,37%?Hi*O(&j!(VV39#iAa%S&+MWcq%: - S(PS*R@]rG3pdTd9g>`D;2L!]>@OW>O&1dVfLtGXa%UL1he/H>r=/j/1aKJa2g'bWDb0AVj - ?>.3dpjH2>T`Gq'($k6suu$OuI=9J,fIK<+jace=8O?;SO%oJ"Y6!/#eX(a\@q0-]iiTe0s - 86_hXtHKi5]a&\SC7MBJ@GFtM8!gUhF`_J0Ji1,ZB\I - /,mMnqd.8R@+rifJ40P%hGo[Q75b0=gM]\4*DT!A4ZI_h7Igq7`;WB`JTU=)00>)GH/Tpm[jm69O=gR7@!<]2mR:9fA2f[iqhS"9B^Qr - *2B[M?\!62%'[FC<`8$_lOe60P8rDp%(2/_3:\4jGRjmqNVQe^nWq>W/DpkFQjP$+dGr#3AhgbYh - j(HJO'OKqS?naEOdY,:NG0#BWIMA"MQAXl`YZ(bQ>Vp2pAB;U^cTN-[=^,+&3HHN"/hUuKD - r/-0]65e'P`3"beREn+/;9ai+SHlm.p&mdGk#6oj_m][NupT`5+fsE;AUrjaOjVsnJqi>#; - 7a6F9dL2*Ze(2nP2hS`6_G[6maf[>ol=897?Ku(#u@&mFnu>o^pA[!nk8B%NQbeb0gP->K4 - Mo[+*a\=I(tf.TNLU@`=4k0>I(=HW!bie#-!NDr5GBA!='n7MA-kC'rjGo*m^taUO6b-.;c - 0qXNUdgUD)S>-s+aokJO0^O?!FYsK4!D;;Y+Xf^u^4aT_:kq;&8`'g>NLCYIRG7P&hMj.ja - KV'k&$k-ZoKVi>(QIi9FbLcmLkc%LY)Dl-Cd`?q>!sFK)s/`F]Oohn/nrH>jVG/!fCe,%+l - -cC3Q;T"qc$0L.#F:8226^$_d9O%lWFVZ"Y[Bb_JO/2-I>+$c+=$7_)`Ed4*_U:ocHbcFNZ - C3IV+i]l,eh:.JEFRoqh/26AZ&)Zl?)\hf6fn:DpJ^ - CM0OY$j.<71"mV2nWp&+XW_G0.5O^lLr-1$[5^3fTl`f(d(MA.3UN/39tr00l_WB^=MK9MK - 4FW)lQUYEG,1S`k+p"*Q0's^pkfed2SjCIlQnfkPeJ\N'dHoQ8,`;[2]fcp@62qcd[q=CR[ - jiWi]^tJVWksK<=>`r$`:;(`3:<&bcWUT#mQc.e'+4RK$5OEbX&n\FI$(8r7!$bMV - :sSS;!T:KSNE1C_7Op[ZM^k)[VT*dKk\WDL?3D:@WnYFT4[Q%a]^1SZ_RKrpS\!?.LcP5p" - $6Le;fbC?8Ne@mQ6[Q"s8G1 - AV\BB%MWcq%#_h=.*M1CkI,6^=BZpoHtlSJA(c?39YiP;Pmjft - -K,h)Gd-8.P,TjCWE*&#_G0.5Ob9Spkf/RC&JIH^//30N>,U;7N0e3HO&jH - WP#r7A5sB;Q'65Pq/3.L[kBAo2">24Zkj*N>U,BT07NJTpnLUQ7ATFkih5NjiRn=S0LN6QD - pdABrPufDSd>:GCF6:!;,R,9=X)+ldfYFeGfFDKg0_<^]E,Zjo?qId;*-h#bnkCb>Nb9I"[ - !5,'<(t7<89)%:n_&XfX1_&U/GC29I_hV;Ah.O4oW%[C(\5MF&ab,s+r5SUUP68ZQgb[V`l - 5Nu^T\$r:k9jQM^==POVR> - 6A7WMC+3]B!LAW,26^$_d9O%iWT;rbC*hAtIG5`Ug_/q_CZHN;C(XE& - aYmXV9YJbLYC%U>IPl"dS(A6\Z!]/u*+-U5[RjAd3A]RJcmP$S7f?4?'Usl;NiCgS,!XlL2Lf0&4ND5Q)k0Z_C: - 7;Qj?9,2.AR< - /(\I#qWQ5;IQJHmFoGE;jSA%cr - *)Wr(-cD/_cV9rVH9WDmDU-_GV]33G[1siPos$bXqcQcY/V:I4;RGl-aV+DqVFmE;LMS9dM - lV3h$f9LZI$^i%2o2c@D>I2,>IB!]*BW9)^0D_M3I'uCt%YkQ::/">l - Dr1i9;C0r*B?qXaY4MA\(2h'(Q:c;bC=T?+\Mes:q.J[[^O"D.;kg,8TL"2T7ujOW%[XK:; - A$SHQAQfRMhWc?0JJSl`nnCUj_osd# - Mu-.T`cX&["r59D.rLUqVVRNj<6>&mp_YbHVu$;C0pd%$\?hcCI$Egka?/Fl:&de.&D"TgO - Sjb&`f8J;"Q&*;&4J.XDV_nRm\n9b'.8G`<7XqR'.-D7:a^8;DV_lAg&A\m/6-_] - iSibF?+4tB/JE#q5_0!"4"CY,/=$'"Y1 - aHM'!>&N99"mhCso,9jFV1!Y.\`/3mrh_N@G2b(8r7!$b;V4K_jMHYbHV3kab?.OV9YPh:Ul*6A]dR3X=+dfe?WZ/;YQ$Jm,#E[\3e.dPn4iP>-D6q3Fs!Z - >^4u0Be2&,.h4+1:8uaBc^$4k0&2'+/=$(gW7n=W[k>#@W6`cq5cu+H)]P!0SICgAkV]SD" - OUI2A?!V0*M\o4'GMgB6cZl)[7A5O6(+WFE\k - c;EpqNZ&5RoXDRi*\EM\`_0[nfOcOALI<@&\0=V4R1"G':_S(sPsZA=Mp0.2 - IqOX!Ao:7WZVWi%DP<(*p@V':`XU*3/mGO?HYN&P\3aPTh+G3ssld]H`_bW`XbokNcB7.RS - ,e1?kG2Che-PdI$>71i0-?I.+,S3;4"\3cH32>PDug>pa8=KnIB0!o<>6BUFK(kJMUY*0iF - lD(B?Z4_&nBU27r`CXo/4?S9IFE_p^:nW?/9p!7IB[EDJT0CBS?#kIl,'j\L'gXYm%9_uhl - dr+IgqS>Gre?k#D_A\frr)_,p=W``G#=1qq!k,d_G&3Pa[$_\+`H5MdX!AY74bioq=<$`U+ - /*>g^pVb4\JKm+&g\S]T\i``!L>4G:6sRs2Jh"ggka?/[:-t-e.&D"Z"( - hQ7='<-P<6"m%?\76q3OkU*g7!`("$f)Wq="\NoQbV"F!D>lR)H\J@B - J(4/e>T;oC)PMSs/?QXbF:Gon5^MK*&@E$YHKUeaMj&R9<6=e/G8)GPLN(7]Y(%_p@u'.&L8n=Y:0LJoR*:)W9!7d4TgR=87o_@o=YEc_XoRKL\pW - MU#tmoaC"*(po&Rn[?*%'Q@&\rg"%u&obsb!c8gn#Y\8W=\7urtHM>R&9;`cN-NY8b@2Jq/ - =X3K-Fp$q(_e4*tDnA9u*Q9&j70]>Ki1hgEP^'J+?921+F&VCM[bu1H8T.[dA8sLmJhhpF7Gq>Y.iPL.sJ]=l2QAXl`YZ(bQ>dS(A^]4;FE#HFgn - r(^d\@T7L48\Bt1P$=cc-:r,SiqGoQS52j/PXJf8L%2[))Z/nKV"&i&PI7gF;/Vg:n^3FT# - 3H,>V%`9EYFg#F!gQ!R'[PZ>#anNBjdp'l_NC7^An1ZC*Q3Se8u - -$oB+!`J,hU!kgZSqn0SJY/o33Y"Bnp - ?GVO>b$,"q@J>l[$J\'?CR5/=d',)[68s<&/>pKG'/WS-)`mT - Ksb^JW`foadS(ALCYK(iJ"U4#5SQiW&G4!ui2r`r\74g8bNZ8ig?5 - -V8$!QVm;5:)WS2bLTCer$ELo!R/6r8[,K*Mof].X4^/[\EK6:N@J4?VE=`eL#$e3d"o9@Z - XBWR?Z/Y[@KS^F`ToK\DI6/2\RoTlAu-_AhdmZ(q4+)$0:="SEN)<2NE]C?4qnWJFj_919E - :79c&r'buue?U!F@lIDp_r*-'!e>6.NCY#S\[_oD^?c@m;hn=@aW]Us%eG]:=;qj%DkYVpb - -+%@56F`RKH1JUmnNuX2A-UR^F6:\\Zsle%4@rg$Z=qX[Wn%/CPu&X7Mj>kpNk4,\]tLC>) - 9l%cSND$2hN4.nR;qA(;hUo9O-VA%QFchUeu``K_I0@!?3?P - +.g(sdG+B-J\o]_RelIin"41--h7-YKe99i>IXfX0tVq%_CK;C#,>,mL=$[#\7%]ROXN5N\ - s+7%O^0AIeHhFMrW5=1`Q#n=3,kO3kKZ)/k+oFtHqPc-ldh'L<9;8f.8Ai',/:?m"uN.W,31"(L)*,G%P - GBQ'sRGNZC44_80R'Q7]8BY2hf@S2dcBM\[iGZW+G:lB*;]=DI0KT`[#e`q%'BPbf#H[V\\ - )$Sg=?]6:1'(BIX($m%ELUbPLd4'&j4lC+2_J>J.'mJd(]`JPD*mP/b.#n@GWC!`659'G*C - 2g'2pZY(Z[?DY)D"M/^>,2=D`e;RN@//?QJ@&XF+\S08d$1$3HVq.(!bNk7K^Y`n`\<5nI" - X9,re('Vd)0&-33Yd=+V37G$W`=tR]O--`jis8RN"q4:5tbdWkr7@`_=36m,NLD)6(InnN> - l=k7=Dm2=0>fJ*7bT:0L3.>HhZs-[rke&HXR-h*2$%lPesqMiu$N-ZDIQtn%XepjS%ieLJb - Fn$Fr<+]66oJZA"u)>\iC6(m^'C26^$_d9MpAe2ha;FAmb:T0Hti-QsY,>.&)r@hn!gkK]V - 3kZU5:^qbL'=dgQ$h7Hb3Y0m9I:l-aY8b^'6f4aZ5XhS!uSGOO.e+&N6.,q7=5o?TX"X"%,LeG8_!W - D,O(qGbu9#1Dd^rVEqG9aJODWPAE*S)X1=0k846q.7>e=ag2(:m-* - VTh7#;OTVbRu71:S'?Tr$Oc\uSeV?qH7_KT.'J>FH9%4i5[1`)u><@' - C>0:b7QQ@7;olIDpKQ+1el!Z@;ZKn]@!qN?CR)3+:Vh4+79:b(Vijq=O$5(ITc$FR.L0173I^lBS9FkG:hqMD^;UqF\jiX!VA5 - #WBgEJR24$1&!7ujC8G`Nn/+t"GBd9XJ6H2$a_j2[4a;Pf8LY,tp;Nd^pHhbr@EGse-*3\< - @4jJZ:lmdT2Qf<8OWG1#^3\">m7:3I5[`ejYVs+Xdb;l37Qe>ZBC8sRhQQMd.i1#rE1nF2P - 8<=ebb)cEo1p;I)+7J%L#.Y;=d)RWNGOTM;C;5d;7acjNM]=YCCI&%%\/1hbjc]F6?:h82K%:uW\>M:+-q,LdmF$tisXQO*^'5_+-RAggt\D:l\ZE-[VacBq!d5u?Tt[;UIPhlS#B5]9#a>V*NR\b<6 - WS1aD!<9GG9Va.RhIB,mDl;ap]ng8r/FbCtc7qgA>FMi5*9AUjXO4/`b-ZZkY))=Us4r4AR<=utFrqhH]+%k2c]IYr9Ml?XSqsUQQ(?+H,hnFN>l - IN:i=V<,2-qK?2-NG\4d;*-h#bnkCh,4RJhnO*^YbC'GcCI&+PEV1CpQ,?*GhgE)-ic>OccZhk`n)FhFj1fak>X3^f - '8ZcCaXea2c0<8`'Jp/N&6!gU<@q;*q*bjQl-$fle`;R\\A$;]u)[8@p\!"I=r/26^$_d9Q - `3If1+Q;VP(UZ*CS*k05DUW0#4JP"MWISMJr - cg6S3*ASGFcC[569E[fP0'T*\[/p[;,@Y--=#A8E^RX@rb?DOD_JH@2pSs6dp):>piG3RFD - ]e96^qsX:Jhj:nR9u0_k^H@qapYUHN50%p,_M&0M12,@HV6ZR`9A-U^7BQ3^+L"g5YCWMoL - utEZ925C@2=$8C4+@%j-OJNO5%SMFlf[FYoff'1F6Cg`mK38iZpq:L'M'Hik0/rJaV?fm`" - 3*,pI;C:']-NM7ns]m^YKSU>-pYP%Qen&'UTMjKnP*^GB\7^R:M+SBDf#Nl-cC`ld(OD[;/ - !QoLM`<7%nNl2&H`4+$Lt5G3@/A1Rk=5/4ATGo]X+tK.nW]W@.SfiRCe:1D;)F - 8lfR=Vn6KV:Kq+C(7ZA>!'K$boMWd"'#cTo_/&]B - E:i@S9TBa:T3ub_?OBW1)g_`JC>VG/)*\h,WZa97U#7jq&%"@a+"lo4JU*0J>OYT+MrbR6. - Po6f*7'D0<,)GBu@]>eC,UDI!V+X2ck0BMZA]b]B"rK::gl*+,*$$&\*'*TVfeXi`U*N+k/ - 68j>n0$oL\T>F,Um$n%5a7.jlK[Y,Ne3gmh9;9Cao>YQAe"QS%N[`'#)^n6#>GH_AM7E),g - tu?k-f$TWmpIf_al1j7073TNC9kM!\#^SduB=BHF/9)1`TJi@W - )>eG=/h;*MPlIBF;baLD)n`%M_:/5$&DEW+*&G_q^I/"hdnUQ,idLL8*7(8r7!!pUC' - '%(5[D@CHM-R9b67Yb3&m;(X1,S4h(Lm?rqsZh&)lL+]^#X77#?n_]mBA:qXs/%:7TtKGOI - crr3J\A#'K4\q=+j#C=R(S\8durD7XoXC27Us@Ddhh2fG/C"U.OfoGUg]JnQd@<)#&rrd=" - _o&IcOk?TD7!!!H191AIk==So90!J=JLlRMPZ=Sslkt7J9S>^Ko&WF%_,ldoF]`LhqoGUg] - JnQd@<;!bIodZ*Er;#sYmbN6ep?`LL4F6MT60HOa=l+(s=gOu+VL\dK!+;82;A$SHQAQfR$ - S5:@*#osH\Ra6j<ch=kV]SD"OUI^WTqm;B29;Zbagh>d@s'&Pq)IO2rCiTBj,9&XI503^q72Y!!'A8//? - QJ@&XF+\\M+nUI'YAd]?@]AnGWk04*_qlR)H\J@BJ-Mg2 - )#jU`JYO6_bY@:c>@E8*>fX7]8HXh!;$IH("$f)W - FrRs4Pj7'D0<,)G@_9*G:q!'i:j("$r-Wq//8-b!!!/j-be?k/nV5q?J - Omp#17i?5Bt6GnktB)Y6*99*]KWL0&^_-Lctl5"TSN&zTIR3$na)*n:Z,M3zzzzzzzzzzzz - zzzz!!'gALl.-Si,Ji2Q(X2s]T4!3z!!)5KFXp70CUY-hccCZQ"8tT4+#a0"z!73*u1%Ab/ - \o:_8D.UWcVZ;N&z!!!"t_lFUQ4Y6!2X.Qge7+M;>6ko\%z!*$dEqc3(@Vn(_%<<*"!z:^M - cjnB[nIgq?L)qT,,nVj-!WuTCG*q!!#sVr94Ggk=]jX9\Yu"AD - hkE!<<*"?n,u95/VerU=&V?>]TMs'A`s*!5KJ)+aM\jbM;PWgEG_'@*];=LCjLd!!"@gTtNCqO&\$-V$m";a!L4=MuWk< - &JG"edTBT=2]kb,i@GLe`mG!!"]eJj2[4m'20>\4+lO*P!=I+H6&W"9>CD_u"?W=Q+-H.m5HNT0C9\Vu - Qet!2+DnW]0[GMq0\_V^%L*"[L+5^[ea5Vkr0e2-S=grKqd=zXK5TOK_st%lQIM*X-^%W%0 - /HMJB&,#0eGW`oCh-c;ucmu!3d+O)*;T[>4,l;XbVjFp[#DE@2K!U+X&#VH.<5hpD+c[eDP - J3TCFrlz`:;o^:\XR+gda+\Lr5qhYqbd]O!aom/g8''ViT`PrKa11o]isI`Np)fO!ao-!!" - jtG1VZ-#;c4tpqJ]jqM4W*ScAcTGX(^=g35FKRu'=Lr:""K`tJFQ!!$1K0d19%hcL+[R1/B - Fq!e8ehM2dF+GEb7me*ql_YlBeO"=L[JG8R:!!!"L[L)R:*RGg"/LZf(*UJh.]YjW.!WYV" - +.p'onMp9TLMem$g,UVq.nTmD!!#8:[r4CLCmGE?\_Y)hkW%Eh'`^M^;c(D3>BfKo%Gdg]V - kpS(#4OgVzcjfkVl>J - pEJTX3R!;ucmu!3"&3*S7e3Gk@=d?'_$GI@p8="X$I%R#n[to*$WPHkE9(cCX[fI:9es%IM:(><\6JOqsXXe!!#:a6q51T*U:LijJ0o - r20ds+a7"9q@0!SKQd.bZf@>HLjfcjd)mqCY-D'rD"onW'5aK4SI;j\:jkRm@\r;o.h'V;@ - #mlI$%l+.]-TX;+e^>\tYBmlo@#l'%+$t5pA,lT0!+[8@gjFYh\CA]tZ**QQ"n=dt!9fgu% - t-nX=i^JMf5#\SY^bU(QM3ZL!!!!aQ=KAYbbV%DH?WP=o\^aB_8,q-"/%S^A)]GL4,r^^<6 - _[8GBk9CzA4;;=/RNmeqcHDHR5TMPYKnTQLDg0knDp:h(i*dPQaXW7g>OIKisYnf!._.D>[ - 5.AZ*)kP7/BZ^:.l+Bgdk&SO/`3$,!%2sPOf[iKW93mNSb?jO#QA*!!!#7PbFB\pcL!7SpE04`IH&+3M7f#b`k - 2gHKdzJFjZeaXc]gE??W@SIFqoo%^5A=K2RUFMu2;Dg/hGX!:q<0OC8NTAY.M!<<*"!5;2p - 6K7>\41L?RXoCUmf>=XjekmS6GLidKkgz1*n,,HL+HEm\?X1 - 'e>3]X-Oe5$]X.on,_I(T5QF2-19Ap*);&HH%.qdl/F19BB%:I,T*O$43Zg3bnn$R56+0i?nbhFo - 3c6=bi6ehIChPQIMoru'EA+5!!!SHod`hM\$tB]NlmfY1Nga->I460d)U+^B)r"Tj8Ho?k+lkLYHf\uEdP?EiA' - f-z!'ha?[p@rVTZYFABt;0-eVVZ"8DY]q!6X6co4cmP"'-380m3;"?!<<*"!'i.@K>D!D!U_0_A8n` - ;L\BP]NK*+L7K=QkM"#*P%Hi%[>0?df6In1=2]-e3&-)\1!!#WQOH;GGqG-J=.thG(n!/\% - hMdGFWr`_A()jU:ojY[RbILt>#`8MmI7["L;ucmu!9f4%kd\`a]5f!)+XquC!YZsFA,)pDV - u(RB`r0@4;Y&/pmI>0&][$rczKaA9JZ5KouqcF4tc/;nYp[#C*q)O3(W<'g7_s`$CRcVS9= - P@i25`jJhrnB:[17%[6!<<*"!2'ZB_4SbM4*)K`+_fE/X+U;(F2=ImGb6!!X7Q1!^mFkD0g - Ch8A]!Y*T-Ni2('"=7!;&t3a7)rYf5VmV+mIG(ElhM*j1[^LGb6*$/+W>[qh;@=YeH&&`b* - /DYg=fT-O9\P!!%Q7"T!n6(uW>\oS$fad=_]'m.S$b#1Ieu,ES"KGicg&C#c[A5P(#@ArO- - =8FU9KV[3>'!!%P3nFm;.eo*G?0c6'V`X[,OHLME1XT9m`)A7>2j2UTfCUg#%87i_o^aUr[ - N;&_Az?rZ!t$Q@f9-23N=,*5)R*OiRc#kSYhIBikOnDp:(_kI7#*6H,T]`/mTp](9o!6CVA - GniBauJl@8S9/=OcOrbM!R.KBGK!'gm0?O%)*NH\>ZQ9dYS2` - [LUrA&otklXV8KS7:u2kD[j^TXQs'(2YG+t=fA3;J'>];P]0!!!$!%ptr)R.XOUYo19)pU2 - Ror'GY#7"?XKDhGK9^4]W!fIj!rr<$!"]@/Wgiof=!qlKEo8j)VU5VQK>IGAYPZ?2 - UPIb7eOaRHC^:K,jF(V@zBE056Ih,o4IJegJQjKNHmr6&6gtRmW%e&usLa+&dn_^s^SQDGf - m^%fJM1d:E.5l&UiR,\Tm)E&oaN,4TB,M7)cp.0h8 - M>if#PqXVkC2,-MJ(5AS^Gi)][&>5zNBp$1A/rR:/;L0gmd9D=NSh$WlfG%*h^9`tnNPdEI - u+Gl^4,mWoBI!6VH;YXZ=#oJ3sGZb!!&)b)+Q8_G_#[I%T,=d\h1C\]D'BtgTOrg,UME3@& - ">NQf*#Tc.:,U-B3/UZEWA<1*C=EXlFD+AH2]1!!%$^UFGA+-b,6'&>Q):eac/8pDht0o=; - >;@KM!g4<4NZG^CEp;O;f$<'3/7SNZ=Y)b@k6CB2&HDe2!'jU*3H,of - 1THWTTA'C>b3f-+Xt2ko\Q-??_$a*S.lRVY^WY1]F*SFc2mtG!!)4&^\>Qo%E:.@#ZH%l>[fK - uKAG=rS"7kFhLFkFjepFrp]c6EX9j65NfN^V)g(i*b7dB.[r/pa_Z%o@$!W2X>D&>g&]TbK - \M<;X3:@Luz+A37])DuB%480=0U>>IGZl_$e0A!rk17o?MODI - #`T+N`bk[be - GmX)`Na!4%bT+^7m9I-:)^AT^4&WAPs%1\F71$An#T]9,U"=npO*q[!!!!Ab@*(AL_4SJ%3 - c(0Qqj_6(@Tt'=UU:t!rr<$!9f^^7m-=bPk!4fG6%u$A5)Ge9Ddkz!%;*coV>:GA_ - ]e:889j/&q['EIbg=I^%IQ_*>\\U!!!!Qn`ki.L]L9+a,gRY+=^sXaGkY__7]6Ez!'g\G@8 - ZWnn)QZq6kBJu4HB,j@UnDChdlfg!!!"LBTeMe41AJ'ZEW@QUdPas;'\:Um>i:!bPUE/z!+ - ^*!G"#U2:8VJHbPNT>LH"TS - N&!!%lg+.p("knNl3-6b[A0c8#IZ*IKEA^gIn`$F46;#gRr!!&ZSQS1JhgXUlPQkMasKJA+ - *3b#W;z!.Enno4c)*c.kg\#_F2Kbau*bpsWm4G>/&;!!!"l3q;`sS"7l-=n!Mb+p^&N_DuD - /7gJoS40BG0#2])Iz!+7oODnd:?HR8Ek."WR4\r7Kao^pOXhY0P@z^k'joaEc6YEZ^Df#_J - klIbqfb&M^reNW9%Z!!%Ng#".st4Z@^k0&\uN71^`&VbcJe-]WHB^*s*`zPMkPDs"W*MgrH - ?!Jn3P.Z$#Yb+3aUg#QXZ"g:R*W.-j$Hj8WGuR - J;+a,*2&-Or2FGEgK^qGR/hH@0cCT$Q1T+qB%Jdm3HHl=G7hL0@msI=*m'?[GK(Sa0D^mg/ - O\1dk\]KopmAN#,j%oaVpg)-=m;oUlJkrM3`^o]n.?8i<5tM%Vr/pcF^63/(nC^f>Af&QmO - ZmOVHM^(%GlRi'%]<+2k"Lg?T490YA94>Is(,,Uk]746J5N2AVq6j,P(pD9er"-,[Ek9B!8 - rEVh@Q/6D-cYQ<`0./?rlgnk0'Go2#mVG]t5qtHMjtB#;21)Rm';fj,).G)#sZ)j4r>]"ga - )=cao9oWenXdKbi"hde_5=ct=0q!#[2I(t_]*Cs)PNi7#*0;:4IpH0(lFrVajbV\]=5RB4* - (F32;)i7"m*&`+I"._`ZF/bFl'!5Ot`8e(4ErPeELP*NXnrP>)[5%k-#J7-Y]?[d"Ok2ghH6,AV%o)cJ1MisPk&#]esOpR8api7#!-i@L.W]4()XY-+AC-P-7Xr4 - \KZmhX7(&q"_c1^q(.FPEXMSY8h"!!'NaA27/3i,$^2B^cU;dR.beG#A49kpoLGPG-;>!!%6Tf<9=`6u+-/b7-X=9DXQ8Z>u]DeQk,I"Vh# - f;6R+0j3=FT6B0P06dPI(#.3CW?/Jre3V6GU!!#CNe;8)[cJBCcfTpVd^%QJlm&MY1cOU!U - GUS`seDWd>o:FYII.3GDcPFj]Er'<^k[O\p!$8_&JRhJtj0LNKK+Hq(I^aSuD5d?mgu.*uk - gKS5!/=9V?[pVH-_I!92Y]Nil.9sQ8#n.9H%[gN!+T%lT%LILZg>c%i5<)^`d;ku@oFsL9T)s>4CL - GX!.[;\fA"&apD:/KHFB"/&=].p<)_W:rMKVqn0b&fkC`Z#SpT1(ejr0`id"bn4unrL8;4e - $!kIPA!!)L)%1Wl>q4dQLIr#WZj@c8Q860X-ZJ?=+ - 5DHn;!<=7k[($!5\8'pN$2MEXIVDcG^0-?Febo3[NR7DP!!$Q8?b5[lW&XMCPdS>/!,9B;1 - HeoJ>'K"QGNeo=!!(#r6t2h_^tD05Z7>g&Y:lk7h@N=,4WFb.!5`Dbm>)NW:EH,EHomDk2K - _@cb2noFHjTiR,K.hG[s)]hCi4Dnn7CQBH6i,i5T.sj:N*2eH(t1:4S2nb!!)rJi8A!a;u= - `!Q'95L#2^GsLYA!_q9.[LFhAl`9)3-%cVdZCqWp;X+n:]Adb-hMf - k!!(fH<9h4OX[W\uV`e&lI'\q6@X$^TR_GR&]lj__!2EfnXn[I\B3okW/GPs5i@)%hn/KJQ - n`iahe5SC#o^mmPP5kT5+nklrCEI@Uo'D=Pi2_WTcPFg_\81tSSK2"0mi)6,i8I;)#+JAs7 - 9<#f[hmI3uN!!'eGqPj(QrDdKr]tS"Qhu#U@ma4ssfNapl&rBnSjg#VhqM14+)AFHB6jRYJ0;FA` - K)sr8tn1aZ\sER8IEoDB8Y.S5l*7Gh;'%HH3=3Jpn'(o>s#:bbj#pi4EDt3S"!]jIeCFMLK - eZQ\/kFW!rr>2[uRLp7r$AP?bQL8S - kPK%nCdKjU1q#"3"-n?aJq5!.hHX!Bq+9;HB@ngF1H7`uLm77__6=1<)!!"67It.%;`Qn=tkKC?c/ULu_k6;H6Of[=A3@26)I(ZS_^ - >VUUHX!DU'EA-k^@_'i``fMbg>B8K6g_LhJ$`TaZ.E4[A4Cp;#APd^k^e/!heK/H[YR`&*?!b5%@oG9lK#!Aei(pUge1Iebbg - Hn(VnE]oAo(jfY(9U&Xoh!!)f#;Q7JOf=P6?>\uOXmZ_OS'[3O7CjibY:`uAJXC7B"=)_6-(fN)$[?e.O - hIpos] - -Q -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/poo/diapos/graphics/Logo-PCLL.svg b/poo/diapos/graphics/Logo-PCLL.svg deleted file mode 100644 index d42bd44..0000000 --- a/poo/diapos/graphics/Logo-PCLL.svg +++ /dev/null @@ -1,585 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - -   - -       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/poo/diapos/graphics/debian.eps b/poo/diapos/graphics/debian.eps deleted file mode 100644 index ff431ef..0000000 --- a/poo/diapos/graphics/debian.eps +++ /dev/null @@ -1,318 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%BoundingBox: 262 316 372 461 -%................................ -%%Creator: GNU Ghostscript 510 (epswrite) -%%CreationDate: 1999/12/10 21:20:34 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%EndComments -%%BeginProlog -% This copyright applies to everything between here and the %%EndProlog: -% Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved. -%%BeginResource: procset GS_pswrite_ProcSet -/GS_pswrite_ProcSet 40 dict dup begin -/!{bind def}bind def/X{load def}! -/rg/setrgbcolor X/g/setgray X/w/setlinewidth X/J/setlinecap X -/j/setlinejoin X/M/setmiterlimit X/d/setdash X/i/setflat X -/m/moveto X/l/lineto X/c/curveto X/h/closepath X -/lx{0 rlineto}!/ly{0 exch rlineto}!/v{currentpoint 6 2 roll c}!/y{2 copy c}! -/re{4 -2 roll m exch dup lx exch ly neg lx h}! -/q/gsave X/Q/grestore X/f/fill X/f*/eofill X/S/stroke X/rf{re f}! -/Y{initclip clip newpath}!/Y*{initclip eoclip newpath}!/rY{re Y}! -/@/currentfile X/|{string readstring pop}! -/Ix{[1 0 0 1 9 -1 roll neg 9 -1 roll neg]exch}! -/It{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! -/Ic{Ix false 1 colorimage}! -/@85{@/ASCII85Decode filter}! -end def -%%EndResource -%%EndProlog -%%Page: 1 1 -%%BeginPageSetup -save GS_pswrite_ProcSet begin 0.1 0.1 scale -%%EndPageSetup -0.843137 0.027451 0.317647 rg -0 0 m -6120 0 l -6120 7920 l -0 7920 l -Y -3233.33 4125.86 m -3218.39 4125.66 3236.15 4118.18 3255.66 4115.17 c -3261.06 4119.39 3265.94 4123.63 3270.29 4127.77 c -3258.15 4124.8 3245.79 4124.73 3233.33 4125.86 c -f -3313.52 4145.85 m -3322.43 4158.14 3328.92 4171.58 3331.2 4185.48 c -3329.19 4175.58 3323.84 4167.03 3318.76 4157.99 c -3290.83 4140.4 3316.12 4168.43 3318.74 4179.1 c -3288.72 4141.27 3314.61 4156.42 3313.52 4145.85 c -f -3343.14 4222.89 m -3344.95 4249.8 3337.84 4241.28 3335.46 4231.03 c -3338.23 4229.57 3340.44 4212.05 3343.14 4222.89 c -f -3176.66 4590.68 m -3184.64 4589.26 3193.91 4588.16 3192.58 4586.25 c -3201.32 4588.18 3203.3 4589.92 3176.66 4590.68 c -f -3192.58 4586.25 m -3186.96 4585.08 l -3192.21 4585.56 l -3192.58 4586.25 l -f -3441.26 4212.69 m -3442.16 4188.53 3434.21 4176.79 3427.02 4156.03 c -3414.1 4149.6 l -3403.54 4129.06 3415.15 4136.56 3407.57 4120.23 c -3391.05 4105.56 3357.51 4074.34 3346.77 4071.48 c -3338.92 4071.65 3352.08 4080.74 3353.8 4084.29 c -3331.71 4069.13 3336.06 4061.53 3302.29 4052.3 c -3301.3 4054.51 l -3218 4015.31 3102.28 4092.98 3103.8 4198.94 c -3102.92 4192.22 3101.27 4193.9 3099.43 4191.2 c -3095.13 4245.71 3124.61 4300.46 3174.33 4322.85 c -3222.96 4346.91 3279.97 4337.05 3314.79 4304.56 c -3295.66 4329.62 3257.58 4356.19 3212.45 4353.73 c -3168.24 4353.01 3126.88 4324.92 3113.07 4294.41 c -3090.43 4280.16 3087.79 4239.45 3077.93 4231.99 c -3064.64 4134.39 3102.9 4092.24 3167.63 4042.63 c -3177.79 4035.77 3170.49 4034.72 3171.85 4029.5 c -3150.35 4039.56 3130.67 4054.76 3114.47 4073.37 c -3123.07 4060.8 3132.34 4048.58 3144.33 4038.98 c -3124.04 4045.83 3096.95 4088.11 3089.06 4089.83 c -3124.01 4027.25 3230.84 3980.08 3286.81 4003.49 c -3260.92 4002.53 3228.03 4002.96 3198.94 4013.71 c -3186.7 4020 3170.1 4033.01 3173.07 4035.44 c -3249.42 4006.93 3328.29 4013.86 3394.36 4066.81 c -3411.16 4079.91 3429.52 4102.18 3434.83 4102.48 c -3426.85 4090.46 3436.2 4096.7 3430.07 4086.09 c -3446.8 4113.1 3422.78 4097.09 3447.37 4132.73 c -3456.46 4120.23 l -3453.07 4142.67 3484.31 4169.89 3481.12 4205.35 c -3488.29 4216.19 3489.11 4193.67 3481.51 4168.73 c -3492.06 4196.4 3484.31 4200.85 3487 4223.69 c -3489.92 4216.01 3493.78 4207.86 3495.75 4199.75 c -3488.88 4226.5 3502.78 4244.78 3506.24 4260.33 c -3502.82 4261.83 3495.64 4248.51 3493.98 4280.09 c -3494.23 4293.81 3497.8 4287.28 3499.17 4290.66 c -3496.49 4292.21 3489.42 4302.73 3485.13 4322.9 c -3488.22 4327.65 3493.45 4310.61 3497.69 4309.92 c -3494.96 4325.95 3490.26 4338.18 3490.07 4350.49 c -3477.67 4376.39 3485.67 4347.03 3475.64 4361.61 c -3462.44 4402.75 3486.57 4371.16 3488.21 4389.84 c -3508.19 4360.89 3519.59 4315.99 3524.83 4297.4 c -3520.83 4320.07 3514.39 4342.04 3506.49 4363.29 c -3512.59 4360.72 3496.72 4409.92 3514.4 4377.34 c -3495.52 4446.79 3433.62 4511.69 3376.67 4542.13 c -3383.62 4535.76 3392.42 4527.76 3389.27 4526.5 c -3360.94 4543.35 3365.92 4544.68 3361.85 4551.8 c -3338.8 4561.19 3337.27 4551.03 3322 4551.78 c -3278.52 4574.86 3270.13 4572.4 3230.1 4586.85 c -3231.91 4578.33 l -3203.1 4587.93 3198.34 4574.71 3167.21 4578.31 c -3165.32 4579.78 3177.19 4583.67 3186.96 4585.08 c -3159.11 4581.4 3160.41 4590.58 3133.15 4584.07 c -3139.86 4588.78 3146.98 4591.91 3154.14 4595.91 c -3131.43 4594.53 3099.9 4582.69 3109.63 4593.47 c -3072.58 4576.93 3006.77 4553.72 2969.84 4519.09 c -2968.68 4526.85 l -2951.76 4506.54 2894.89 4466.19 2890.36 4439.86 c -2885.83 4438.81 l -2877.04 4423.9 2871.33 4407.01 2864.35 4391.68 c -2852.84 4372.05 2847.47 4384.12 2849.11 4381.04 c -2826.46 4335.12 2815.19 4296.54 2805.48 4264.88 c -2812.4 4254.53 2805.65 4202.56 2808.26 4160.97 c -2796.9 3955.53 2952.44 3756.07 3122.46 3710.04 c -3147.38 3701.11 3184.43 3701.44 3215.96 3700.55 c -3178.77 3711.19 3173.97 3706.17 3137.73 3718.81 c -3111.6 3731.13 3105.88 3745.18 3087.36 3761.25 c -3094.69 3748.3 l -3058.39 3761.15 3073.58 3764.2 3044.04 3773.55 c -3051.87 3783.77 l -3040.1 3784.67 3020.7 3803.59 3015.4 3814.1 c -3002.52 3813.59 l -2987.06 3832.66 2978.81 3846.43 2979.42 3857.09 c -2975.26 3849.67 l -2970.55 3857.75 2918.35 3921.25 2945.43 3906.47 c -2940.4 3911.05 2933.71 3913.94 2926.46 3927.13 c -2931.97 3933.42 l -2918.96 3950.19 2907.99 3971.68 2908.83 3978.84 c -2915.78 3969.46 2920.6 3967.7 2925.38 3966.09 c -2892.47 4047.73 2890.62 3970.58 2865.71 4049.19 c -2870.97 4049.61 l -2866.94 4055.72 2864.47 4062.31 2861.23 4068.8 c -2863.53 4091.65 l -2839.85 4119.01 2856.91 4208.1 2860.34 4256.95 c -2862.69 4276.81 2880.11 4297.96 2893.34 4331.13 c -2885.28 4332.51 l -2900.7 4359.39 2973.3 4440.5 3006.94 4436.34 c -3023.23 4456.8 3003.7 4436.42 3000.51 4441.56 c -3036.3 4478.59 3047.55 4467.72 3071.7 4474.39 c -3097.73 4489.84 3049.35 4468.35 3061.69 4480.28 c -3106.72 4491.77 3093.59 4506.42 3152.32 4512.25 c -3158.52 4508.73 3137.95 4506.81 3132.79 4502.24 c -3170.29 4520.6 3251.48 4516.41 3304.23 4492.06 c -3365.41 4463.45 3434.17 4378.92 3436.89 4299.39 c -3439.97 4298.56 l -3438.41 4266.94 3444.81 4230.37 3433.71 4196.79 c -3441.26 4212.69 l -f -3070.23 4105.36 m -3068.12 4094.89 l -3077.95 4081.54 3085.75 4067.08 3098.28 4056.68 c -3089.26 4074.27 3082.57 4081.54 3070.23 4105.36 c -f -3093.44 4106.26 m -3088.24 4112.02 3085.18 4118.94 3081.72 4125.82 c -3085.02 4113.71 3091.78 4103.3 3098.05 4092.7 c -3093.44 4106.26 l -f -3504.27 4195.56 m -3502.08 4190.04 l -3498.06 4161.46 3489.36 4133.18 3476.03 4106.95 c -3490.75 4134.62 3500.25 4164.89 3504.27 4195.56 c -f -3179.63 4597.85 m -3189.73 4601.54 3204.45 4599.88 3215.19 4602.31 c -3201.21 4601.14 3187.3 4600.44 3173.57 4598.69 c -3179.63 4597.85 l -f -2824.92 4409.23 m -2827.25 4387.69 2808.72 4379.32 2829.02 4393.54 c -2839.92 4418.08 2824.78 4400.31 2824.92 4409.23 c -f -2801.04 4309.49 m -2805.73 4323.86 2806.57 4332.48 2808.36 4340.81 c -2795.43 4324.27 2802.4 4320.74 2801.04 4309.49 c -f -0 g -2758.02 3347.25 m -2757.57 3346.78 2757.57 3272.19 2756.64 3252.72 c -2755.72 3236.97 2754.32 3203.15 2720.96 3203.15 c -2686.67 3203.15 2678.33 3242.54 2675.55 3259.67 c -2672.31 3278.67 2672.31 3294.43 2672.31 3301.37 c -2672.31 3323.61 2673.7 3385.72 2726.06 3385.72 c -2741.82 3385.72 2750.62 3381.07 2757.57 3377.38 c -2758.02 3347.25 l -h -2623.65 3292.56 m -2623.65 3161.9 2693.16 3161.9 2703.35 3161.9 c -2732.08 3161.9 2750.62 3177.66 2758.49 3204.98 c -2759.42 3163.75 l -2768.23 3164.22 2777.03 3165.14 2791.39 3165.14 c -2796.49 3165.14 2800.65 3165.14 2804.37 3164.67 c -2808.08 3164.67 2811.78 3164.22 2815.95 3163.75 c -2808.54 3178.57 2802.98 3211.93 2802.98 3284.24 c -2802.98 3354.67 2802.98 3473.75 2809 3509.9 c -2792.33 3502.01 2777.95 3496.91 2746.44 3494.14 c -2758.95 3480.7 2758.95 3473.75 2758.95 3412.6 c -2750.16 3415.37 2739.03 3418.61 2720.03 3418.61 c -2637.09 3418.61 2623.65 3346.33 2623.65 3292.56 c -f -2874.95 3316.21 m -2875.42 3354.67 2883.3 3388.97 2916.19 3388.97 c -2952.34 3388.97 2955.1 3349.12 2954.18 3316.21 c -2874.95 3316.21 l -h -3000.05 3311.56 m -3000.05 3365.78 2989.4 3419.08 2920.82 3419.08 c -2826.3 3419.08 2826.3 3314.35 2826.3 3292.11 c -2826.3 3198.05 2868.46 3160.98 2939.36 3160.98 c -2970.85 3160.98 2986.16 3165.6 2994.5 3167.93 c -2994.04 3184.61 2996.35 3195.27 2999.15 3209.63 c -2989.4 3203.59 2976.89 3195.72 2949.09 3195.72 c -2876.8 3195.72 2875.87 3261.54 2875.87 3284.24 c -2999.15 3284.24 l -3000.05 3311.56 l -f -3150.8 3291.64 m -3150.8 3248.55 3142.93 3190.62 3089.18 3190.62 c -3081.76 3190.62 3072.5 3192.03 3066.48 3193.42 c -3065.55 3210.1 3065.55 3238.83 3065.55 3272.19 c -3065.55 3312.05 3069.71 3332.87 3072.97 3343.09 c -3082.69 3375.98 3104.47 3376.44 3108.63 3376.44 c -3143.85 3376.44 3150.8 3327.77 3150.8 3291.64 c -h -3017.82 3241.13 m -3017.82 3206.84 3017.82 3187.38 3012.26 3172.56 c -3031.26 3165.14 3054.88 3160.98 3083.16 3160.98 c -3101.23 3160.98 3153.59 3160.98 3181.85 3218.89 c -3195.29 3245.76 3199.92 3281.91 3199.92 3309.26 c -3199.92 3325.94 3198.07 3362.54 3184.63 3385.72 c -3171.66 3407.48 3150.8 3418.61 3128.57 3418.61 c -3084.08 3418.61 3071.11 3381.54 3064.17 3362.54 c -3064.17 3386.17 3064.62 3468.65 3068.32 3510.82 c -3038.21 3496.91 3019.66 3494.61 2999.75 3492.75 c -3017.82 3485.35 3017.82 3454.75 3017.82 3355.12 c -3017.82 3241.13 l -f -3288.99 3163.75 m -3279.73 3165.14 3273.22 3166.07 3259.78 3166.07 c -3244.98 3166.07 3234.77 3165.14 3224.12 3163.75 c -3228.75 3172.56 3230.6 3176.74 3231.99 3206.84 c -3233.85 3248.09 3234.32 3358.38 3231.07 3381.54 c -3228.75 3399.16 3224.59 3401.93 3218.1 3406.56 c -3256.09 3410.27 3266.76 3413.05 3284.35 3421.39 c -3280.65 3401.02 3280.18 3390.8 3280.18 3359.77 c -3279.26 3199.88 3278.79 3182.75 3288.99 3163.75 c -f -3437.37 3294.9 m -3436.46 3265.7 3435.99 3245.31 3428.1 3229.1 c -3418.37 3208.24 3402.16 3202.23 3390.11 3202.23 c -3362.29 3202.23 3356.28 3225.39 3356.28 3248.09 c -3356.28 3291.64 3395.21 3294.9 3412.8 3294.9 c -3437.37 3294.9 l -h -3309.93 3237.89 m -3309.93 3208.69 3318.74 3179.51 3344.7 3166.99 c -3356.28 3161.9 3367.86 3161.9 3371.57 3161.9 c -3414.21 3161.9 3428.56 3193.42 3437.37 3212.87 c -3436.9 3192.48 3437.37 3179.98 3438.76 3163.75 c -3447.1 3164.22 3455.44 3165.14 3469.35 3165.14 c -3477.22 3165.14 3484.64 3164.22 3492.51 3163.75 c -3487.41 3171.62 3484.64 3176.27 3483.23 3194.34 c -3482.31 3211.93 3482.31 3229.55 3482.31 3254.1 c -3482.78 3348.63 l -3482.78 3383.87 3473.51 3418.61 3403.99 3418.61 c -3358.14 3418.61 3331.26 3404.71 3317.82 3397.75 c -3323.39 3387.56 3328.02 3378.77 3332.18 3358.83 c -3350.26 3374.59 3373.9 3382.93 3397.98 3382.93 c -3436.46 3382.93 3436.46 3357.44 3436.46 3321.31 c -3427.65 3321.76 3420.22 3322.68 3407.71 3322.68 c -3348.86 3322.68 3309.93 3300 3309.93 3237.89 c -f -3704.27 3209.63 m -3704.74 3193.87 3704.74 3177.19 3711.22 3163.75 c -3701.02 3164.67 3694.99 3166.07 3676.01 3166.07 c -3664.87 3166.07 3658.86 3165.14 3650.05 3163.75 c -3651.89 3169.77 3652.84 3172.09 3653.76 3179.98 c -3655.15 3190.62 3656.08 3226.31 3656.08 3238.83 c -3656.08 3288.87 l -3656.08 3310.65 3656.08 3342.17 3654.68 3353.28 c -3653.76 3361.15 3651.46 3382.46 3624.56 3382.46 c -3598.15 3382.46 3589.36 3363.01 3586.1 3347.25 c -3582.41 3331.03 3582.41 3313.42 3582.41 3244.84 c -3582.86 3185.53 3582.86 3179.98 3587.49 3163.75 c -3579.62 3164.67 3569.89 3165.6 3555.99 3165.6 c -3544.85 3165.6 3537.45 3165.14 3528.19 3163.75 c -3531.44 3171.17 3533.29 3174.88 3534.21 3200.82 c -3535.15 3226.31 3537 3351.43 3532.8 3381.07 c -3530.5 3399.16 3525.85 3403.32 3520.77 3407.95 c -3558.31 3409.8 3570.34 3415.84 3581.94 3421.85 c -3581.94 3372.73 l -3587.49 3387.11 3599.07 3419.08 3645.42 3419.08 c -3703.35 3419.08 3703.8 3376.91 3704.27 3349.12 c -3704.27 3209.63 l -f -0.843137 0.027451 0.317647 rg -3292.9 3486.97 m -3254.53 3448.61 l -3216.17 3486.97 l -3254.53 3525.33 l -3292.9 3486.97 l -f -end showpage restore -%%PageTrailer -%%Trailer -%%Pages: 1 diff --git a/poo/diapos/img/cesi.jpg b/poo/diapos/img/cesi.jpg deleted file mode 100644 index dafbe55de24691c42c68b12402a75d4f863000ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60367 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 diff --git a/poo/diapos/img/logo-cadoles.png b/poo/diapos/img/logo-cadoles.png deleted file mode 100644 index de8ddc0506f341a1bb5d22eb69e46950fdfedb10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17924 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 R0H6Q>002ovPDHLkV1n_Dg{c4l