From 062e77d698ae8a4571884c770e297bbb86ce5080 Mon Sep 17 00:00:00 2001 From: Ludger Paehler Date: Thu, 30 May 2024 20:47:30 +0200 Subject: [PATCH] Refactoring of the lecture on linear approaches. --- .../iris_classification_linear.png | Bin imgs/linear/lin_reg_1d.png | Bin 0 -> 39304 bytes imgs/linear/lin_reg_1d_distances.png | Bin 0 -> 48472 bytes imgs/{ => linear}/sigmoid.svg | 0 lecture/linear.md | 33 ++++++++---------- 5 files changed, 14 insertions(+), 19 deletions(-) rename imgs/{ => linear}/iris_classification_linear.png (100%) create mode 100644 imgs/linear/lin_reg_1d.png create mode 100644 imgs/linear/lin_reg_1d_distances.png rename imgs/{ => linear}/sigmoid.svg (100%) diff --git a/imgs/iris_classification_linear.png b/imgs/linear/iris_classification_linear.png similarity index 100% rename from imgs/iris_classification_linear.png rename to imgs/linear/iris_classification_linear.png diff --git a/imgs/linear/lin_reg_1d.png b/imgs/linear/lin_reg_1d.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb713742acf8632464d2c77a1965cfe146db1c1 GIT binary patch literal 39304 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 F{{R*L;=lj^ literal 0 HcmV?d00001 diff --git a/imgs/linear/lin_reg_1d_distances.png b/imgs/linear/lin_reg_1d_distances.png new file mode 100644 index 0000000000000000000000000000000000000000..97677857435be64e968dd2f3b0f87f329c29c9f0 GIT binary patch literal 48472 zcmeFYby(DG*ER}>goHE#QYu~2-Q6)DC7?rhcO#92Fobl?z)(snNO%JxL$@^2-JSb~ z@jUmtzxUsL9Q%)tW5$7T=E`-gb*^)rSCodDJkA612S`XrIEo4~T1ZGJFeD`84Gc8k zoiWU}#7Ick64uhv8j8}=G#W0B7S?v=NJt7%$-3xzpe~YZ!^8v$D`eEd&{lj+D>f6ks&xn#F|??!eC2HyC0-j%!mfPk1UQ_665~MzN?oj zv$r>{E8>=YS%zpxwSg(F)@ zueMAzQVftz>iELP#4m44t@qBnUm_(aM1s7%ryoZ?Ldiqx95GiX+betpjX zoJP|gQz&2*R|*x-i91F3feZBU>XCB`|M?j?jI7aw?d^liPia$pBE7}9gc*udJV<-e z*VVNwnTb-#dxS5^I%-*XlbdwI-#hYJ6_>&PQTOT-Zn{9pY{m@k#aq_S+qz7gQT_)mO1Td6C_)}(Xkw_04!zB;=Ejs#_NhVb4K!V^9a zxXHt#ka*14gZmJ)2e%H9;A?jZ%N@RdzNHuGPHWuWj}@tTW=F6p#{$m7u?CZXzUC}O znma=)ca*CZ(jHuollj$2QG?ieB2|OZP%6EHX~Z6bbs{Mbs=!jjVv7&B^?pi=ffZ|b z0$n2u&i|ni|19<*fgbnmi?h^~C7fQ;DG2SW2$sE@tG7R1dHa9lW0y}6&&2Y0&tdir zXMOLGJ`|@ntn>6?LO-SNH_~q%jBa9)2iN(_rq0of!dgG$GY+cX6n&(2$o2n5dNgvHp8XvxFD|64*n? z)IV6#^6)XMsAxsL1xf8O$oM7ji}b0Fb)(-;xE1O_#GlZpjv3NWyt|(*k$F!_lJ85( zcR9?6f{r(x3HVn}h0yufd-y5%tZ!RZBYx~+6LP(NAjd`Yu7Yn#5u4_M@J&>(48=?8 z({G~t&%KVqdND2Mccc%`cGSJ3)}Dzxd&%HN=%9*E6cvbY5m^hr2#z)=ywSs&Ca`Ik z5BNl?9fA0STk&wq+450D)Me{;_5^dLgOnFxH%TXR7JF?o8fWh)yBNJuCsOUM4;6F_ zby8mwTbBox#fyxO{Pd{~_YH{azsS1~@xr~HAT$i6Z0!RxR384oFT)?GT+|~Ri=#|l z_&Iv4SJx1pFWY_46(ST8*iO+`w{{@1Tx+vYweEFx{WzKIV!^z2JV z7N+B1LJO(lS=JCErniG+cSPebx7r0e-5_NTs% zSLA8;SKbh4pryPSeMR{Lqb`W@75|Ti60A*UQGo^U(nYnoXFB!Y06r%?(I65}xNF}bkxgCMla--XP$wPLoU)88e1_bw#- z93~>+^KSe*1Cg|j2HOZ;t&DsDHY6%MzjEyv4`o&~Nq)zgRt-V9q-P$^n&QzDAIfbx zliYicS|Oa2J*d^4j~-#gv?hM!QF+_@RjKkp8Cq$l!MuNSw7aSQ5BbcO`b_EfZRtMLRgYdnR7q^xmTL9ppF+| z(8RJQn))SGM$4fHwq$;7=F!9rW!3x@P^y+Kyr}pTPOWWSf?HyzlfChBlz9|wl%<4Y z^t%m-jY@5oO_&X_4f+T>{1~1z$~LOM@%UJ9LuaFR!)W6kIZrGnIX<}{xiXK3P3E{4 zOmV1Y1bbk~n#9&&Py~7&89vx!#Y&!97gU$*kv>)+J5n_Swl%j&w%#7w7}yve8}S&6 z8_%vVg8FMW8ln$Zj=bJ9+hiS{_~0tNI*ieV--CaJA0s~!|A}j%X-C1x#HiT;zC$&$ z*^qOz=7a2`@56FLe!R23cu{wuc`RT8aGbe zqZ$hAN91H^WYO5;f<_sAg_grC>-I+h zg!htO5k_@cB;h9Y!(PCgVX`n^mEHH6J&!D`ElPU~dM|oodpk4wxjt~W*h|*E(lgU5 zs}!)^pB+MQeRat*FIeVgF=DCH$@9!I9=1|g!x3}66I3p5*=3v_cg98ZY(Z`d`7$)c@y|( zVsP%U(c@~$dZAge0zrB+mBF+W&JS63S)bH&)W*MQb)v;(3D;R~u~-UQHXov`X0Y?5 z?z3YV85lJ;G<=RW+BEW=>6y`*E}3a~Wbjtu8^Je0&ydEP%a^B5cc?{QiXMob_+Bkr z@4jFDJbXAIQ0jc;Y}hG!z;(RfWq-190`o2May-~M;oSduHgYC%#Cy1W?r`XjsCjL{ z<;iJsA$SpWjeFi?>HX27TJ6mAM)C%FLy4S@?2NpLvV)$E216gae}euQwHI3mUj+jf z#~6RQgU`%$qIT;BuRdXd);^Cpk27ymiaLBEJgUv$Tfw6Aw-1j4`KO<}d^GzA`Nwh zZ^_W*@4%@*y6W4c5z+O_wBAVv=?As*@qUf%1_v=qlEI#mI$tBK_lI#+#?#m{XT{n) zzAcccW8K3F%!uk=>a)u-=d!&iL$7{c&EGG%QrKsmWy@FZ<0}HQ?X(#iB&)hz|E^V zcN&-Zo5oDfoVnD1fy3i1F}!Tj-Usnz2hm4d2>6sE7-Wv0^qnUU8FZS zs>=7~k3EozqmTyXZ{BigHs2N^vVtJc>R&hzZUh%bR+_uwVmXXjTOA36Qh z?ZTYcfs`WJTu;$LRTYUD_#FcY6`36AKJXhd@DxL)_|NZh$c#w$e!Y)^gcM{2!7eNLo=5cmQt3OLXtpIl#$f-Lf*wLO-PW!%o;!mosCh#$CG)H+VF|yiR{Pnq3vSE3qp-^B0UzA5F)H-#1pomceu1i z1Q?=W&k9o=X9-tUPWZT;c6)En-n{pn%<}G=Io|KdJoO@0j!KX~LjCV!o{DfUByDyP zzjgc#5=PM92L=ir=nC(@A45WY8G_V4LKluqii|>o^q&W3hvUCnYo)`GP%#2Oa>D=D zXYQIp`@c;g{ol2^Gn@ZUjX~l)@h}Cy!$5=kW;;!LdwW7^YN|3e20O}sE&ksxdjtqm6NIL%8SbJNlWe`#vc zxgYcI?+{{M?FQZ!kQ#dhm%J!fGOV-HJSL%q5vWDNOIn!R(EgsX`LC!nFmh~m3l-j= zXm-iJ2Tmj#sa^XGZFrgu60uRp-;?Vlf*c7)lg8#8MPhD1MaDz=_1NoI9y}mq+(aSUO+rM9H zKlP%eWWv?qa?3ckoyj33izqSs~iHWnf zuMfsQ>-ENK^_kjAyW91}@zK>`e+-#cMfc@^$tS1a@Q2jw9+>kK2dAeTpM|*tO`3d? zseIOG7eu#O&Q~ZN;Nrr{%2>(814OoG8g>0VffjmeYQ(X?HsUNJ|5;oldo=cQ%~^<44vx8qwAbdE*J}mwYrr(emML=lP9`jQ z9A`xgYOL_xH%1h7{Z6*@H>T=8;2CFE>Lk*@l-Bat{>~|g7sWZyB$pDML(|28gqVaF zR9-?{EFU2>@&p!LYvG`|!UaZfXI}|qQCA-N7Tliq2dY@8oX-r8l^cS(Q`oG#66w%_ zIE)%(9*UjO;82OAS@dOEYrt+_w@2bj*`4pVDcAxHTG4Nsqbm0V6pTZ%(aYm}*yNr#!12 z7X$3-d$Z^6ti^J5adBiiuPuH1sGdQG)y(;3FgjIkZZ1vr!FfBOdSvH0Yl_lIeMH&@ zVW;4KrmTe`B78A+)v|`@RVg*9jV)Iimh-GM=uE}}Iy$B;H>~g5db|F!Eg}pON5&lv zQ+c01CzI*9HV|B*4bS(LA1w@l4Cc#X+5GrOTW(N`C_MYTnq44%dzEyuH6cyRto@v6 z6+1h2Sr@a6EXniE5xs8Kkb-8#d)u}rB;r=QgT+Z5P^sxWLO%J@Y@g-`wf=>?QwlbM~ zBrf;#X1MJIZz`)N3ukP6JZYt>K5mg(mJJGIG2z7r58{OLgOcci1e~ zp`Cp!pv6c<#B&hK@&Z?wxn2hyv39cRh{!D90T19n_=H7pHSrX+9L%L5) zE&GdJO0)7G=H1guDuR#1I5fxwoO1OZLDg$>b0xl*B3QOtZZ2%EpS(HD7WIt=y!!W9 z0q2B(0CC8iXR-++UxjJE|CL#O1^6gYWc->Bm0zb$B6wFhtU#-M= zyrvi7<6feC6Cf7tNCYltI)ml;`Z zEZh-a3Imtqw-3CJ5wtx1Dx}dRdgKd3?=xz2RlKvBX-Oar1hzI^Xd2mPje7ak&;o)2-IS2M>6#LDseJG=Ki! zA6GiaD8<4t*S6cMG#a+yIfnP4dG8#2-EN0?S}vp&eL=Zhj29=Fiar28o5d-y=uKa^ z))E{c#A0o6oGenO-j6`16BRWI&3u53{VYY#I4>tHO=0m{?9*A|jd<}Jn%Na?#gH`S zyokC##x_rddZTW@beo#RvW$N0pdx+QF63`IcZ;tse)axUZPOL`0z@+_a(RR@X)20I zdZk=O{Ay1cKb(n&M;mozRaV`^|Cm@-UVigi@MhEP&83uqH%v#Z(Q}uC`@`e!E#Qvm zd{ObS98q7sec@sy!gg&Y$r|)OMlsIt+-&IKjrtG7lpA+^Y#D;2vuiPEH-4r?9l@onP zaX3fc1cUxYSq&6v`kP$CEwg?$W@6B}u!B;gL~mA0;zHdv?ZE-;^&2YKzWNcZiS=Mo zI@6*DmHni@TF(${8bMF8*ueYG`d3`{V$&FMn}FmBjz~Cem=6OU=vXhG;ji)Npq%uj z9VmI@f(ld8xZ=+bS7T-v&ofCqO81$coYEDUS~?6cD4*hC!84b}@1HG)rNri2U99yz zK?!(~ry;Mj5S`V3r)P zp||IOnraTsqrSHIpfF=f&z7UUQk#0&yJ2nkgrsd~%%lEoDW!E~X4U#8x(RJxIo2`7 zlFU1AXmfG5Xa%SA5vlOCzA|UlaR=XIj?-v`ZN~E&w&Mh}Sx`n{sR z_V^Vw8MI##s7yNd(c@XuWzJ4YG-Y2zn$X)G zk9(1Dd%5Djxk{NW#G62mFP^wn>3-YUZ1CtaCb4r`+rV|`m=c^a0A##q}({?m3yRD9i%{}>Clhg zMvr00#z_7FEi7)Js+zrhL`|dkFJz>WX$7@IB0}G6I!@&92ZV3fxS%ia%@ZFs%tJ!F$CZM7#I z3s){pZ}6)H9NPb}Wg2oAUg>FwHa^R~#|z?_an#~!d3kv*?=}E8yrB>Uz*h;`)W6%i z0H96;ItI8TGf(j$9*FSS_un8D2|1ntiBm_c9S^jOt?Cn$mQEvy_6H06g0%+#*k!h~ z8oJj$f{MxYcf%GjB~+3h0?REZokT?gqgP1yYX(&6NZ=B`NLm;F3?`2XK`=|_1x4;@{YalpBGsV5}?fmF3+f1QEl<;ix9-2_*) zI}psp$ocHjCb)dLX<;XcQlfv2=JB1;n63k;Zy7sXn7jn&{2X5EU%-rn9_6AJ>bT9JIVYsaw<9$zDIx!tS~%~uw)+juX7>s z{;AWxjgb9Js)DYAnbN7TO7hb;>&-7}85`u%rmF7@St=fHI1Gz)NS@kXX1GYbNV7n0 zqHw6$-#0oo7V6l1{>{S3l379}D=(byw=rj{&Bu(Quk}+}(owRJ)Fb*?&wC7ge9k4N z40t>=Y!6NkoeiEPs~PHFjIxqGC^*OQ#z;c?U1 zLJS0eA3z$dU2UN{YN1XGdl7;32j-f;m8dk!$zh+84piiZUOh14v|OXp*O=ljmjh*Q zl<6)Q7XckDE}wvf0pdcBYW1$Ju6$J>^jl5V zSdRc0sMLSY_Ff%9%=-M-H?q6|=B+8LQyUML{~p&q)SDkZ>CHFmxkmNRYt&hBHfDZQ zG*rC61l)zpw1LV)YB5&S1WSo?=VsCM>VB~T@52?%um{9eXL~=jKNyP&xvpTd=~snv zadBDgOn*MwYkO$8Wdo%9HTF|{G0WfX$~yBKn+s;d{V8#QQT z3AwM0n*{2pNp1Z6oB!Np3pUd~u1rI*NZBJWnrX#_tTmm^7C5$CzYrN)O}^}-XAN*k zc{~~Xi;(bo5==`NI8feRzj{Lht7GcT5zhhAP9|n{<1cAGCtKEy?~-^|dfrQ4MG%U= z#>K&LuVR?$oqnO>ok!4bS7FqcLe69L>QZfYB#qNF9HSjTm%AA?-ao@gBZKXJe3UF3 z;)lPoMEh6p)1b#td0!pe#{ix9q8sp*nv6sS%eel_SepgI=|^B{$!(s7oc?Qh5sYkX zu>eQ0tdYimThVVHaP|}3X0iqz_ex7E@rO>d3C^pZ|04wtD#AZw+aY2zaQ$8}MLyDq ziL*W2{$HcfQt{p#1X6!|4ljcSH@NHrRv??cV2XXj8ItX@!K4}Q>AOI4rBkAv2W&+a zIj_w#7}PsMYxV#_y*$;JfEXf`R$+T5DfWBW_38Eo7mR8a=jp6xnut1&)Pnp?Ny;hY z2Wtk63ZKV3o*20%XxBbZ`wRurqr%xHU(oH%wKb5`k}&NFlkPTOva6;&mqZ;-WpQC0 zuAd9Ys4#9~w$zLz=ar%2DAq~`s0GY?(O-Q5^I~LV%)hOely~+e>_z*rJ6%HGw6}ZW zzycL92F_oLK|K)&*QK9j@%rit_~`d1VPC$8?2B1TNFeP~Uu)~>DKMyK7eXLJC3=`t7(ZAG<#E5;G4-X@H7si=pitJ$q-cz1Yp{<9#86d}n2{|Bgzrql zX!ya@SRD|H>-+|Ve~-+UP{3(ENN@bB=hqJd#~Y*FO^$1Qqd@$9`1F5?_CkPnrhHJO zj>nF0b~EnKa{2Q9vOXxS;r7u2?r*G6^Avy=eI(!w0qID1JGQX6;7yw()^G3LPk#qJ zn(;uLWKt@07QkzufYomxF+Xt^-8*%0I8`Bauj6kIuxw6_yh;WOB06GR%vOuqa{T4G zKO8&|EY~F@tpuBB=FdSVx*O!r5h<1PlAbQOAm^x*()lGVOhs}Tl~ad|vEetH zvd4HALfhcUX$Q$<-RlpmvGh|wcMh)TP&sAo#T<+N+A|@Z3xHrlm5GhV1MxEEKm5Hv z>U4MeQ)Lj%WRlgKX&hIf{DH%mmHlEI4qCtHqkQrVGO2|yLEH4BA6xSM z1S;=6~~H39nun z!2Oj^aMu45jg%^8yHmaf%Ls_{Z8ubANC75@g; z4%y;HiGO%nNqAMw(@1M3tjym#85G2c%+_(#iPLF)zAGQwGPJe&F1{{TzJc$#;fe~3 z9PHz~h$eJ#zDo2+|J@m-nzD<{hqNjPRpx2br>tg{7Y0q`(<7x27e+OLAvW!_ET#>F z)&}8%d{{l5VDfB~)t{p?+MLN2nkJ;&rz9K+Cl+8t`IYW49-`I|4d3=$P#b-I$J7fU z?@vw#e*m$)70a9+u4(Oh%-arWx#;N^AMRT2Ew6iW)5pO**#^@H0Y>2eE$p8A}3Swb9jI z+Vk@Sl(o3@Ni=Rwl@zC>9i0A11Q~*Dl$Bx*T-pnKvMGB%J9o{GT}eG*yf(;vmcOb( zBDBsCIRsuI0^2+%+VBfXD`~@T`khL6(Ie~PgJ6v|J2ay-rA#nC&9SAC^fZH{p)K3h zT@35T#H33U)4u1Eu}t~i{7Tb)tu~ojY|D2oJ^MdeV(W1G-cG&c^OhsY-JEmTw&qz; zO8ZD61V%Z>HcQzn;;G$yoLEp_|E$0$EFq=TAa!eIP?1G2ER7sDo;imGR`N=Q;m^5O zl2GRKziD!J+oo?ZwGkdIBT#ZJI<7Ms>?617PeYj4s;Tux!7CwhJS8Sv!ai15%QFp3 zo(yrw?{vc6RzWUM(PBh=q1rnNSU~d#xBr}Su{CgS)ML_fD_Y;d#cmk4w`91TL6`u2 zT9?HdSnt>i7aw||^x3nur_Sp!vwler`0a^SM<+)U3y;zTQg07%F@}2M&|Z|WTW-en zDZ!_M)9<>1|8HHrUS1&{y4pP*Qe*nwyx*t(a<`0<$Ux;BY%a)#fl=t` zu~YaX`ZZ7Ci<(dI-+cmz^u8K;s!M7Pf<1WhW%&;dP6n4Za~OeXanvpmftd+)_Axkh z@aY?VoBy5wia`t|*6Iwq|z#bHC5}ax8Woo+nxyP>%6Ax}+2EH-2A*1do~N z=N1ylO#GQ}Y=;yvtj{MaU+nJosEZGF?WSgghE`2}SITS7oP4n22&agI({VjGpoKk{ z&-)!EfHe1$As9geaKUOxJ9Zs{KpBFZ=lkb94Mk^X?Iv5@Qq#rAG!irO!Q<;o_@w`- z{x+!PBcr(PUa%ALwEkMYBhXTdP6N)N+s)`aJk<$X&xHX7_|=V&46BSl4@vo z#*J)1qe$etj5*DjW-f0oAwCNN6WrBl{@WoK$L+r3u3Lj!BTtkBb;;k1G`_@h57?xP znMyVI@`{u-D9z?MBT(zg%~$>%IO1vN9l(hB)BbGL@tavw9kp$IkUvxTXeob39GR)} zOTiPXl4k{Et8r@^Ys%KcgX$W_FM@lwmEB`!=25{VUuh)&Rdy2z4-$@MYOAL!s%syi zVq*K`ugou;p6b!|s^{=fYW-p`@e3cQNNbtTUiR}I z*^X*T%i-BHKsM#g^M9Pz#u%oDk%EG}46v0#9*$#!t`~U`^%{~d!oQxO$&S7=tI5FA z;-EI+nzhgl@N*nc*nQL3&D5^#_Tr9*vDH7J znBXrrSJ$41vweAdf)bbRZ$t#i>Vo4O|DZnf9WO>oP;HC^M%ufmlIjTC_2T2hwrQ=l;EG51-CkgAr{{yVuV%RZ3onMP6a~ zF@DN_7&dyqMkZ>#s&PIu=rX!t_;|2X*mEd2UYuZgj6_I(tF>6dM6Izu$5DI3hq}8a z&0^o<)%XXHnc1_j(9mK&Aw1BiM*h=3eLMsDFi1#d2gg$x)g-!r4%;KUw8-)Bp@dpF zxd(jm+~?o%_l<2zqd3+VAd_}x1t{I?qehLzF*Q?=Qigh>;k&9QpZ%m+%JyBI6(~z^ z8PZ$MHv4DH`fRdYY}d~f=jH|h6=}G9Jk?R3@UDi8Oz6wr^{4;h!Zpw^ifLg?Ljha9 zg@KNp*c5Vu*O!Kcb$;hA={(knj5+*{R6zawJ9vg${95L!=yaijWOI#ly4meOZELWl zxHy6F+)ZqGhMhnsq%=%326M4ksx6V`>|)!=;eC){wDnxG|2j}k9x2o3P7?OLSTBMX z)TEZz@_20NP1e~{#8Qc-Pu4rCUx_F5i{EB~!CI}Kz zX|Nn|bzjTg{OKBP8y>$<*+aOr>W|K80OqO?phaF`HDw zx-^!cMxJ zpssH9J%RS)-Z5gu+_D|EzKNckItH7t_#H7^B z3F_h<7+}&7xX?G~4+%Je7CdF!+S;u9vqg`9BL0KdS1TEgW$XbqgZcM)?S5#8^znb= zc3zOF)XE{1(@8WA;7j%TN|ZX4LGxcCF}O-f0*lk!V`XV1GmTu?`t_KOb+{Xrd8Vix z7b^Zxh05bV?KshmVhDorZUAF<0|3Y%NJ@%ayx2wY*R1Wt1=m=B78G(@lZYt~^|qR* zqT{t1Xtm~~1SmH^ZZI?77%NUhN(y?Ncf?l%p@DsK+avp(SdyqvF`1z|Ky+^garw)SM zaKMo<*;%3fK9zD9R&21hnkH(x*~03vC81h}F8E7}yRz?&uidmZwy9~%c%;%Pamvid z>7y^Tl$Abns3i;&;I7DVt&63|Dr@ByjL&zZfqC0m4R_C9Ep*#Heyesk}-T5E~$N?L7c_ z2EaPDKY?zHmTt<~eGR#PwBJcRywsHx<>|4|UiF@-$?%`};xjNCI7>RdeS>-TzEQ{&o(jTD-y=k|BOsK=waY^VRJL>I%HQ= zQ;v^f1vxKiE|^bN@DTVB!_=oIfLk2boegx0Wxjd0G04#iby%9^4$(7}4ZGY#%X zL&_YQfWuyg7iH&16SEAN3?#*>GQ4X z{%A5#Kw1B8rprLU>^U5eAc6Ua4HGvse*Ud9K7O*-IY7Ha_(;aSNVS@==p-6`vv`)m z(JZ3_O^8p?a+Yk?)6a1ch^zWwgg0u&bbN9O`{xPA0W)JwgFhVF{4Vem<5N}|7r8O9 zH~@M9l}@DIH5D0|;#I)Cdj~4C^he z0`yGv-T;BPmaJ=x|Mg<_QtRNEm#2AH<@F8~$UKDDLpfU8~+E0Y3y z3_M+Oj}~@-@$+|)T7v}hcUl?`nH4&(_j;M*ypn*qfKsA3ev$*DVWRh*vL1$CW%1IT z9N7+$aqTc8*OLr4Dj|Y7fchd5mdqUP+GE^Qcv8$Wx+S5LI+pc zLSpb_l&ls*i;07#(sEr&vpjp}{wzKK%v-7cr9YcbLH$J(@iN4~*|er@u- zJWmbvS@=SxWvXKRRZQlD*x<`vv!m7wo%m4DphfaboT z{CiMis7K2+Aw(QkIa-YJYB4K4v~z5RjQniLB{e0=&BluKr}}xCzO)6jgT1PVOrW8s zcMb9WY6xKS|D&#(KS4DUJWizQ2>j?sO-w{OSh_u>>Fhw|ymxt^0j0ed3 z4<445b&rc{GDBTVfGF7BBrc`G`v@p!qiGD%{l@w7cnQlj3DI5s&JESFIht4C(m1{>eF|gvP}5Zby**y(5|Qty7_LeD-qoMe4e;YVit<%*K;n zqSD1gvu#e+ULQ9+sOH`c^+}w4s`^>!T)zY2CzSI5`d;gf&m6HpJS!O~DIX2c(BlK7 z#JrCz|Gf~ysBx@%5~+1|FJ#rsnPT7C8$4;aftD^Fb3ETXu+Bg?}ThKsVWC0670TMT~mb)|bpIv1}&3p$^)=KxjDNdtQRsLb_V*f>!5xtEA zhG(?rcl};#5iJ3zBAFj@1H*TY_?ODFSgsXckT(TL${c4J3np~?DPATyeg>Q~9qsau zf(zQTGDY|_CJ;0=J>u^S{NJZ8ml@f22_TR&;wUApF@-}RB+C{QFO@%&${ZyvguqQWLp$vFp?@T66;d2qs8^$%>FBAn|&` z`R}n>NwsEXQr&FbGOm9pCnBO!_*om%)!lehdfmpH+!M#QtJM6JSP5$ekxAwr_3WX)YQMxtwbvUvc6hVsWv_J zt_Y$fQ4X1QmPo%}odF7*&-NF2#N_&O+t$Ow>dK|Npx%n+`lIWVgX86znQjh{SAkqg z$&)$hUuLFI-f^@V%dpls7nk<(b1I~b^X>JupVdVg`$(Cjd6Lk76bhy&fYGcEkeX<$4o~F3^YyMFDHt1=6BHoF3^iuVEnAWr?BgGaH+V~? zMr?SRQ1=|?;{+*lP>=yo#JJOK$OAeYKF_CFO^}jP`xJHRZ7S)uOaAJY$aKHCnA5kd zV~RH@kBX=QeswjxPa1JIn)L8IN zH6z(haAUQoG=dOsARRb!_x>@6UI&Vk+YR7s&2kN~pk}X4{Kk!f-=Ms8hAzSXT4?)v z{$7WRO+18zlsKg)jw-rft8^9HfrqUt#=)eUmSg>Ts3`F2{XtB$)$BkXk)I%@i;cts z>K(MZvjnLn8m3K5GYANB^x~dP%&bV`9(Yce^V>FFh6iZ@)eop3e^UDvqj(j6l&C?I z7?h4=Fjg9qh-?ayXjl&$T>OT~=h$>i;?ByLt8B<8t!A_`uEocGNBjubGQj}36{5Zt zU~tcgBzd6& zZxTTFAZNLpcU=SlOEZ4!h(#%G`KWPZhz;Aj7!xPuhUPbY`biAgcX>olN!mtkBNP&i zZF0g)J)_-Dg=0ISiQcNGq-!UjDDEgEDJy619a12FDReXvl;XC~-M_DAB9F&lKmY`D z30-B*8H&I#u`?TCZ^c_8L+>db5gvsHq@yv2)Wh+4+`r+A1l6t!-VFJM{f?x5#VEh0 z9rca!{=qTZdrH7t>1;fLkSVX%w@?<$)o1fjglOEHs$9ZGtq`CrPFEWV0_vJ4NSvcV zWhr1p>g8%*_0f6Bbz*u7>PV`iFSbKpUb_q7ncT#FGDlIEgwil-AwNJXip|Wq-AOUtRVxkso*ikt~{o)ZgfUe@us}w zYiP!J1fLxX)p*31t@XY|EOcaQE@#$wkCal-eFjYNIf#1wFtl@(`yz_Yp$(&sU8~Gg!|z+ zr2*G?UYpfXNT}FzOX1wvw394KXDT~%FYQrd-BHcz1(vG|F-#fndLlJG%W^rqm^!& z$xp}MG|;??0y-ohyMK-cy1zF-bT^?LTI6i~C9~at!!h<`D8$o4NsxpiYF(p5{G;2q z!IzCk!xDeyr3om}{@N4G+BXhRF!Sk~rx?YGKqRK`754uxIXlme z_o>Pho$_kQbYE5JF22mFli@1U;InE?U=fA@7A4j~+B; z!P7IF54z}u+-YS`vr^Q~D2H>AOfF8EyqK+8B1B?CQeiM)c1D_ek*_$g@*GT7l)CytlGFTmQ~Bu z&!FViH_+5kK+t$JBF@H9!CW52ji+(f$=jTXF+5PUUc#^I8GsH||IT|^cY0uu^?q^c z2?|S%C-T*vOoo4a9iy5s?gr02L9FO9FTQ@4?4{ z1+pr{K0oKSnTTjH-2I&L+3p;X-+yxkr-v9nSc(9WnR`DCZ>Z*sl3tf;@?-3?f*FN4 z(GqGAlN2onGc^@K6IH?G8?{VzST9gg9je7X*gwgS{<&Q2+D$&vps2$xhZ5W<*J|H! zr{cn;5>X%{Bh&uuVs10jzqZ8(@ler0Im z46l^cj-fT-H3M*ih;XgqBDVJ3cN;}RKMIVXKMJ7#SSl)gE~n#M=BizWT*{yTQMh%x zz2?)Wv^$|n3<+EQ)m7pT2W(C*uEaYsP}Jw>W7pB1r)%kBEuYRU_2 zPInAa<~y-hP&Xk!(_d(jPkh3?A2FBzPbTY|OD5g&>@>>Qgp-O?J}5t9H9hp@V0xO1 z;1Yz1#+v{cpy2?0R`_h-t$$_PU?C8bnVF+;DTQPlzwD#Ud~$vRs7+*ndUc(U9B?Tq zuhw>)pry3!_46YTHxttSn}^I(9YAWMPPBR#*XPMl-!4P$jqPUdlg|jHDtvt>M)YFJ z$yr0sjx-uV!gGI|=XUp*p%!AqE{bV9IFsxCGj-Z|4=|ve)?Lsa#-ZR#xXrR3^?D9) zeag2tr!CfzHI3hdcfXjr`(2#wa#$FSmm6BvW>*99G|R3$%Dc?v6Cbia0HIIv{+S9x z)7sFb)#4Z4(4D4hFeW<4m4iYACV&SYs`!P!f(kBPREvzJ}`zXxR)YLW{Vasb1)ePRgzJ{0N zjfkb)c?2dVX33HDdW`t_65-5c6>v>~@PmL}NsQkw=PHk~DgQQieq$64zyhLNCuiol z+X-IVwf3sr;+=wc&7Q^hDVfBSkD#r-_DcB}sNPvu(IFFmH4kIJFy~Xa#fJdCOJ`Wf zQ}Bk$EkH9@$hAIghmcC{n_jg=JRClq3;YmsZh?COutDpix+ZkS{{7X!4S^ipHBv=k z$B&updLM&;%SVnC@b88IVGP`R(`Q``Db@WD-J$P?%W3{V;g@xYAZOnfxt%h25L;2I z2jo^bZzBu&64%1VD(p}GIpEgn*kW`fPS43^y{nOd1L*C)IEBfLI?^B@b|y9_C_83S zD&>Qc?->Z3d^y=zS)UpA98Ed43^K0ocet(JS^>9fZr#?0phsynzTbGPed{A5F%||u zUkGl23ki7V)P8%x9qfPZ!c^-yyacqm^dbGfMkavFy989)nzGU)x)R^QIvn{wDWnY5 z6iOf(oMWy`Gln9=uw>7%ts4i@E&C%~*?>Zs&2#KCpnCDCHqAw3D2k9_2&S45s?nFu z+r47y8s`gKk^;<`r?|Vi!vEqZ54f{7aI!tcBr<)ay!jYE$kL)53S9c)1R>mMU}Fk- zzZBkE47oCD1jvO1vrxBRZPvJB73kaM|nnUG#37m#`m0ui6dLMc{STu>nkXX#|edA@Wpt zo3ixi$ZcWtTBkH+r-8P9x$}I^|1>LM7(gG030!Jg817T)dv_-MF(c^d9V#8}e~c#u zNGo!>Ji|LYNPcD`#%);dBldO+wS;%!^xQB+F3!LjgK;p+JAn+qE;Fv{P<=A@u@f|=IVR#jvxuI;m zsmK8k(t?#bR(+~%_satE@S&CR(ofnu3=*~2Yo5Vg!tPe~J+qen6Tnp=N_S7Ur{uAq zr2YC_y>#dA0>I!WSpv=>8)N0lfO?Ej$9rmsPB~=&i{pz#zu0A2gSD>^(-FnQn|z6@HqW5-yb&A~TB_^L~!h4sfZM5RIiVFav(hPF}C zW;Gpjx-})uh4M~FfZ%zD03rqf2zU4{5*bkDtgTrA_ZGhtx0P-No-dR7?0rRt0~hfc zJiesoNXvC}bVNOZy&J+M1EN=MCsd;QVk&ckT)+#3(;e?o$*+)wf>M>~qxkdI?+Hrr z{1NfN{$c+2ivS@eoX9e{J2s6>D<{Z>q{aT!(DB`k6oV@e7<{*~x*qeG*?7T(`r1ncdw;`M z8L0X%pHyY?QJ(UQLg*DAs{(gBqw<;?0j;#n^AG?p|1RyPKKU33TsAo6H|>0@x!l0T z{t}O6oryF}?Bm2TdBay|ET-{1Xw@B91lFMG~iYp->zV;##!SgVNzL>Tmj z*I>skZ4y}x_kK_bRf+23N8UWc>aETOC-5FS2ICMfY}Xw@Y|Icw_pdtGPZ*+=m}%+k z)Vo^c-rEMZvP;nOH>a`^9z-I|?H)_3W_WDo)WXFZ1?$Y&nq zvFlTdrvXX>gbyGsfYPUyxv`1qiC{^kR$9ZxoncV85Om>Rn9NU?i(o8%7(kTCZzr*@ zny0zW#C$$JRQ;p0xygs@i;$_^GH_-e($16mo;$D21_H4AH~;bD1XLl{lnXOD z+!arRProZvtbF6GlQt~du_wfO3i#_~9uB#>nL%0_3o7fM+Vi&MGnWyjs%96ye9?Q5 zQ=Tvnm^6fz4%r;ph41Ts1Yf-;?EFYM6h~=S!I;SUv+HatnE%-d>nnG8v*WUa`5(mJ z%yLEpwCq=XC@_70vz%t{Vm3fX4C8(XpOfUD)l&zr4=*?C-#&`1Fw-H8*1w#NqSbPdicy7q|n6e9|x01^p}YUe82H>!^FZM*ZX zGM=^ofEhMYdgso2LILpovVUr59Pa_(9azWa7JVL8p3a~Cz639Lj=H)u0;30s+xK4b z!{)??n$R7CF-U+k{calc#d%}{0{5snE%m)mOlKd+`OgQAll>LfpA%7l|D?RhBO~-y zE^i;9f~IoX(z=?<0H|eit=kqqF#9fIEUVFo!pG_w)e#IXxtIi!#JvmD>Zc?BliBn< zJ0w~E{zyf@`B|I8p*^>2Mk*WrY8;VO`X@?zDOJOI^XVBRVH#d|1$@Ynr+uK)Xs0*+%hJH@@n zD>2!fKh$`W%^H$(Cj(?+vq>~+WwrSWM-k6VnDG}~zb%<7c?@O{Nv{e9Q20d?<20BS^?9NNgZ@=YQkktQZ0gE_WudDBntD)SL317TIqW zUipO;{_vP%Q$Ok&fukDq)1Ut1r>ng7K8|peRegL8tiUY{dHDNa^H|>t7drh<3ubCz z`@d=0B@G#TKqNflXn`5b?&`0dtkt#Eiom)oU9oD9nv2r4Kr|s{b~UXZtPT~DNJ-=u zjKc465mgC6ky|F=ztRUE-#%w>0W8RCj#GdzH;l=;}rYT0j&2Jl;nV*Hc zJp7ZtnR)InZ3sg-StS@d{7fhgD>xi^2&ze*vSLeZI@xD*5XBE$=(cdP7n=00NR?eW zKgt=DjORVeu)3W0v$r?j(O;foqH2bq_*jBz*A?C4pZk)?c0_wy za)L{P0dUEzYgAZ&{x~yoEYJt?dbT+eG@jsD9e%j}`0&_b*(BRL!Dw|X*BO0}Uivu* zMLsHnXjRz8R;I??Dtl|;>AP`2_|yF!vDC^8BKL`rm;{$Z8ffH_{~FmNkzW;0Xz7@} zCnTCBQe+aKe?q0;1yj9Di>IY1^f7zN z=rfRncHus=BymW<3kUeYE})hV-ampCK)<+Se`;MM5hk*h`dF*u(ths*4rGtzqMYH< zFQ1Q-|HYmCX1){CG481=8%(M=w9P44&vfsly$D5V=C5M&??3W@ol>d*l;#{5;H7be zUL;u4gwDbqbQW^0;$LzX-jP6}*7)w;?D%96-bu|ydT}D+c|)?d@?{-e7lBLYT`XW& zaw2#yxyREA#pW4wFC9Dh&(ptrtu@a(&VilKvedHQ#j9&7h2I`d>68q{X)5HLBM{IA z{MX|EpuKZ?D$4$u=wHG+t0{!{shXMJoT{p@UQ|hcL*u=!FDrX1*!+C0HlPk8i!)ev zF6ZQo@bR)=CE$I*s_DI6|HgvgA`vH9%*6ZCrh2o{$?^L7&PmQjFVb~K8xN1&@y@l% zQY1SgyAJtvh#_E6@7*RfRp%uHs{hB7Al(JwCnJ9upMcty9Mek2ih{h4R1*vMKS3Ux zFW7TDwiOsQ9(l^|M_;)pmnge4ibOX!3NR&XiZWUFgsGUNzKsvfDk;yzDeSAE2l8)l zima>Ya;njfg?Gvv$u`f-;D$6s?dGSdoH@+B=3;Lj|L|GIu*nD6&UZ?CMi>AJ(_q6K z4exkXh>djpt6cp&grlRtq;o5iu&CM7j1D$p?Jv|_;wj`I zH~Kx{icay07?YHVQoG_@!Vq!GQsCm6d9JUjGV0IlJL$I)wE^$R`o!Fy?!a<*t=S;wzOfcH%sPla%{P?S+$DsoYioNmD=Kxo zaWYXky027MZ0oRa(oK1Lj0$#CX4iPCtAFE11t^SL{BsFl3ar2)-qW!uxu?d#T!BB#ho=7LgCE7iiP($5(JVGp4Rx>RWfb^1dsgw@NStu4Uo zSi3;Dm_);$<0(fV=2GGijSR+(vweaJ94-KZaG5o+lK?KFo_~K+W^?WOnCBuDUgSAV ztjg`%#JGf^>UjvE2@3Da2lRmfq?mB$?jmc*qfHQN?+jG{c zclT>LZ+0l!!~VTohOtGpiLP>kwWZ`wt8?WhKscKxq&R9ED*kc_^WCUs1SzJi~;xKyPatoDR zp9f6(i`49+j*Z72K+c1iGgyoD{T+v^(FI>@s5}U~U6yz;<%O$q5t}%)J9{Uwss=(4 zmU-0PVD!YUQdkN$7iMDBZWo9KhLlnf1l51Z17=WA+~+znXWA4O~xTolwW*Fhy*s4;GGKGCqQdXD>OmIbALrj|$8s_Hz zV;GL*0o}2!)de?O{AKR*ifRw}hMcb2DHPj2t{I94wp@W+SJy>_XU(sOIxH9_nD@<2 ztvhw#XR1$GXnz>U0B78TR_`oLN5|JohUDA2>Teuu_gRQ^hoSQ1NXQzC(S6IEO7smo zYf;DZ#*}xegmbWNOBGM)kdm4!avur%&jJ82ZRpg zR?o2v#kV;ibiO@<)Rs~Nz{T%+G8X`E(gD9*!{anALK90oz_0)q5T`Yt`*$%2urQsP(wYF?l%B{fjDWPr6nuY|G`%|*89P-BcTw& z4ps2EEe*hOjZ3*EoxT!7&WLTc7^QZrsMp4$ed9tiv6}fLdmc{C=HDCM^lVsfH#tFK zD+ce@tPd66LX#Py`;g;t3*k~Vt_8yaik!k(^`*n#_Tsdq6$`w#W2TB4PrMm=G6{i6 zeCq&QhHY_1EITU}>%=BRl)z3F2TUieWzQQHe-(&uh(;@bqG*n|j%W^L1mF<+5*U5F ze_rZjZ^lix>{^~lIWN;)Cs{3RF}?4!ekq@K9(eNwCM@+{sTU5mTV#6oVuC$jR!>{4 zR7e|nFjid>B)r^2UTGepI$Nw<6Nw>1+8=!sCR!vXl7O2RTV0y;+nqeCF_!kd+uYL92jEZK)2Rl% z24AlOK;nX_ZK(}j1$hBC%rpI#^1P{l)A~AkMlqLH%>H{10H#fQ3@C93gYr003R1X; z9L#M)RzrTl=%T&)_iwm3bgINh^Pz|hz4X*{H-7j|4ya;kurPID%GQfUbgjd%jF00X z15tQ--fBrk;?@;{2BHxd*6bSn@83Y)NgPycilKHXDPdH%3^1QJ-5q^=+w|bTD}qU;{+E%&mSbhW z@*A0-cmHxla|k&Ul~#T2h-!GpKT&HFMS&Lx8BAK#u)O-Y-?pWIwvIvQpX!w_udk&XZUf%< z-uKAs0HSQU@-eMg22el;_v9|SDmh78+C1Ts5*3XH<=FC&A`1Y#YWacaiiI&H@6DGM z0mtr@!ow_PrQ!i6z9!W!oUylz`$R%&-0M3Kc@(EAEIcD z(botRJcbf3n?Y6J8ecx(TW&nP`3Jq^akOVOP-cgu5IMgE^ml47)hA>k7c=|}?{p># zwThVdHv%a$yZw#1CV;FaU3kX7NPZr^eU4&Uh7HT+|NQE+&4JkgeKksyen!QmGdz_Itjtlrxl zqWjmCY^_gOCLP3Zs`Kb-kmk@-%?tvdcOWL&SrTzhM%VSHLqwQc+VWT;{G6py7~Q?E zO$lL)02P%7iRgDze^_RK!_Z<(9h+R}G6tB>wrw3RVGp~{^BUg?rLd=Rwc??n6_gO- z3>oW9c(u{>Y*5i3V(aCc8?$s85Ov9q&3%0~Qf?AF1V!5Fr5xYYz$ zjDR)tj%j&HMkGV)PN`VOfpvn5!1j!FIn#-fSer*Z*N)n)(=>p|051 zEL81?U@$CCUHm=}PVwGs$(0rxGTa_9!RWHOm{k!)4xgK&65}7v7b|CyG%DapbM^?q zr@qX#{q#H0<+#Dbr5t6X`pxcf+Bk{}D3Dy|pS={=bCb-#Dt92^2cWSE+xD;uW-v*3 zphZ$ZLhg?mk{xV7rV??|UFQsnxg%dW4Q(EV$ry`p*fj?fD%X|1T(Gr?b@UyVW(?3; z6Ol`&CWI4*&qNFS5J;wRXtocAOJ1Pf32t1tZRIgN z{-=7m39=76A~SgkU2eOR&oD1v65Gk4n-9spS|8-x0Pg z6l($skAe40xTtXCiae>5!dqIwxQA&<%F4AsJwhxZ-RR2V(WBQEp9QbM`Jc_B>?O-x zxkK3A^YG1}t;O`S%AWZWlr!Irnr>EMM*W)j%v9omCTuc%k%wju{hm&{Ab>pyXVBd& zQPrz{$cpZS@`PJdkMCjLzn?R`mk%AjxwFo0qJXNXvin zUw{)c`*e#C%4vnG;6sS7&EDU8yj$)0C@eTM{T*Rwf8xv598_h;;^kP3RZNlgGr77B zr2iH@ojGpbF2FHA4aPC2^r)Abf~-_W#(IFM`li8}^SIYqxml$*#iYAAB}z}?x2R5K z?CV}qK9^i>jB$3v++alL@b>6qtr~KeZn`+9@R~+#Hh=ca4N(=C!&ni^HrcAV*WO(c zLQ>|N!#@rJ3&r@aTODlg=?nYy3W!#C%K+e>&40C>Tw;vIO&?o1B(uSKh z2Ol)w-y!dSq&4_k;rctS139`|L#9u4Wt?AnZM1R6+D@O}BD_w=s#pQY$%rS$T3$rF zG-i1~IVkr2XMv~L2`-vlJx^)-DkfWDaw~BQVU*3^A3M2EzbnbB6ZFo?RR1+%&!z7zS8}D|Q>gN5R>B(ezMgkk5 zKb_BNZ=sjW(b4)V`uBKRw$SKlHf>Fs>Je1zH2xA?Sif4q-bLJFOo>6p{Q7BjsX(EK z-@PzlGTP-I8sEDozgn^C+`RG%=u1RTYpGdX)v`*@Hz-JAoGL?L)Eo(&fthv*%I4Bc zA|s`oW2kz3{HRxKx+h&8@)`{-{Y0D_WM6&Z!b%$L3|x{}{9P>M_-ssA3u|F`=Yx30 zkf6?kIjp>}y((|P#4{B&Mo$!98lCdwcy`bBoeNY$>Be^VV0E_`WZLhsn!` z!!KWws94n3Wdf*UZw1~+`tmI-*;~ynkzp{UJTvi)C!b<_w-sl{H?QT*7UlxkLO_;V z_9=wvzW|hqBqnHq(4!xDO8#29Vup)>3s++r%U=Op|0U~w*9(FCb#f{e7-{}1Gz~mPi00^GT8S$C=LuJTy|S1KM{TX%<9{e+wVm?dF9Na z9Ea)+itS$k*QtL-w+Xuka~!)?{h8VcB=Db$a2)76`&gBh`xRh2m(*HCmXqfZI zyFnZqN;7S7ZMQ~}woF|^Ib^I)MzH`F9mS2syiTyNzUdSFeTFw%Pyae~rOZqAw~9K| z;=Nihe)CcsRo~v_RX2Km%7;uo9&QNJPoQ?kB`^wLOJn3c5k9}?WMJ}c0$U>6Ak#^0 zT(?<0#Uml1yxSRF!hBLzA~5Xoo9SXGJ3vv0mFsgtU>vg*SeZtjw^PF5p|GOo5=6(p zcf$RPI$ZD7HlZb?oENw=e{JlD;G@S)Zgg7AZlsJDnoNto1VKGxXvya%l7|p?ev8+vX)5*>U}#ui;1V8aJ>+fCMbMM}n$kCTp#hl6pFkp-rFHrfmdA=?w< zwg;scH3)AIllr} zFy9vIir@Ot*xr6g4;L{mGxP|?(NatX6H7$&*{5}Gj|!w%7suL;x67C8--vs9S7klS zY_^nxqbN^)Gk0sN{v`6;&-FW2Vq`qGfGd56u`PoOJ3%ReQIo9S{7&uP55P;`Uq!l{ zfj`PW3Ur5;<+Y%Pg#zX*4i>YmlSH+xo6b85bvQhh=U*Z3-*jZy=T~fP2HGi#YC@4% z-THCI?6FGQ;g4yf^}6jj%Ojbg=y`>^i@RTa7L%^RsQ9#kgHEgC5ry?bG;U-_(~p<) zdwMgNc3Co*DmR?64gQL>JjkF+%2jLbL$w9XpxZ8#4K)vA+vn8#f4-40T_Qp~dkGwz zt1#%85LSE)#{VQg?WvGzB_{X&XsEu_i>pYlLnSg(xjuQET>Z1Op3d@Uy`h1A(kXF! zOu|}Xg$ilWDr40YDA-z%kvw5$9cz_vLH7+WN=@t|TKZ;|@VcRYoX$QCk(dZOCL;NX z7@72Ngm;9L_nHD+JlZ?Xs!6y>uq#E`2UMcokZ{lVapej+*17!-h#Z32jdSXm9yaA` zH+GIqfBzu4;(U?x+3B}}f@apk{eD9Up`@cPPo)}8J@+K7b*;^hMn4!BFL|2YV9Um! zANc~#@ZP<1R!fA!mT#$OKsEi^8^2nW2x`ooAl#R98*1h+_}imhdLcrGZ7Hv+N~2uT zhfNyla*pYwfAWU%lUD`qtkNKV#2+i)w(Z)G61E;fwST90!8Y@ z!6b3wGd`Ckb+v95iJy$uWp?GTTlM!;wV2Q)>hh-n6&S zwYev~q77s}SDjw1L;_sX$~JehNl5#Tic5%9{!E2t%v_`F)2)WD^e%My0~fgGZW2fq zy3}Izn;K_ji>}TE%0}OWtl~#t6|IGDA=6Ik%n;KIQka6QjTDSqRKi+hD^D4N|K3CX zKO?wQm)v~52E8lQg=2$9Y5YnKH?GNP#BPH!+q9O*?i=1g3l^l=KLIO8)vjeH7NH{K zk^kpQl<1DFp_*xFO2yILb{NJQHOP+P=Xwh(bz3c9SsXq9aI^eN2yQ0(7z^;Z%XP0+ zHR!t|>hZ!4oq0QrE8e-dzUB%w?2!bNfN5&s#)im{h^utX^lv?Sr>=SSrOIa~Tf4k3 zbab%SS+`r~wWP4R`IcTx|6O15=40^i(?+nkm|Fe-gn&6GZONUS+s_&hP`>Rm zQbVju03zm?UxYq@=Ptl;Zy3?uf$Njiv$gmi0k?dvdtgA1*J2_ywWsa{@L6IT4wm?; z3qhr~jyn8$q&aZZBJ#<_w$Xj<@xtBqGQ8NUv8(px25k=`xkA%ZDHzH;TTuUl7+3y- zNT0iSH3FI}AoDKkuwjSj$BbX3CfBIhm3IiFkL+oP*Ls$Y&nr;9jVrzVXGNo!+P(^d z2cry7AhoXjgFBxiqGE(DTRs>e9gypU%4#nHLJ~rJ)}dX}Ba8x}hBQOOjoYAkEcvxn z-g_dMd5j0PlKvph(kzxE_$*2)d;Ef;~IBSzSkCVF+FS?2>g_ zt*mv-TV1@`zC+~9a%HrGvidNpu-X`e@3cF>z2Me?GK)z>5D!hq39?)tgAz>MT!oi+ zePmU0nw{^NUzf&6_0#G+(z`e}e>WMypkK1pShQS=_|v2&E&Aq-U;9Y8I>{A`8+e<( zL2pxNGS@(XdO@0x78GNXA=84R0FZy~A_1`Q3_8hPuYs7A{Obgi(1grm5+;)>ovUUF zdj17jI}{DbJN|q&p1k^M-@m!NU;obD`g%rkhew-QJYFDKQoYr~EGzjIJfJ?RpO*>2 zQ#~$%P$Qr$Fxb2_3Q&>2a|dW5A6}nLWYDH+?Va}Grz0=DLgUTn-#~%I z4}1VpuKvI+gwE@p;G-2IMSR9%zm|x>+on5S;Dw8%>B!m`Ek2*vp!f6!E5KmGFpzG* zztSxr|3PO;R1Ib%`{5jvpn85CUQR-7mD~N74wNR4%tN@DB@c(XcBQ$}`v?ah&c*f3 z)Vjb9eeXC3&?v4S3&q!fyqf1A&LIz=jP)eZc%opO-6JDtz~|6_=ZMb+Tza3bFSgBz zSs+<;xr$3L{_OD5s(mQ^WykK@;l1pp<EY!wnfo`?-sJCJfDppS^HYUHKjMia>`W` zM={WZ?q7jiA-Ty@?O@#L%Ey~v_v@kE|NZywi*)zIC(otmuN=%^Z+W=qKO@=`$>fUsj{w&(}V1A9esEW$Y7;6^eSo$lp1HYIbUOq;*`@U|3(-2CV}Dc z>twLrmjL$$bpe0}?m54>uz7DtvjMD)NU^BLtrb+F2td;L7KU$%o~r{d=8@GnglScdz}+`8{C{tbrjRyj+d!!ip((Fai5nJ zw!Gn9sqiG7cOw+QlDJOWDX&6DZ;9rNY`aGbH#H&S3xb)cgd z1zA)EAX4P>L_y0h1V;{&D)oFfKa#m{n*!ey@fEF8BrUboA&BHh}(J zD3KN;&_i6q#PFY1f&R>u1V6=uy89NkULTj78-hzh+pHMzk4M-%v7Ecq59l-2zmF9D z95j^Yz^q|&AGolLPv1aCKL6iGo{9vr3lTu@0qhqolIsIkcB&PyvYLn6nbXb-b9{%_ zT1l$zp&v%x>BwUW7f6xW$%#X6d^t8vpdC6av z@fq{Ry%$%t%YwFU1G&rsE`3^OPz}lzLP5H6$4T4p=K;V zAQ%Z`ZWph@sb@Pyr!=CY_eHc#T3taBK-jvSYH$`%LUaJbS-(F_Ne%$*eO-nlO5Xjal*KAIwsDkje~rv>Hk8WWD^Z8x0ZMSZ+ygh z-J(X}K+Sm(@1Nwn7I#MJX}<~DGz~0y10mxp6u?yxQn&()(=Tn-l_p4uBO9VWK)oR1 zE&Zz{399AjpvE?k7IJaV1R&ScD9@+AVU8&;02+8(xexd)>h8wg!W}c{SN;qDnI0t` z{KA!23Cw1Hr49KX6`Mt;CNq$OC@-?WT)r*dBYi$n3R``FwvV(UJ+*H*q*z&~`8XcqYSB1BdZANAf^WMlCa>-hYV(A~vE`^CSnG{Dg93=C-gFm`J; zhuwMD66Ty4aJ1*VG*ZmrzW&2}D5-|i`)F~ZT4*pw_oe>&;9+#u^5}>SN_tej1UX_UV*1;!QoZKs zp&mRoL%=NdgDjMa=!DY+plu1ljY;*}F`m{wLvmSlSpgSF>C7l2=WLvKS1g}2@trXjOD#MMTT|2_t-6TrECH4 zxh)B)wceBda(<&*YL}7UvcXI!g|fVmv^1mj6T>G|_pruUl0|)ZOJs>NfzZ>bJD+5Hj(TRzwP<=@^ zLpOK@72B5~E=7TvH_Daryg;@|ISPT^-)=DZDS53a??EOwH)ynvv_unn_-}g-!-TKb zzK=LPtT~y+J#@U$F10jwf3LGvtd&`W1EcofY+uut|7%~};8Fn=WxeX!!;>D&CpgfE z#KLR7D@FZQ!mVhtcMGFy1NP@x$R|wG-Vi5Adfgr@Ff|m}ZI9)%me3yr=~E!N&S!7E z586FMqCJw#t=jFk(ETUtbu)|tsF@(*Gxm#Ry1r{}PZnd!$j@We7$_d*MYj6U@djk+ zrIXo$XOH*M@#(9CgKiS_v&ci{;tP;XdLk?+gc{&s5O>RAG&=>_Hy%U0$w&% z=1_2MqLiEYe9DWJ3si6=8M5u*oTo4S*LnbcM={;|4N5qYnDj=o2xhJ$UbJo<@=8`h zx@Xe8gU(;L+ye>?XY)?P-Itzm-8dnJi-f5OWlmbP^LfPf_ttv$5sTRC&@01v6R8wK zV9m+nG<;)WyspE_w%>2j5W(~f=y;$>EBx1_zi2@k=RAOEMWS{KV?+40akXOH793(> zO^xM*n3!pRgCtwH59*i9P*wU2q8=`p$u3-L(j$!cob`eX`2(Fo>7U^+bK>L}n}_BS zu2CSe6P>o$Y4~FD=YyNmiR8v$Z=0c*S`B;lQEkT?7T#X0G#j9`;B0`tt<^o?^aDRz zi8a4Tn1e&UYsc+i%MQr*voyE1`UL)}$Z0p*g{1LW0*-V^hzEgue4^p#uOQ+ZeG(ZC z4*>DS7PM%B^o&#=%#Drk71j0SnF*1TAstM(FWRT_mNipq>x6YJUa@I%tEAHnR4nWb zIL)iKibvNKD=)MIWq|C}`2JU^-QQxxc<-oY@Wz`fssj3)8~$cI=F2)?)4&1z<-bfb zL}+X7{~ul@yfmk~j+}(tcm8(tFHq{24JslnJg=nEt0hv0Vz$5wou$m|rQi{Rpkb8q zE?Y@%lG?8Z3YS_WpuVRUDsuw#O@osC<16q%rAqzlcIC^FQ?LdPCX|rV2W&FHW8?Zd zWqh^an2w&gDc{U`t7zy5r$&jFG>>FXugq328>?l;Sn+U6sS6a{A!>B|%$5WkLI3-} zV>jG?yWEM5(I_KD+G(fZHbB=FL(EHlqcZnH0^(u|4L)chX~udk?r@vf$d2HzY6p z+50nd%=3AVoeVjXA4PcvGTehs0hxpunYFBj9}>98;3bPk+oVaU;;jt0QU!!NfVgN@ zyW5ji#r6@u=P`n-a-HTaz3!`I)N3xN>;xN&Z`fZ`g4lA?$ZtC%g@Vdees@j_ky0U0 z)^1w;k_Y?cVBC76przPeXCKh-%WwSCn0B(PdS`r93eX)uXB$wXG(dd4(old< z(r;xh=#K%M1hsLl?@{t{UTV0K!PkmffK3_cZ=$qmxTYUv=U-u~6LNWXH9v7po1kfc z1+~^8t1;>IlNR_)i)UWpEx^%8N44SN5>Tpk2Q_tLy{?2FRRxkI&+=V!vZph!Zm;PM z<62>ZF$n8lUs$sNzoF2NdvTxC2A1O{!@={yVsSjgNaq4I*j`l#bUJfwcA&98QCp!% za+4q@JsaH;$IoxCY^>(mmEvJ)_XLxq#THJ+G$ENy@9yWfUh$zL(kUKU+q9JpyRo=y zY-*;04_N&n{rX^XNJ-{h2mqq47%>=wdZPPefVxNK208E~=bHv3^|ZzO0I>iMB>ZA7 zX(rx&O`+&>7qjd4)yKQHnR0w_V2Ij+PtA59FeWLqSQ*J6(SH;TX5thFehh6nBWP5u zeI51Frzf1~e2HCs=vE&`Jg*8rcy0MPZUP@XhzBB!GDAOC1zzBnOT5{oiu?ByY{DU?ufbDs@+BCkKYr4eG}t$RJ+$DtGDX5IWK^cKxM zYkOs+2IKJOxz|-o#IxTuLc%3rx{hgqQ3%W@Cp7dUU&1(U?IsSpB7aC+s!pg8aXMTC|2{WY`PzVbYQa7boU`t-;(ky}J0Hk5XlIc+1~ zmeSki)IWEmqQEh+Fl6+xc1V|oSN(EiA#Ddsr?Z+J9u;f7%A;Kb0kEx{x@jUgmDp}x7RjKdC|>pJh4tINwx zN~QpI*w`yZ3*;_!e*z_M*g%Ehv|X+J#hP|h$Qoh5i3z4y8i>ZLz3<-}bI3@<-GQeRKZ{2nI@Ct0+fLlBw9b4~lkafV-PVGWm6aM6PUTSM z+U!=0Vyk!t2XwE;D5GmGxh;gw5S#-spf4;qQ6XD?0zC%E3IpaZ_k3X*M+>w0nxbU- z1H$(2Jojo(j!aeT=-DtAQV_Y1f|7Y}hJhO$UfS0_nyE}`(kNXN_Xl)&F&RAy?e1#B zkSg(GK>jdCfQ9Ym#(c+eKhv)4y)pu)i`I}ZBRdANd%1M86_<>)ner@is`G+ z9llCnn8}Lo(1IW9sNlbd910tD14(D*2`>jqwj5&N&3!ex;|1@7nY4n260v^EeM>_W zBD-!=6iT^2m%RscbjD;QlAF=awr#kigj`iSY*Y{B^87dEood?B38Geg%7>9x={28B z7`OOn3FX!`c$$8jBb*($6ckxRhGcnu{pL6)_J$`T#!%+{vgC@Jp7pFE$r#r&pzAO2R$f0j8q80{eYYh#!==^VI zlDX%>$`jv3WPD-8hBYI#xPzTlW1Tfb1uQg{n|ya9Z|cpFbmA1u#H~|QTr-U&aWQD! zI7D}`@^LJ}`cf3~^{XA=oxcz7r2?~aK6E2xYd!|UGM!`l%d$#@7b9hIte)JepPJzn4>-CTTWA*6 zt{35wX;kCkYAnxSSrl$sxA8R>%{wQnMNP4k2E@DtY^+u(`tPxHVN(vZ=m4`0zS>)T zN6P7KfYrg<1nIc!Xc2}VO9AwQ>M(m@35ZGbTviq^0WO3J6@C126I-WT=u&fh1k0s1 z49aj}pU47a{a0sX{oEwI3!Iqtt7da$GviPBdiSURmNcY&0lW=+yKn8<#J7L!p-laT z%Qf*_z4B9OPJ1Kt-ez@OhT=$kY_Ce#y~DB01EEiN{z&1o1RRt;kNwcT@mf>EYo)i$ zTF7=&@Ez>%NyNlM3|6?pDs<(06Y{l^!v0#av(t%h?}bysLAG=~9fnXVF)41F_b4IT zsPrR6PDR zO2Z3Go_l5%=Roj!wzKD=xrD4fKPG7oNkqmjIYi8KvF0ydV&ZNHy76R>mOm z!;2SdqJb8aI;zgnoz9PI^>v)pXR>cIPV}|eivG3!S_0pyx(r*ks#qkN zV_wqJ&SjJxn+NI*cO!vNPQ#ehtHFz+l1xfW1Ok_Ru$q`Xad+H|=~KJ4 zaz-D$Z?-jbYxtvR;OCoT$`mFawM)lpj@sGP^v9zL&t16$WPMOfZXJrkm}z z*H#g;KM&Lxr6FwM1J9XPiN3&zt+Q*G9f(gjh(V;XqwSUJTbQYr1rqz>cDlzk5?doA zFnXWo#@Md91+kee~KBi^>8rv4jzA5Evb-KLjdsKo;eTljbxnAz5S;khqx?Z z162-6zBLB3wk85s-OL6eQjJ8r?X}g0r=bc1-{Xp`JDoYh1gA=}TIJs^$}j_5n+~LJ z{&s6w?}JKkz~X)BwMvGxDE}YVHg&SrU??hevU1RYl>K37ZJ3maCN>c`e}8?$$+4G# zsB$Qh@IMhPSx^vmJ7HJ=J~!yojxWkHs3xY>XA{xiX%IvTy+)Z0h25?YB!3v0>N37D z5-P%@I}qVQZ1<>`?s1X~fP}7tXXI5EaO)0=!M^;Bxc|GTX$*#~yHe=lUF9gnAnB4d zQNnVvE7NY#7-7{Bm;Q=(;kDa5aaX|;58sy_a!R$j_$19(o`q~`nEus3@J`Cj0I&4; z?*HG60cYX5q1dtip~n&;lVUIwrU~cdz&%N^0-Pcm+SB#rgF>ozI``a33D_`dpMjxO z_zh_6Ly^Es|2tO*fq8#Vy^^&FE!wQFwO^TsZqYB`wpXTnkLqSQx|qMSCP z3!=`>dldMm>$+ziPy(n_7m@F{|KkN2z*T3K2RKu0wg$RV%B&W3ieE<|U%tWhJO=T& z3}{37-~VG#+dKd9a-}!QR zjc^bmIzt=Ndkk<{nVtXqSg4Q(5`_k38v47NP&0NQyOM{6Mc>Ly^V^|6K3Fb-)WkzV zLfpO*i}v(u%V=_{p>+UIKyM2d;ls2C$%6+@aT7W|Rr3FFVPuU$@xbX;*s5yY5Q=|_TIfM>*Hw#TGBM!Fk@&Jy>01eH? ztB-=oIUe!z#a{hmXsH*~goAgA`vZ3_HI*$>(&_G^kxDnMNWw^zr9 zzc;kkLBfxqC0Zz8u_}P%f~P>h{CE1Lp7aZ#8GA^>(T4itIvGm>HZ1NPcYhp587N(LIL3451`L}&0yB277L%&65fQ05ZB(O@z6MD@?!WZ; zWkurm`zwV>IX)^OS5E3`ktc0S zGy7_X(uPDNhmZfZCS|M zEV1tB1I;O5yDO_8hA9>VC9;2ns)<@VOzp(PT(!o?u=wa0^`%L{}x1fO1wmBS}F`U)@HP z>rKx{MmXf87`9KSMg85QKsH{sr`hdCotN;l-}fiO^Yw5sjAJ1};Y<>75lj+Fq%ubz z$M-UUP7j7V%{QjTeHqJFbF0jKdB{C(p~lLwQrx&~HCZM=T0ckUvq;-M6CfuA3bJW| zM}O^{pO_esozPvk^=aBHtwXC*O>H0cxy3X0^LEs-pOclY z;-OE&$-(l#hkF;6rW$2HFY<`03)G~cmgOjYt9x_5KHLqX7YYg@Vd8z`XhlBvX?0+& zZd1#o)}w$5$t)e(2x`;JJf0nZLNuN`cMRsYcV)BTZ#VhFA5 zsHqhV&73dQA8m9X^r&y%DwYqr9xbF$+{F8M<&rrmZ8 zuCMY_DB&Wg#37+}02-{u31LBi6^XAt^$<=n7qQeTeA%KsrQr(D5oPUJ5w@ShyZTM` zhk#Ak6F#|_ecOQlTr`MCz@I-QktuxJC-U0;d%JINL4_3uhK-6A|)zF3sR&DA}B}=Ab|kVgA|co1O%lEK{QfCihy(w zLGwtjL8OI5AZUQQ13vHjXA;_zGiqlY1BLC~G&Mb}5D=u)%rg9WOY5Lm`qq5pW22{!tH zB(&)asFs0lr^%Tsd{W|*J~SFXa}e;nF7U8|P^Ss><$VgUvoxe^J(S!yM&U?CHMI*w zW{n+VhvWd-5aq;E^kn}XgrKs?&7>rUT*&4CpW`~q@z<^jU;$&G1*a&@*zN-oX@FPw z_ioN)lQV)-hb9M~J3_>fAFA%dh8+91ANx@!(^_2^3SA?*Ixzug11&QBf5UL%P5 z@B>1zG4Erb4_6>hOTgz0h1&nNUJEoBJ$sCd-6LBb)Y)H+`D^3|19HcXgRlOd(Xp75 z&jy;V6D(E>nOe@=c-pCNvNW=1yP?Lz~SZ4V5naZ=jq;iH(amRpJry1G=V zJdBNmF;PFlB8Y+s98G@5s3HJ?z8fX{=!Y_ZhJDI@55D(L6#jiWyQlcq1Hw#M`A>DWBv+sQ`x_00Y1 znW-#ye(-jvsr%@u10fW^ee6c*@vjjt@8mrfn3jHdvvg<$8}fUK(NB+1(FjjI5(_y- z(MIlR_@$%ghB@5sk1_Mk=cSyRo;Q9nAEXWW#)&LXapyp3ua^sCbpKV%!I8UrKK5vg z3)VOWbCHXo2A}m6IYFO})&#)arj@dbIvyUaufY1|hx6g7!W!c+`; z;0uJYlNe-2hpu(4bDVn`W(PAEU9vNo8;lf`!)<3B*VOI`EfG30`K!0yTsnRE>b zvexAw`>2trk^%q~Q7rhQtB~IxT@J6|7y-idjX+Io8At>vh5YubFe!}qGgVFk@@^~) zXU<>20zUxO=L5=Wzu0(vfD8{0du~>1l39m=VDH03{O@MilF{#(NG4|zNVMK%r9>GZ zkLK~CcW<{*u}rS-9}NTRH+H*kcg7bKsB9QFFpBy4D13NtwD>~YVg`u zyG=mh`~FNTNUOP>ZjWJj0hWB0hrU6e;Is_fxI?f9T}1|}{aJr+{4kg|a3=gwr0KX( z$A3)p=n7P%)$0u)T44J;sUlqBj;SsNPL1`$PCY%n3Z08&_}5#{$xGjxl>p^L-6;_t z0B3s}0^%TFis?H$I>d+lwpXow4!@uUs_Bpa`F0~+a?t>`hX=|;U%-yV_C-^(tBZ^2 z)vGa)*9{FUP(< zlTY>NvX#&6nt&L9_hG@D=>q%}AXmO-Ykn&&q?6t9Gk|N|y-BB``Pg@6FvJ0|8NK=g zFgz5n-(`CX7!(?Tw3J9BB%WiJr{P6Sdm}JKT&~EbjZo+fvouPkb40-JY65o2KLB7r zu2*~^q|)k*OG;bRN!BtDUWMe)s{F}SxJx$)8&YrdGL5GY4lSOl^Ky^`D5Ig*b5;16 z%(Y%;{c3ikMPGU!p%U@_BdBd(V&-ItCCyZ-|5olD7yI|9CdlrA`pZCmZswZqq*F2Eoa6Fzkr4ZZ_$R{ z;eTEPtPwrheq2mwLq)W@vt(UQKjKZ5Lre2Kz&w>?u%YiIfo;R((S={t@7H~iVjVS& zK3WEoOqv}^1%N-HfSP=SMP^|MkFv0D$j6Kq^9X_$92_~*mjYIQ{FwUi-sO@QGJNM8 zX;ds|`Z7WNfJFH6d)H}!%Vi)(1X34vuwOkaZ~!)ap-BFcT{Uok^!u(f5m5R3|J=l6 zPqaid-B%*0yRt;;sZ(o6_6De+w=Cj`WjyDLOfs%@`4!D+?@c1kKVckxH#%Gf73x~d zbntAX`DW#v+zb-^Z8`=7_!R?!75TuaAn$81frFlW?9<2(EFG60a4r08=;!G(0bj~X z0-A}o%64(jE_mehFIipgRW6fjA=O5TTvhrNU>orLZW2I_*?p^#?2G9G@shpkTL0^- zLvMAAe)fhQU%qP|ML%o5d$2nc=8PgKyMJSIWP!hzfJ~@ph+>mU8lsB3 zr_g%}siv(3-AEr&)WrubgN>J5oXRW6?r8FS9pU2ogj5*d*l_HlaI!uY%jooz@vKwM z5G6P$z!A~%|Lq2^EFJk1(|*92n4AU1``;Nc+)Lxc>UiA~U2X}0JS-8*5Bzv-{bK(x~1Jn4P|}rfysBUHGi?RlwR9c?ocLm8Os=Y8MUxfBPEqfj#{9Uw}yV z9aa`EEJ(}9!#^yV+fg5tv-?<^Vu<%5m~d6)R9b3fdc$dzIrE}LC_Du%3bmt)5_A}= zTi^s2z-Nzsz+#@}xH|R0#^{P!Q=m@}X|t=HgW7&EcCD~IhRo7?^tv(&whA(~U97=} zS+%33))C<4x!%Pxax?z*YQbr8DE_VYIpbA^f4_R{L=@oZzyA;Kr3V-PdyY+(f_dZ^ z&rp?39m`JB(($%j6))M~>0Aj5gEsw%%H-g+x_iSB`kAsGE}O}{eSbcx)i2$vvPK^= z6Kw;&fTY^mS~EgdXJK2X?XhMinO@TAcE-t;W2r=mA z#!tnir6VAm5cfph!3NCou5O$}jZW4B-1Mm@jO|N~H2{^_215!oLJ%^%rpu*9c`4)SAW*VPTlBydP&6$AMu}n& zkClYx6sVm_$Z9rM&U1y#Z5p?WoZ?lx#W-I0?gQDoAj6$P zIqRbtUA&?~M+Z6Xe6CU92*0Zor*_g4mhA%Pj3;-BeI~b^RQj ztF1U7Sz`FH?GDKXt!ln zF(bdhXD>7CKl{Lz28#iy#I1Zzl}W!;%um1@uf=lHFsKvO(Zv^LU}@){?v}&SlP-$z zY^VhR<7(RrY{I(VjrP?-ek*OQPv(N&>S~g3k?t&$0plK~&nE=cLlFmiJAOSPnSmYH z1GbxaBgL8aIefGDM7~?Ls5)6a>h1K-TojX<*|W+h0{YR$i{1o>UYgC2r>N72#D!LN zPO?DhY+(^`Vt$3@eF971wtBNDEg^?a-aILWuRtwk0x&BgMWVX67Py{T+QT7JS4s`C z=LkK~a*_yB;A-0WUQ(`x%y6I7{D1(u5u-rpRP&wW#duuj&9f7ka?-X!Z7TUd_!Iea zv|I2|F)j?^Qx{8m-|{j_LjaOjinr?|J;58F=6XlZ&@dhF<(2eD6mJ2T#ji1UR1fS95OyS!n&_XLpC3T428HtlfOwj* z+P+j~C%U>x4RgsC0pQ!eIOJ-SLeGSO3Gse^mV7NuH(_Fi)^C6O`#XK?QVn}NOfMTOQz6Ya2I`|(t|Dn4xx~;{Mtmr z8?~175`0skXqUL zaR78Z3`VOVVv5jCr)eu|{T4YD`o{x);J5WybDyZA(Ygr-1eV6VbOP1&S*oxSwPui? zc)wna+d>Z2xqYqZai`WiWsr3~oQ#wr``h=4xY@?O@f>l_h!dgA%*w%xn?XGSM#6Q) zoqQh>IE{HcH}f?+QVVsO-aSN?Ua1p?5`NsnROjg+vuqIJ2h6DTMU8k(H`D-In2Ev~ z=;Ee6ERk8|ZuS#GY%sG5Wo)21mNApH)w-pl)fTmOKtep&3OZI?A;(32gRCvCV z;k(QfA-2rJ|HP)>i8h}bbAg*~LjrDn6LXPUcfd3R+_`$4byfm1VJg_;F*9wptnh%8 zp@EU$2#}&)NXK#sxP88>A#WAw?sq*zGkE(|(?g`?TfBAK5>0_rzE;zhj6Z_9Ule;j zd&#Eu?Jt)WOyG@kl=MCY=fga+>2O^DPkwIhxNSZPAsesHr{liV@){7UsAdUG2ZvBY z+r@Wml-zOY=+===%5)tiYCmM0E6h+Qzf{0nOd<%_>CGe#~`+B&kw00 zUEw6@hFeIqYBJp#vu(D(hgR6R+A79lo-6PvGJWOGk?HY30IBVBz1slEDfm-bbe{?u zDXSVkcD=3>ViPK%1)Tjl8^rlgaeO~Ud6UL89~A7E^_PjOa)sPliscTyHNVG%=AZKH zrjtPbiMjVsYKH(E*W_H8spmb@s{;924eQ>J7>nDl*}b0g6kV8>~eBF$|jsnykg65)xwN56c#fy3}DPtm!mLObRGE}kO0EFop(ubaTh?uFd}Qf>Bv zu4Oe8{T&Kz2ldbYXdob}K&T93$s*LHa7|7z7 zCg5^}CxF`2p@$mpr0Jz=`jb1`-(=iyZ_)kZWK~&`G00>S1B+j8Y3#{v5VmrO>jI7LT%i>+OT7I{>+DRB@vPz}oSx_(U@)aX4{q`D_|S znncSw816;owC}WQ-G+&dbWp)lXUQp5qw0u%K#@GV#hF{W=^?Wi)1rrH(g2ebNk6H; zVv7R9Q-dt0hG-L)F9CCFidf-Fhg*%ei((tpmbj-V&v1?76w+Yb{!4hh7fjl+6SIrlxyKwghdaX z)o>t=Oy^v?e0Di*8I+KS)J+l^yD{vcSv%}m$K$iCXYRDx5*_8!BB1i-Q`TG|eV@Yk z`V%+w5HeV-Fe1#6rsy0>h|OVx;4|A2vdy58nI3EWp~XGadp_h#CBy=cWHhgc&Hp|T zv{F@ZpZfGk`K{F2AFB)G{ov0py?m!M)9+IcJL=@CxuI6J>Jwo~BJh3@#Or)%JGbNSS_soIL}CUGUX(-G%-P%#iWPaz1k z@)KY~_>hO(SBe(w(jKPL4m&0?_`;&y^Ve40SmRoPqEHD?>GsD>Q}KB@po?uU4=8+M ziX`10LVNSULXQ5f{l^=g)9B9`lVoGept1 zb$Qb;rf#UrdYuymexybP9?I$K#PpL6CJhY9Pm?9xGQVC@#u-LgMQPiJ3;k(>6SFEN zNxH`Ot=!w0l!L-Y&|~89`QK7vhb`ejD-u7H7PnG=sJaDyl`fn}vN;8xMlwCEBC)nP;y0O(#c*a!+QoTcHccct z_n>SqU>u6!{F9COJjqE z3q%kxw6r4u6hbOfpxc*nY5q@-(|JbSn$zBmyD3Zc;@gNyf+f;L6aC>{DdG2O+n7{s z@AM8F*9N^Wp9;WJN@EyTsO6~&+-N!NV~S(pXR3TgZH)Ox5|GQlsTFfKfcxcMp}H%~ z#xZJgV#4gksk0)eOgD6nery*gkqq>ZZMnY?oG?XsS#uS}s|;Txgb&dRtsy>G@ID80 z2L=4QF5M`-(J_A?SBB8Fm)mZJR(YnW0yOpJMbE${1FzSPdhk)g+fdHI>{i7slL4yG z;v)a2vpM&xVvi}Vh?g~ydUIm;Oz9DxxYu9DEbU|573$wvRoTh5WXxOMDhyDBj$2|b z?q8k_0D138TS8;#62_z7wCWrWz3iJ`Jfc1RyC%EUVkHxzrYmjn(`v*D$ECvMtjMtw z0#1mV*(KX9qFE0RaS}{k9buHDITPx2gzfc8)g1fmfYM!-n~NLys8kmUzOc~1o59`lP=2CU_Zycl2D{lrNBA6lgYRX!J;oY*fkgg{ac_DjEZ6Q%Q9$#`8hzct zT#MrR)77(SJ{n(REI0ePSEoUTo76WEd;RMFSPj-wCfJ+ULn}XgTd?K~oo9B_0)uXs z>3|_Fd^_(0G0{`A&UJ|ZsS-uzQhRf?_@5|#E>c3ekXUC~^-zgP<`Zf;WYV=hPat#l zdr!u6{rNlS*QJpIpE9!~z1Y4EKK$Ted8xQ!3vP1t-fiyBx`a_>PJlzVhLZv2_M z9e1D^od#C_ngklKKTh)i4&5PrM&8=Q%mc7HKy#qgd7XZWIfYitaPe2S`JQ7nEMN0G z_bEI&s_VC3)$zqr70>zsbo|7&$w`uaxba1_BTt%I;dYOT$-d5uJB?UtZH%>((Gu+?Y`@NzXw%PtwUV>mB6UO2 zHok<4BhIxT#KNAQIBRgSsii++oG29@TQ(npjSa=X;@#Vc)*p9uWQZ&`i}OCLOg~!E zz^P~N3~c3B8kl^>o5nRJmF$%nvM~QLQh0&P!GQ1Eo0F^InY3 z+R}?lDR>qOueaAp&)=(#81mvGCQ_&rK;5|(EXoo!1?wN!lx9eFM8`WOEWEXw`y{dC z!>P>cd+EHuJzsrjenx7ff~FUUI89({IgE9ED?Sp5fh=oudL(FaSxn|g^2yg<^Q>jk zYVf0X`y+N#L`ARqj|BEAL0P3o0`;#5@cZUy32-PFbt9i8CG|0{tqD`gcO*U=OeuY^ zxO}l)1X*gYT3kjH0(DFxVq$&pmQF}YN2Q`FLzS;5vd{=wI?Bd*LsjNk?GrUxJS`vM zN)bm+)Z0D@E=bkeXC)S+-)=fPzf4h<)_||W^0keB32x`mefFn~O74SQ|J59DRZ6$+Z3z56oRfCaBh zQfUjLclw8O$@8SvQ&=2~cbKR9tX$4;@{ds+M72CqGZyEUDj^|(-$*F^%~0GrqKzkQ z6zztOyTonp;<>s#21o2cAzJLB^|?`%0RLcxi=6E**Cm-+g9I zPpXrdqUnBVCSP3k;|+i5Dtn0i!d~W{mf4T)5NA1PL?ClonAhAus&n6__F!D8%wmgH zK1F(|C_DQVVK?i=(H});k+p&0i^-`5E0 zh4CZ)>4+DO<@59m4hfI}p}6fz0maNWEAQMwI4Rjv@6nc|OV7ibU7DG_na?RK@KFxk z=vOfk!7;?hRTpJPHksfckS3N)6>AaWdIa8faV{>6_~|1PkF+_0b&)=<(#*H<%$L}X z6^m?aV;G{14W+C%8r2Pp-`!-eTPa#>d{7qR+Q4SKhR2d)fCB@p$_x07R#?7E^H~BU zedu&X5VZ12k;0=O?bT&#T>pHr}R+B%7>V^cXa;xu@SM$j@QEA_>bZT9X ztTZO*xX98i%emcDuWxhd!g1CvlF*_kHpfk_TN(=uSo-JiYeg8LZ0DDby&P(etJtNp`(yI|KGo3a-7F%6F^t_7A+H#ptgf zkBmSDIaEBUM$|1d4iyh0AblymCsq?W51I3bP>dUrX-=wni?k%-C+6Hw!_0V- z^Rjhj=rz^6MUw7au5MH&-R@$tcS@o7>X&4;KLungH_Xf1Fy@=z^fb!6A&<)(g*j9* zzTT!87ESBm7MV1>tvTZ!!J_*{mBs4?a)<#cWK=|x-eLBSS)HeyNIVH#gYBKZ;B+o= zOnR!f`wv@z4ZvB9)Bj!$=%|4l`H@<|znOe~W;PIJe}215{|G2_ xbVW4)MLA+R{%?HW1SBv1UjzRyv>+}_+rrL>&E=;i5G*>T2QkvE*1jF_KLB>8YpMVM literal 0 HcmV?d00001 diff --git a/imgs/sigmoid.svg b/imgs/linear/sigmoid.svg similarity index 100% rename from imgs/sigmoid.svg rename to imgs/linear/sigmoid.svg diff --git a/lecture/linear.md b/lecture/linear.md index 6ecb1ef..3dcdf15 100644 --- a/lecture/linear.md +++ b/lecture/linear.md @@ -4,19 +4,18 @@ Linear regression belongs to the family of **supervised learning** approaches, as it inherently requires labeled data. With it being the simplest regression approach. The simplest example to think of would be "Given measurement pairs $\left\{(x^{(i)}, y^{(i)})\right\}_{i=1,...m}$, how to fit a line $h(x)$ to best approximate $y$?" - ``````{admonition} Do you remember this from last lecture? `````{grid} :gutter: 2 ````{grid-item} -```{image} ../imgs/lin_reg_1d.png +```{image} ../imgs/linear/lin_reg_1d.png :alt: 2013_FordFusion_CFDTopandSide.png :width: 80% :align: center ``` ```` ````{grid-item} -```{image} ../imgs/lin_reg_1d_distances.png +```{image} ../imgs/linear/lin_reg_1d_distances.png :alt: :width: 80% :align: center @@ -36,7 +35,7 @@ Linear regression belongs to the family of **supervised learning** approaches, a 2. Then we need a strategy to fit our hypothesis parameters $\vartheta$ to the data points we have $\left\{(x^{(i)}, y^{\text {(i)}})\right\}_{i=1,...m}$. 1. Define a suitable cost function $J$, which emphasizes the importance of certain traits to the model. I.e. if a certain data area is of special importance to our model we should penalize modeling failures for those points much more heavily than others. A typical choice is the *Least Mean Square* (LMS) i.e. - + $$J(\vartheta)=\frac{1}{2} \sum_{i=1}^{m}\left(h(x^{(i)})-y^{(i)}\right)^{2}$$ (mls_loss_simple) 2. Through an iterative application of gradient descent (more on this later in the course) find a $\vartheta$ which minimizes the cost function $J(\vartheta)$. If we apply gradient descent, our update function for the hypothesis parameters then takes the following shape @@ -71,7 +70,7 @@ $$Y_{m \times 1}=\left[\begin{array}{c}y^{(1)} \\ \vdots \\ y^{(i)} \\ \vdots \\ Connecting the individual pieces we then get the update function as -$$X \vartheta _ {n\times 1} -Y = +$$X \vartheta _ {n\times 1} -Y = \left[\begin{array}{c} h(x^{(0)})-y^{(1)} \\ \vdots \\ @@ -93,7 +92,7 @@ Computing the derivative $$\begin{align} \nabla_{\vartheta} J(\vartheta)&=\frac{1}{2} \nabla_{\vartheta}(X \vartheta-Y)^{\top}(X \vartheta-Y) \\ & =\frac{1}{2} \nabla_{\vartheta}(\underbrace{\vartheta^{\top} X^{\top} X \vartheta-\vartheta^{\top} X^{\top} Y-Y^{\top} X \vartheta}_{\text {this is in fact a scalar for $p=1$}}+Y^{\top} Y)\\ -&=\frac{1}{2}\left(2X^{\top} X \vartheta-2 X^{\top} Y\right) \qquad (\text{use } {\nabla}_{\vartheta} Y^{\top} Y=0) +&=\frac{1}{2}\left(2X^{\top} X \vartheta-2 X^{\top} Y\right) \qquad (\text{use } {\nabla}_{\vartheta} Y^{\top} Y=0) \\ &=X^{\top} X \vartheta-X^{\top} Y \stackrel{!}{=} 0. \end{align} @@ -109,18 +108,17 @@ $$ \end{align} $$ (lms_sol_matrix) -How do we know that we are at a minumum and not a miximum? In the case of scalar intput $x\in\mathbb{R}$, the second derivative of the error function $\Delta_{\vartheta}J(\vartheta)$ becomes $X^2\ge0$, which guarantees that the extremum is a minimum. +How do we know that we are at a minimum and not a maximum? In the case of scalar input $x\in\mathbb{R}$, the second derivative of the error function $\Delta_{\vartheta}J(\vartheta)$ becomes $X^2\ge0$, which guarantees that the extremum is a minimum. -**Exercise: Linear Regression Implementations** +#### Exercise: Linear Regression Implementations Implement the three approaches (batch gradient descent, stochastic gradient descent, and the matrix approach) to linear regression and compare their performance. 1. Batch Gradient Descent 2. Stochastic Gradient Descent 3. Matrix Approach - ### Probabilistic Interpretation -With much data in practice, having errors over the collected data itself, we want to be able to include a data error in our linear regression. The approach for this is **Maximum Likelihood Estimation** as introduced in the *Introduction* lecture. I.e. this means data points are modeled as +With much data in practice, having errors over the collected data itself, we want to be able to include a data error in our linear regression. The approach for this is **Maximum Likelihood Estimation** as introduced in the *Introduction* lecture. I.e. this means data points are modeled as $$y^{(i)}=\vartheta^{\top} x^{(i)}+\varepsilon^{(i)}$$ (prob_model) @@ -160,7 +158,7 @@ $$ (lms_optimization_task) **This is the same result as minimizing $J(\vartheta)$ from before.** Interestingly enough, the Gaussian i.i.d. noise used in the maximum likelihood approach is entirely independent of $\sigma^{2}$. -> Least mean squares (**LMS**) method, as well as maximum likelihood regression as above are **parametric learning** algorithms. +> Least mean squares (**LMS**) method, as well as maximum likelihood regression as above are **parametric learning** algorithms. > If the number of parameters is **not** known beforehand, then the algorithms become **non-parametric** learning algorithms. @@ -174,18 +172,16 @@ $$\omega^{(i)}=\exp{\left(-\frac{\left(x^{(i)}-\tilde{x}\right)^{2}}{2 \tau^{2}} with $\tau$ being a hyperparameter. This approach naturally gives more weight to new datapoints. Hence making $\vartheta$ crucially depend on $\tilde{x}$, and making it more non-parametric. - ## Classification & Logistic Regression Summarizing the differences between regression and classification: -| Regression | Classification | +| Regression | Classification | | -------- | -------- | | $x \in \mathbb{R}^{n}$ | $x \in \mathbb{R}^{n}$ | | $y \in \mathbb{R}$ | $y \in\{0,1\}$ | - -```{figure} ../imgs/iris_classification_linear.png +```{figure} ../imgs/linear/iris_classification_linear.png --- width: 500px align: center @@ -200,13 +196,13 @@ $$ h(x) = \varphi ( \vartheta^{\top} x ) = \frac{1}{1+e^{-\vartheta^{\top} x}}, $$ (logistic_regression_model) -where +where $$\varphi(x)=\frac{1}{1+e^{-x}}=\frac{1}{2}\left(1+\tanh\frac{x}{2}\right)$$ (sigmoid_function) -is the logistic function, also called the sigmoid function. +is the logistic function, also called the sigmoid function. -```{figure} ../imgs/sigmoid.svg +```{figure} ../imgs/linear/sigmoid.svg --- width: 400px align: center @@ -270,7 +266,6 @@ $$ (heaviside) derive the update functions for the gradient methods, as well as the Maximum Likelihood Estimator approach. - ## Further References **Linear & Logistic Regression**