From f819aabfd4dc8c6e2caee09a3b2875cb2a719ac3 Mon Sep 17 00:00:00 2001 From: Philip Conroy Date: Wed, 23 Sep 2026 11:01:03 +0200 Subject: [PATCH 01/13] initialized week 4 quiz --- book/2_potential_fields/.DS_Store | Bin 6148 -> 8196 bytes .../labs/week4/week4_quiz.md | 77 ++++++++++++++++++ book/_toc.yml | 1 + book/credits.md | 25 ------ 4 files changed, 78 insertions(+), 25 deletions(-) create mode 100644 book/2_potential_fields/labs/week4/week4_quiz.md diff --git a/book/2_potential_fields/.DS_Store b/book/2_potential_fields/.DS_Store index a015d6de37e54e8762e72d4c3f99d74644caecfc..072a02beb1bb5d5d9e93b9989ed2d60d0a627a85 100644 GIT binary patch delta 176 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aMA$hR?IH}hr%jz7$c**Q2SHn1@A zO@7ZJw^@tj0@LJGEFMBE3^@#m3`q>dDaFY-N%{FXjFauzC#&%>|8Pb4sDo}X}T Date: Wed, 23 Sep 2026 12:09:09 +0200 Subject: [PATCH 02/13] initialized week 4 quiz --- .../labs/week4/figures/simple_ionosphere.png | Bin 0 -> 70277 bytes .../labs/week4/week4_quiz.md | 62 ++------------ .../labs/week4/week4_quiz_solutions.md | 81 ++++++++++++++++++ 3 files changed, 86 insertions(+), 57 deletions(-) create mode 100644 book/2_potential_fields/labs/week4/figures/simple_ionosphere.png create mode 100644 book/2_potential_fields/labs/week4/week4_quiz_solutions.md diff --git a/book/2_potential_fields/labs/week4/figures/simple_ionosphere.png b/book/2_potential_fields/labs/week4/figures/simple_ionosphere.png new file mode 100644 index 0000000000000000000000000000000000000000..85559b3c13b3c4f166878e44315128625983cdde GIT binary patch literal 70277 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

wg|*I-Mg^3Bz^WN%?^1T90$7{oO6 zZHNM(uM(+hIZLh0RrvMpwhl9VOPn?5T0L#JHJoepG@mj+9)SuJHh#5;o$&|ZxBlJ@ z?6|Ke&0@q?-7qP&!W(f;Lv{r!F-82-7y+gwcsMBWpl6tT+pgxn<XAyKpIdU}GCWCU}+3ksH zR8O_&hgCNN2B=c0KyUNurk#QW)2+LJnAV{B?c{torz8arNO!JDmb#H5eDsisTG_8u z%)E1})*XhJZl`hdz>;}D{I6KjN0V5_ERRuqHsg{CVZO=wv&78fe4Yib_k0;JM(n_H za6c^B##&qaniO3y%oPo}`)gTukzH)A9GPB$*v@q#wMf9@#DX7n9Us zcdyKL#<7B|jQw`+nd+vLc25Z-+T&^jg`~L_cpolAyA3`YE{z2Tq*C{@#0N(?|V(FPB0B8#km6AvgP(bR;!k^Az; z*l^%lN%aJo2X#Cx$VOryc`I2rSb$(1$;%ICHESVC3iJ9_ahXO+D|SC7+JucUtb)4OcLFnu?!Rz;cVN?(t!X zx%(s+bm<*9j@wx}NG<0*zn_D(V+K(9RgfX0Zh{E&6P5Gd;Rlv=i(j}Os&`5cm-N$CJ?+4kqJbh#^!rbN-lWzQhZnL&H zkW3}u8mwwd{(oE?9Q3LWox`NWs4^bweEUVf63*<-5rUXi_GiM!W(gZHv7wdw*`cA8 z6Is`;0#@g06d&4;8;z|INJ&il9YvkgZms=RZ|3_uY$^~`ANoG8C~=$ecA~G+rV*JqH952rHdlAspV0DSsR~hj^fL4!O`Da{`Kl<0pKp)2`8r5;pUN&o_ef0P*_&=q_85dPHXxAa6 zJ);8k1kamcFXj}gLFdMsvj-eoVy z4`k>x?aB;>V1F9}AI|(Tisx*)(8|^(pSAp&+&M-7M*^I9XChB-p8Joke)L?L;Lta- zJOv{#U~3$1cGFpcudtb4(~STf2qs}Q;1R~{tWmOoLEpUWS1WzyGgdKzgJZ_>Sq#Xb|uToA*rh)!#2?u8_9=dRI<#x;Pf5B$gkgXG1K)SmP!m2}3^ zLRmEGsIihYM}?^(rS!PBo+AH15vl12HDW&L-I@3>`AdpHs7Nv3`DusqIGe{_rNQvP z%B4HSy_9%MPj7<59K4h#-PwWZD$9U+U^kh(Fv_}@$ zy5-rYgAjq&*rScuQw9C+!7r^`@JX9&R{zHLqFxX-cSiez3+Du!-#KfXa3|`VT;flv zP{_<4r35om|S>HN8j*78xSo!homnE~Q1GBC}){KE%b;yA#wcL9| zwg{*jl5qxJ+YRH+G&?2u47t?`GozXW;>~J6cl%}3M1ED^#9xff$4@3vF~C@pPD?Qg zosCou1ilE~2%KWS092sL!-t<&U~}UDv81xRu!`@E>PW-(b@E|3w@^_bOA+=l2|;T* zr^4m&a)DJFjeid^c2Ppj-)9Li9tV9}Ti#56*I*)uNYc++wyVLN{p8Cz`bGo+jyY8U z4X0I*gNgVSlk$TuDu*%qw&bNp(R28p78n|r`F61f&as(C6b_my5+`T>Dt2tEW~MI&X%Am^wcoWjz0N$_;bBUUxA^;cSoy{(~l z@?XLhmEH}jz3XAi)L3V<;y^JidNZZtY5LLgWy_uk&x~LyaDilqjMv@;I9{Uf z$gU4uyw2P*)F2)|>}aiEZ_rI~Ry~~bZ_4n7%oa^2CU;D<_MIK{x8jn}PNGpe_~zIQo&GwOWOi=C+$`}v3n{fp%3@vdnVn&p?Zj?kVBrM1nNsBl2+ zm;cAqRR%=a1#4IqBt%L;xF!3lJMX)T z-@W%Q%X?zZ%$$j5=Fq0?Xq4i1=uV3~&rth+8s-_~Q^B>Lv})sX>zlFweLCiv0`1HG zw+=5)?VK!{us9f|67(G(e|iEYmrfgy^3rmypLK2ZmVDZMFPNhsc#;Yz|2Y4yU12AV zM27xbXghwtk=2~}fbMaVsNGww>@PPrE;A<6r&qd}f0&350t8b+o~LDi$+r`BN^Z!Cf1OgEls@6}MN5;Jkz(kT^8 zI_5BKh>Ww;y_{c2kCrqt43zjbu{JSff~XEhxRsC|tn9>dH=U#X#I{vWjx7Z%7`MA_ z+`LUDl{&d5K2)YRsJ7=b-=TJYeSEj6i+)v&@`QoXOozl)B6P(|U7XeLIC=6}K+P4q4xU5)M^qDR?7w;e63GmdLoWsHX zJwugO;=ca$pD~FA*6>R$Tg$dJJ-H@vjp4BbuEH9xA$YUMehJ@uJe%#3Pmmcbew854 z*(y89?3)jsy6kx`X!S^Uk{zu0nkS~+-`+)j@v{Y>yRg|D#hUdq3?BEGuI%^cH3oG< zWT(Tr{qSwp_Fww%trd;N7(vR1-zn*W&CbQ;%;&; zW2W&cE(u-U`XLYwNZN%H0(^G6FyIzqxTa|)S@*PdQW#l2eu^DuaJ1#QShSI{TsrDy zVTjQ!LZlX&#gq6kt%B8abWZzkgUV^aTfW7UvIPJYnvBu5d4X>qLXZZaBrCayk_sf; zP{jXvNbJ({o*Csb5<*ml3>cEeyty7eRUuy!NprTiW~Y*A^E^&1ZwbLi)R^LoA8Uto zrAGaJUz)qcWtXZ;Q!uptdRAeGm;dZBs{o9DG}v$Yp7+G#~lpD_Z8(IWvn3 z=%MyWZRq;#VujZSscS)37`tr~!%Rg4QhFHE9^CP`McoDUjWmUq0fCz>+9}1U^t=C# zIFxbk`Jh#(7q#10ro(Q=YmKCrGlx=KQga;RJeMJ3*YIygMKjcR1)`G?+7A1)Ij8BW zh98?6jiwa8eAV}4hO=)NS8l?5;%t0}3*I9jPNUR!v3Yy?w2!Nj!ZB~G>ln0m#snNO6}H{n)3Jwds3a_vXO${G7S2G#=hW`xw6W3L>m@Fi;(;;*F;p^i~^0U z=s>zki}AW9<5X_Z&yNF8Pg&2#76CGvGhQnty&O6aNgjZ>=B!V0;U25z$ql91DVvOB z+bma8eGwo0)ZR=E1|m@ zd40^QUo>oE)ylBo4BzOZ3LraR^c>h+{EI4&cXfJ%^j@E{YqD#1M1IAZ@!?yYxw@^l ze3&X6@h)&L2&iJQQn9`_d5Gqzy9rduz#wZki>0sQYozxX;hj87lYjzaz|5`^W?i3v z&BmI9(=d!(yp<=H+pM81>dwrSooC7DGPJaS2k&u39ywvuwwvXxIew{sSe&WNutS_o zT)DlrlkYw@+VI|$mq4%Ym#NL!JHaG@=877E7yfRhHn1o~51?j?-%DMK?V&RULSe>Z zCBfQfY%JzQnG8>DeCBM`-JGtkOX=4gV73uQ@8qpuDhj3X@7&AAy|WngReMpPmLPKL z?X9CP!bP%7#6=`u_BukeT-2yMMao;w%wmR_FR&F|MozxK@uvWmdb#%?By!uHJt zw|MmF-~@l3q{-6>p~jTPA)6HPDL&ROEAIrSHT|vptw%q{y;~l%lz|oeJ}XuY6t6%? zpd17e;6A}3Ily%+1MELp1L_?ukD2TP^Y5r3Q< zFknA7z3h0$BlHbHtS!Deu-SVK9f6F8hm131<}VDypxkm=#ng5cae14+e^Eu8^zP?M zfWHw};#jEX5R4VzSyOz)EMt0&E9xTeX7xljruxp1hHQW(M%9+47;n8X605chWB)uI zb4!kJ_s~OM9*Ok}-b)2=Q}qa~m&&$2w)nM^k4SA{r6x1pqk6-`*lGKXMkHj&yv<60 zVW&ng$))-A6_;pZ&jQga&p78V*}a;khc6vT5WJiMPBE=|Ls)sV&N|0tr^IKkn#|d> zDTA-Z^))pPF$Dt0vkmiM=nWF{1QnL0ZLHLk4ed-BqIRC}q{HwY{JFKg4 z3J#_)puWwSF}tvA+3NDW<`t$G+;a6q@2MhIEb`)&=hwMjV}g-pRpi zR34-NqMf3InC8zMUb?kv>N?faI9C_HzK2#s(f+Bll(YUNFoTTbSbds{XsP=_)I|T= zI^62lbP-KV-pZ*>uQPqif!0@kkWj2OiA9Hw)K*iSRm*vJ)l!#3{PIY!-;VgLB5Zg> zY^T3|LtuO^5g?bM3~f$`M`_;6+$}J3W7l<>-H^(0MD|cVVlxlY9;}wrrr!EznhJ~y z3V{XN2<<~*4VyqH2|j`>4?_X_H_6I*$lU+prZ8L2a}L+8A$htJk%~=;OPfZoXM&M^ zhqyY|hWW7c2Gy-#uI;)Uwoc3nX!sFGdxy);7*zKLk7eFg5G@Wgz4%xM;2%HV4m>A) zM7)}h8~*t9ZPBJgl=W-PYo4F?fSuW3det2v$q1^8>rhsPq-Oj9SdSgwU-i!L7?6IGhZakP8$7N-bB1cm%U zG-|}u(XCi}l)QH&neO$NrbKq3XkyCv&MYJ&at}+t;U5j$WKx^=5;(iGDF*tp%Nh1bzCopFT2+Zg~!!lzNhxe*J{wBUXkWhJu6hThMV zzgRMuB_!t&nQl{~T0fbO$jSxz<%QH_@9RkS_F`Hw0;+%~v zMvXzd6tkydapJ$czh`i@%Rd0jLMS~ZWn2h#aP^*{;;g6fflXOMi_w|i@|;OAU9AUL z!~ZrRLzRzT9LSSf0LNtl1mSddNYxJ z`NxLD9T`q1ZT9k&<^hPxa_BVXx6#0#3$Zr~gNbou9!EL|N-^v`wLGws^GHu$-;MDi z-tc_~%yAFI+NAd*JCKM^m_JN$S)r*XWTfZ0;8@rjz58^ws8~@4_>T~t;AqvgxoZyD zT?zV|kB}tY8qGwRG&onBM+*K>JD$R9p7B9fE;Y16G3vFy-|}3^&-{J zbA)!-kfq%u+c(E9-4!&tbm;Q!H+t^sf(f98l;!*Q_|InmV2N00p!jFS$ZdrtQ;@WN zlz7o3-}geV1Y@qLNnGno*2Ys$INY?X>??sG+-xX?nb3l&?wsS~S~Kn_WX{4a{H_vz z`NjONWf4hQ%Yk=I46xH4#d2x$W*3^ZMB@$j+GTHO#>=m`+9Pynr^9ygA~qJKv%0J; zLzrNTs)rNum|v+q_991{b-kWURj}?&cxqO9CTeZs z?fvwR6um3281UQg7bg;H^#$ej1_L>wTGQ;uY@mfnJV4uj@NiAJUMwTWMYjC_+Lx;G z4o3`|o=vFlO3SAby}JDc`)RzzWn$f#`vCRWM~&b{?>TV5jgY|^ATg&1q1Ds0kWBwB zWo`a*hU?jorBpC@a(lnOMr2~JcM|^Mvx91e;;>S};5*Rvr@+9$TQtG@t>P=cEu5AF z0abuBqk%G{4cD9DZ)~?hU7oT^H`b$Xh4(pN7%#FnW)}hv*GUssO3X>SsxYhu%eRsF42JLn&HY89j*uaTjGn=gvdTT@U%x$Ln<& zxbnVS>r+fFj2t4)%o=E|Gi9BAhcWbk(s5&q|9DgX%KB&lXEP98YUF{-%edP;`qr%n zCnS|i8cb|)+76-L4Ko`ob&qjE(Lk9@i0+`i(b`mmZ}-CxbpmWAU+)Nj2~vfHB$(B{ zHd3Ym+BQUFuqdb#>@4=2su~y3U$Zc7%PnS0K*OUs*TfI7J{O8HBJe}MjbvTFVEK0w zeX6xi%obhspGupEZ7SSCbYLL|L*3d7lW%llVt>-NZp#qofiSDCJEHn46Dg+q(7zJJ zA>d{6ka<(%%d!V2^2!4EQ{f61DgXwZSXLZ!jkjVhCSxCE@qstW4*t3=kQN-t!z}qJ z^*5WNNAKk^?V)NvmeP(^PMMN;^zzEu+s{@^BRdO zW_cmS3o&`t&Q&Tl$Ad-%kH`$X9=>@!Q!EQFlw>T)w`t zZASpe>%IjQLZ_T3=&7TKsrTZuc2$P;zX^+fVEcFyyp_ZsvA@&T&9y14H`Fb{i)$0- z)hS}5wOVSMoi4X7h`38i@qxRZ&eyop_r-xrgD8(7Ff3W-76<%r^L24IQ-l?o_{_8d~qcJkNZJ$Sd-Pbw) zOxgI>qk~sjaEu2iT)2OvzyIYh6Ib7ik|<2>pc zB{V1EZM=FM-hEk=A{;k5r6ng_dv^%|CJ_vtD)JQG?oa8*^2d(TE^4A814T zNuFx&gmcJTh+uTC$qzi^T+W7{mP-i|%Advp2r$R4zoFT`z>RjHtzQ!Wno}a!>If_$ zqw|QRWu#ynaHY(Z`TlZ|CU#`M#pvi!|9g*eV?^!Q;d7{%nr^?$Wk(7eY?cmAed6F%xAi$R?{#FxhJ*yx>H3 zu|y8K(U#>dLjvZT<=(ec#@WY!HV;dW=$%|wx^)9YhY)fkg-w<~OsSw~WsyZadY? zdLmL~PTIaH7*IvYj#5K)mse^ser_cvTq?};yD(4xX8K@@o0N|W?U$Y~HEx%r;{244 z3ldQWR5S77MXD)~`b538d~YAu=KQRE%(Au=(9!kZHjt(#3iN=${VV_a=r^-^)q`1* zsK&>eTqLGjDPvY}T)}QL8UwXv&*i#c#V~iEF-~dBP>DO=E)`&%=%JN6K#ZgyEN0Fh z+ez+C#RCCdPA1Qi|-nN=+4N0UVg;6x9wb^l#)H5vHjjj$%$QYU2 zmnQj~zct@#G}IDDb^6$DNS;@BC^lHu@7H9zII!zDJ(ga^t1 z%lw*BKK>5oRCF~Jb95Tzc7+CjJJUmIe0^4r7Aqfg(~)XPJpkHCswvP(kh^#s){tT! z)N4DsSf!YERKLf^6sO*r{OxLrNL?bVd@0cF@BS>t&0jxQm3P*)u^n8z4f%&|8^2>5 zoRWj`9A%`dZbC(GWO!>~JK=ovc%YrBcpkQ1{Z|h_nGY9BKmRaq`SE=k2!P|Ax8d8z z%#x~D5&G;QrdMftm?YnFhiRgJm8GCWq3x^L@AvNCvZIgKq%7$GckwIM z78e<@9rxOIu1wKhI0S zIW=>7_?~nO8JC4>U}f*=JnUEE%4n{6M@=8-Gx!K(eS|Mx`|_N3zvD87m8( zVrXpE+6?7y4jDO?=-yU=CtR54Mc7pGb42EFN7i(6fS`ac=9ljh*%-z;!pcT~`IzcM zbD9vy;o#hfup87oKn>-40iQJuc$TN$-9|RAIWZZUw-1St^nBhFz+d#tNM+@E?LSxN z_I@X?^0zke!Y#j0ToisW<2)}g%@f7!Z>BP78dB3IlKx(0hIH;)W~VRAi1{c|$aGi{ z851=bP%3L^ur5uZjnC77&$lJ%VJz}DinxM>6CtC4w*?yhx-N3BPVH$FcxTY!T4lsp zs9~+BKsRJ=wuXli*ngGM_@$66N~YmiBkw zrSulL+Nf`zIl6q7C@>lL`m}6;ZsBKlYI;UuOC`>2{bOO)mbvQwkM}X35?LJEgp8|z zCPxFQzy5rxJoSBd9 z?#s}yos%*aJle7@rD2g_A$dgKD!xnBvdSqh#A);}c@*N!6%qYe>xBl3FWr2AK^Z5( zuqtj72H=$fGfiRa8PC`gRCXPVQ34L%rOwqMc(Lr~oj*xPuqLM~p*zT>P1Ij+o|uOJoDqMv4P z(R*j!^7nArZ{Hk9>JNGXA+_f~v*G04Ds%nxd}2J7h{XkeCW;p5#O;@ngwh_&< z8PmL(Egj_^WjeKNe64g6_Y{d|LezvD-bVZ_X&T^Zi9c^#)pDDE@E{gW%N^cCUwP!& zc9wjIJ$y9HBG;(lPs4qrI<~W^>ADNtVYmPsuc|lLd=#JcbJKmOR6tdTu1Bpnb#Hlc zB@>HLEmN}Vr-?ln9&^u~$H7!=AyX$`wvhUm(noesmNnwr5@#0>9U@mwK?4O4^lLlJ z+>B?Tiae_V9%JZhC!xS(S4>l*3)8(Q{iQW~z^Oaf<=Aq#vW>;@4;r9^xfW|(qk2;J z94%5{K`k7Gf}pT@O5)Yvy#$m1iP%&K!f&xPou8W0(F%S`hL!E+8tH(FO|)2*8Mp7M zRHoc4JT>_Zw~{H~pSLLonJICZJNzI^WY#LFEpjsjlQ5?C%W>K$4Z}&!zu6^!}ZG18K8o{@n$$o{z zS_`Ib3l4@`HLmbCG0A?xyFdU?E4Jsi_QSmDXN{N0mh25Sd*g%mEh$vmCRS-OC1sw&^9T_7hQY|pJ&;J>VDnLy zRA4j!)8Tt2OT$kELp6N~YlJ2Md=Fn+oIH*wLqgVd~7Hy*+7td4BncOg?|y)?ym-wI&Ki8UkCt7p~`+7Wfu(C$~1w_%c_1X!ek-znOy91qE_e z<2aC39`$>-lF+zH6WS->#^Fht{R*MvD7;IGKLDrD!&z1SQXP2CKD81n($ntqPT=1f zLlhWowyhpAmE?p%=CetlU%E?aj%;)a$`;uOx4PR&5)TL-*Lr&FNKLnK)O-Ds4IM+$Wyh}oz(2n4Kb zESB&TZ@Al&QL z41CJ8cFx!>_lp#Gzw8-4Oyq(gtFJ~_`q#f=jMigbHB@kX&ZJi}J3Z11cxtg#sZ2D+(@yJQ8WVW4vaUCHfXY!v8ZXD9!&$u7;dgnd~@ID zS#ALiV{lFuQrannl7EU2(iG!oD|(^`;~&?X-q-1R;om_(Uj#IX(Dwozo0UAh8u}Bg zYs8xVCFJyZO7poR(IPyVa11J{@YILj@&W2kj_!AQziz=!tcwqk>IvY94+Q--9sE^# z9rn!t=8tDQ0#SBa?4mmwwo3IU@4#Mh7#XGUYFH^NTC^ z;2YX3*3y63c>K;3Ka7}5VMI*nm9dlH<*Ge8=0l)DRTrK_Y|d7;c#r)p&hNF9ln{JU z1ASeys>~@E>uj%UH?Ovl8K6H9m_{rrY8bGKEMIG*ZU1=ngL^N^%!lY*w!wM@zN^M^mY$Z>AGr0yNN6r zSflcGKW{qtCHtv--#%09myF_FNR$WMpyzQB1ygD~^ii{JXyDOUdknr0wwBgO(bXeM zP=Yg{>f&vQwT~a6ZjV>ITV)-^x9%EW(O39Xz8-4nqW`g6`)v#6-7!Sa1Mr0ta`^)> zv6C~OuIu(UIJ|WI+#oo;a>?>S%{2E_wX@K0(qWu@pCIif4`%>=>Nfvwx1t}d%?cHT z4&pHi6i_J3o&w$8djxMuwyw?zrjVe}azAg9&dAwxd?aL8kfSyUR0*Kk$+Ho%@tVu;8S~Ud_=gvB(LzKeA#Am_Z zryaV2`dVD`>@;xNRvQ`AL@ek)_K*{V$GN!eu1*Q?VVA-D;|T!f=gZzMQKFr)51E1# zP$%1B6AcZj+6+IR8%wBHo#<67!SzD^K+U$8aq=5c+R`4GoBu|3mQF-w!syGIIu zjVU75M1DT)>=pOuN;HZ9$h-Iz-lkYzn!kvYg>acLaN9G_mxAelTm+`W-*hW8)Q{x? zPSfiGNCA#cXljfcMS#xssf_nhm1GdnG&B)TuxYZ4YtaeKm?Xoe`x7 zxDGB$@|}weI(7#8a{>lb$_*tm9i<4u2V?#+x`{HUQdm`Xc_+AX7f;W z%2_#ubLOo{;QucD3xG-z0C15a4f^+c6Tfx>{ZR^;j6_XxrEGv;PIHBTebyha9yR>k z$}v#>cSxlUgS&)@*V-X!_U`?k6#%>oGe4(@g&64O$D=D!Bn_IpKnq`=Jeyh_%IVOa zJFU$3fDH(mVLGr~^a#?+>6Ue*B41+igIHp&DV@3LmdmtV_*NAE0)z11Kp^Hy`etpW zi@CLFtSWJ_5bkoz1P}3dC81d0Dqk%AL7@2W`-C;tROPqQk>H>uy*>7K$~>sKmDhT|CA-h zCs4YrMttH_XZ$VDTdLTin1gQDV-g?4aa*%z`f^wtXV;cSpDTR+q4~7;EcI^moL) z@Za+u*%AnV5a)W<5=HC$Yi5Q6AhhWQ;-pU1{*zEs`HhehY~7(1w~sTZ>DUeG|}cI3A85helWOJP-OQ z$a|cNS$X6U%2I#FfWQCy81NTIU_Sf+h5_h;K?Q>EbbC~kn=22kqgJ#M*nj9J)C#wv z1{%t}dA{YK2sAt#QbrmxkBOkWaqSlW54wh!9O41in~rl(RSowv5SS3N*caao#yk-n zoL1G_SoUkG0P-`*lj^4lR!%3W0~C%xr$W11?b-jmGUSk26bb9nlDp^vDl!3iKSH)F zM1Vf^du}Ez4tLU%IW$dafrOHJd$*+c49SQv@2ak&?YA~}*DS7fE6m40rxrf)cxiVz zwnv|R&q?nTAqs%o1{4PZ{?ZOR$Ci(kqAg?v#z)lxiCBq{R}=(q*ZjmQ_{zhI4%I(B zDqs&dwU&)1NM&mARFyhBH8tFG5_~KJq>!EqrWGS;2)yaVlGZ%Rzovs|y3)-!Lx6~u z(ME6pPnl#L7Cx2?D?)($d%Kq?!StYff^fOL)0ZIlz~G4f(tuPQ;;Kai!JA^5!sSsZ z2z+FK_9!lyA>v?l=3-H+_xS>yMtzn`(mdIeK%cag&+JnewJ#Lov=86H3({SYhX9}- z5ZFX5a*s-ebFR1}K7_S|0;R+p2OkF~JUcoH0{fBz6&+mkL;Z)MqT3BNV~Aq2@yUPD zO@Lc|fDIUm8V&~B4h^p)Pj=7^!j?I=yifmF)MHST6Xt92rfD-YgD|X^h*~z^`+tZJ zoLIU3L*2{-jnETq5b6r>Ut?cpK3xr1SbZ*qxurb|4kE=Y!XJOhX~(E725KkVCkQ_V zb$i%Q8)!OZ?cVxc{MisQtGO8&8qy!RPVD=6n#A{7U;nsZVB&B$w{Vd5DrDs><-Dsd z1n2{ZQ|#d}v$)+r4Rx=*9BXuG58a55-BIl(!=&{?0bvID6}lIO6cX1n!_ER6y$oM6 z58?xTcu=!`j@iwQvJnPVR+uZ6E0S1Jtn+ceU&Y7TI?``6S2jg3)`>n4lZ&Yqh#()>en<_#w%L;f-8HNT$FUisuke{xA8=kA^Iwg51 z4oa$q(Ks(NkfDOf35`5Fp6_wgZ4F)q{e9+sa+V%tZfAR$(e>uUaO%;0=EU=R6#?%# zY+!}4oD7S-q(g(rFWx~=P{H^RBjz*;yv^XhhWwr;&04rEl3HOMBpHW-AWSfQ+R#uL zyYS!Kuq%CUDU-~u&~6hggTY#sVrN>;cMPUOcnLl+cGR$2u?&h?yL*2{q1DX$bQ%Hn zhJB~$Wx+~{ZiJDjh&fQ8j03b+qAUG5tI|b(8TXx*&mzAoWzhLS9)U!}^-ZX{*_3}i zSClw#R!#euvpzIHFNnLfY#WKO8m^cUa88okcX^CODdJ+*;~|ihshbJhHUJ^}-=bc# zUDvJ@gBMbn&M{j=uimDwJ7BphtEvvZ)GPP_cfr!Y5Bm9+Jtn61Sz@f$vZX@Pg(7|J zum)~5=iNa>Vy=DtwHxz1^_0`&I)>3Fi}E(}F_9%EEq;oh%dvAjhZuIz$?#(^G!x{I zDn03?`RG1smXizjEo?1R)cpA;0wfKKaV+o)r^41X4!_4?Ea3g#H<6B)dyWF-M$az^ z?ZrR&65nFYQK1viqz5|g<^}NjkdqtFIc$P9bY-C%}11L zS5gfjh-J>S&$oQ`<&IcYAc>)&A%0z)N~YobCx|tjtKr%Zn?D>`9ez_7dHj1?twbRb z4?*!X6A-!otskYxZ~Y^WIK~E7x$yYGSflOcgLF)_D z8qv>tB3sE(7Lz1l-7U+BI5bqS2$Owa`AOh%|H~c3&Qdu$R7p+gaZ$mG_{Hr{l~luj zNNyIc0K0M#DLW<$uA%5Vc0{$3)bX8|4@R7jA0!ZLKx=c|=V;-le{`WJf2ASplXXYn za1hjHWyO1o2YUN870;B+;R++EedbfVJ`=-pl6nM)jnG=4;iTn9cAj9^tdHdquQC))>lGo0yCpP!z9J;!#?Jc@x#NyX3x8$C|87h z+M|hGilPD@vP>4corw&82gVQ5Xc94r{@cp1Jx{Dz3yk1hIDWC9_m<*`2NY#0mcwts z=8k+MICW|;AB`|oy(Cl7mA>W1RK|`z;e*JpKuc8|ZgKI&UaP7N1ZOF)$M;U#XPBg=h?dWYh1~%?5D0cxse7KR|Mrz4`Xc+V=36{|&4*L50y2F8NEtIGa4*p~ zVp%zRBO5Tsxn2ZY`ZuvUDxAm4vZJtAdlvc>r=p-(XoG#S?hQDcba;Y84+qIYkD#X! z2^RP_17YOi9KfOtU65K+hutVSr4TJaVqYVqOJt6J7owL!N3|Y$HS3+S2*m=%c;)C7{R6|7b)AN#Ba!l4P6h=Ui?eog#4m3PuZ!m|l0w~uh;@5B zpE@R!uMi$d?f%P2ITbtdA3LYLgq}v{-Ii1O&b$oy$*BKn&(I0E7!mpirirY~oYKAH z1SXmflN{W8HYtVQQo8JOH`^4ZIMZc@WZ`*ydCjXYkirR##iWdNz0wkvm>x)xj6|@; z5Rx_4BK#y+I2{Is&7*q4gG3bRpFaoH;LeO{+C}53Z^rhoS9gW7@jhv}Ie5@oz?L@hg4ok3P9~ySNNe5JZT&;AwOI z$;SvG{D4#}I<)pLCexmsk;&@b$PM;&?@xt!F){$RY5=I=neN-SjD;FTyz4e=L2mR6 zgJo%+v*_DaIVTjbIGkZ7`joYAb+Pjz$|;S>I{I^`SY?&GWsZzvT+GXLRupdxhQ9gUZr*!^!ze^ z@5^B}{7TMYV4VJJ3oR~Nz0637t&MyBt_X4@<5%hG5AWW0 zlKr1o2Rme0;&EE-QHsAVlubrBK zz~d8KEhJ-POV3kR2V*SIY*kI}%3lZz`-~yE4l?ftNytjPH=A_$`8aYw_~(IU6^OxV zMREfbrYyQ7t#X8;&&f@@uS)-0JQ46#SYg>7m-FD8$Xx5UM_d+5*pR( zfqC6ed&;sBFn}+h0ie+iXTB67LyJc?ABATX2%Ttc!*{S2rLO1KBwZC}Fg|sC280dC zlK4T8`AqeW5=xr+?9E%mfr-%fBJ{^&jKzK6!()P?IUz$kxGY7Lq<%Q{}A+#QymJgs7>ebD2C|9Sx^E6QB{_z^qU zS;mUGd7&*)MhR@qh2MqP4M!7wvcypqesTaP@_%H4;?$)MtA5%$bsK(F$t=neSO`O| zEBi&$g;I%2aT!eEWhV?Y(k`C`Ng5btx@7ko`cO{mr;>(^B(n?F+K)FT!Un5V^SX@Q zj2$#0NS4NQ$9i**rQlPt0V&I&0$5D*mtmPk)59ReXAFvO<<+!Pvih8T|MpX9O;?~xtpSxP^irZdvTmFzA}|B<%+?iFpX zMQ#A^me^>m&1kLL+sfEUwwz#~gTRWbDJ%ugVAWbGz@NewpzK2s7PfTg8 z-<*gfX{AD9j|Dlj6akUxGRJP^K)0lpc~zi(yn0yOZKfZTHcMhJaCh4#fiBpqFcvPX z-3K-+8TacbRY{Px3jQ0-CXpEJ@7V*TV~bZKIGw%fiLrTa?m=vzRSr63$DGhi)a4uv zqjzjQu4BELB-MB9kgYtQp=Zh7aVb)GCW%ngl8$#WlMP9m%=tsC5kw!0zc&%v%ZvXW zr}fo!s;=u3m#skadd1=wm%5ta+_Huqnj&5*UjUX^hdT z#rU~I42r~5=X$(U`GC3!caCMd&mM29-&iWx?e^FEXW+#(pt&;)U04GoA_{3}vjpru z`Jd7(eZ`>Wz%1I#CP3cG=}q?(Hu`=$)NyOUu4*zG6~cZZuO?J5D^dTm-(4BI?5aO` zt-eaLuVlOz`y^o-VLGL2P_w}cyT9~ZDGTD|hFU8@OCh@3*Ra#ueoBD7CS_AepD*-U z265(V8BN}U8yzcE9Rn9uu$z6ytDHN=hGc@sg{VY6oMf%UFLb@*jt;TY)Ir70)1&QH zUuRf<+0o6*Fd--~<3I=dMN)jVG)A&j(?#g|DVqwp>M?W)Ih1zCs*ig@^3+sVESRKV z158@AM!yb?)tA>5OTi7G*S)mN_@^V`?2V@BC^oRo^V`k@Wf!E%pJdyk8!RuOKf@U3WJP_X2PL0{ng1ibCTE%zcfl2a%zKL34Zy1wn_YCJFT|T9C`3 z3%Q~^Nvzhtgq44lyJsHRaJX$w4*e|$BW~>Yrt3j!+?H^W$>R{%jl5&sojCwWGlOoa z_mD0-vOUb+h%^B06T7MpN!RYQY!#*++s^Dbolzs?8U;#>lN5R2D-*^Lws}>TLF6wQ zfiP~&z|Omt-7zbXg93nm#?NN7t(vovot*_4Hry@d@vsBfJ?uN~c>$9JQUN&Gc(UP;jo@Egb3 z1EhjMfi^O`oLK@_d6mkkR|Tan=RGc9fwXc^*2+5UQYclP#%n7pf*`l8Pkcqyuf4ym z#`OHN*WIzb{FiTw94TFsgkq0WBbT`Todr2@vF!&_{i&RRcKiK|TnaYuqRkCAnU<1} z@3%>7=_#bhOW~i%<@jSP?5<~j<(xgqalFd>$LC9+*M;RX?k3p~3VVUK4}1GmL+%c3+a*0+Xo_n+3mRBD1V zNBz;D!q9Zc<&$lyi9378`(`{9yy#?9drZQX<(AiI$$_}*lbUYn1un3J4VJSfR244F zJNNVdZNnZkDiFUF!f|h`RpoW3$ggzF07#u2%T9S@<^}cTyml}H9zrltKoTH^uB#fs}7bWikBb_#f<%eG~_?0o^9;rF0@Y2L_2yZS`4nR{H04|2ni0+G`6 zA!jhWYkwy!*D~ea${E`~c``!3xLzMuujZEzMEK%5v=qAU)gDF>1nGixlR89{v)aJ? zfNP0}p+L2|m;{=9ggP>PH3lVLJ@{yU?;+r~^*=z}H16KEu({NI$^Q!qsVlhd8#T4r z)}9OiW^U!&!x}`vEjC=U=)_aJFz?z=`nT^r!~s;$NweA9o9hqL=&!kU8n}NCv>)d6 zhD0E$pqr#?PXe*=CTy^T{O>CQgcV7_)c3d3LGb~gk^CTvVCxV@(t`3C!l1Rpm(uqI zf()P-e~61!toEx#g-)gFz94q)=chbB0#ioYB7ItV8zdfbaqed`xje)3 z%M*XuF0Ne7EO|$TT&Os`!BrN^Nsy}#4JTevyL6oCPZ7KhFhUFd*~6T6-`HQofE&Mj zE(LHCIur;Wl`BI|3Hy4hbz{O9`#y`(2qzHB^{LwGQO6aay&CHNU9l)Ob@WY>KSlN*1EI4W3&t;t}qV0%&>mjR!vZ8R+E8}(3_ zPX;l9$bO)j(^FsAQp6A2xhLy}?0^lA77V!CYhiva11md0+95t?VJ_npD+J0ly6GA(O zza9cMwzQl~U*Ab@hmOj5P_md!2h9MJ*UNmwzzRuU-WdX`r@~i;8ydEI=IQC%`?O)xGd$(E#1pZuK zde;AmahE0R!PJ1UPKg|_7~6U@KF`lyFBj?z8~u9CvTt+mfXvWj#bo-R~TJ~ zHJFpni4hLLJlIx}kWz0XTTL3|gtj02JL?+;IKPaHJexcY!8!Orh7c{WTM~o@XoQIs zg*R50BmSJN>6e_Hd;GP!yc$|{{NO%K#$L^=NFuZYyJb`Ky+6PfV9qqQlv`2chY@1F zl6!D9abPKFJgDbP9z%}%qPwEv<;x7JNr-u$CQ21}gWdC+WJBr@tp6ANCJb}!_g{dg zZezu6iw|{B5Zs9l8ny991Xa==!RSe!;s@#O*1g$Xez8LYM6AomzFR#aMjB`q3c!&M z#q{YH-74~WRj?5OLNn+`4|SrPdm3 z!WOLb*)V;&*O3`GM7)EjcFqN4PuWNZXUBja7m4TM_A*ZXgszVu|& z|4lm&hr~|EwA!UMyV*Rv+vFZ<@aa;M3HtsCl>lOb_xSy7qs}W%W1BScpNri7t=Fi? z@4lDqj<@-Zs$~N1-=BN76yOJdim=eonlei6>3>Z#8H%97{KGTyu5`qjYaUNYI{o_^ z7c1@{Reux|0iZ|Alkq_Emx^tx4lB?4)P7(MKSE&KDZ zP0&Al%1uxGmLmHA(4c~7Mt3I|G|(Skxmi4=hq^h z+jBZP7|(@VC1WA95>bn6cb{*QoMBj|aMoxZ0g0XNl{5H%vjSJWl2Hxk+cV(_dXJO# zUaf1xjqSKUwvW116U*E%Tg?f*q!D}#Nvj9VF)9y9j|CgNlD{%sanC>ouaUx4T!#WZ zJNVojO?#@R@`km{Q^B7}@-CL}odm(J0~Ls%xgl%EkN?O8aL0QvW^0~92GTD?1xq~y z{;^^3B@b@P*z%dmKXaiFdo5|H{_txp>$6%mqNm00MSkSQOsM1E?MfNjD@1Ra*xyb* zrIGI5GxsR*wh96Wtuxe@f%xjLBV|GEcgqA@o!^sWwHYb}FJ?Q(&Ob9P^Y2Kg=2 z8&tDcji6_O+#+e$e*J&@8fVy}KmX$Ag@+{>O-zf=#YQ^*!EM&f!y*SJHt#s}Uuxqe zwitcIjk;`)0OqZfaKqf4XMh4d2Z5Il_1(vw`$4ABLh|qU6wD4N)FR;xHz3hv7)J9i zU%WWnyHqU9#)2hvl^XNwaQI1LgkyS`zRc6t%LQ~yKNRfa{i zbzvAmN(DqfdXSPvQhHDUX%OjDy1R2k1*N+~=|;Lk=^Bud94TSw?)VO+_xs~>pF5m= z_E~%7yJBDd+=bfe1bl(CNQ{6Q=AcqH|2vUu8?COg;xfM-4BcZ8aDIp8BAj5qSB71>OOk zNncMn*XO+pLMGxr-FcU`KeZm6#ws+X_O5`-9mX-kmtz_a@69qbrifr#wxE^xlcyZ@ zZR;!Er#ly9A_ZyKybf1?bRqgo5BiW!3iR%KQ%LClS^92HT`H%0c~tfHGDI(5c>NDf z45V;hf4y#MogB2$c$D6{w1UxWR?8B7g{2`u=YjNhW`l0kqo3s zdK7zRVs-F2yiR*Pxl%S{v@^ayAgzra0wy!CC^U3mR=DG+`2N?)gbFI5~c2?k{k<+svK+x9!Z4e5(kI+k20sGYccZk0mG-=jP_CijC7Q zS$VY(mW-wx4>xjStAE-pZm`OcdrFDhX`O3#z7b?&4h3!A0U;UT7@^1)OyByqmiP8UC)EX;Ig3o?IG7Rt`OghAq z4gljbyIk^tt2fNt?#)cWdq6Ku>{7umx%%ItgO7pLsJL&q^qQ8%)V$DV{3xBhmVlGS zkuw&A{X&89r#&B&B;94$esiF4gqQ9_d?6~A>IbA_zrtr_U)TpYC%cR15|+1$-@^MM zeeM7I=~>#4iu*~@Ijqt5<8j-=?5QL&QYTg5f|B*dd$*tmmfzYNV8!+v5^1?N8tszm zkPy(JtIS%%Xnu_v>S+5tB~#nkt?Kluz+atC zmU?5gc6h=0>)kSXR?-X4x9mq%IG!xs(Xjsh408QK*p=P9CZIBFNa1!)$0S;xe+n&_96~`FSzjY zvcmt#z%SH1n+OL=!{f*fqOe9NB;g)*w%f__+es^HcA`6{QVYOcwSQN{Q59>fwq{=z zW=gs^ zNKVTkpl^`-_|IaJkQS&y# z9gq#-%i+SL(5BiP<2DVkS|@^&u>_Ud>s(YR$9E;!)@q&O44)g(vS0H(gb-DmG4QMn zpUYjU^AL;o%zdG69nR9W-nmK3>-p@S%{$#3Samu4<%`)Q4fW2x3V57RZw0 zlC;n(EnfeVf<~R+wFz6=XPJ?FvueD{K-yY_7pMbp>TJS-4r4Cz$wY~i41@ZL7Eq(& z;?CUZ-SGmvU5=}mh)@+x7%nXGQJhcs0^*5nlXtpf9YfYc{_ufDS2&T{7k!or-WrOV__=?fQ^mV5hHF21vj3v z#r=cNiLD8dg(SAM?h6Y_UM^70-|$Ww^?P^Qlf!)oLHYOl+MaXlckd{d#kO`6S_?}H zoC{3dRn@iL%0ndY>lQh%@+g7UUglh_2-yY^2k1Dyo|U6HrD%WRc26@ieiyg1v-<~^HhS`7az09 z?HiZteUcp9vUl+K=5+8uDrq4N5wnw+m;)(?<5)kP=zzQB+^a}+7~A|E0fg!-)p4uV z6MlT+2N?tb-~uz1;pv&ZJL6K+E0<{R`JlAiJ3nvX=|;9R^1WZWS{0|lyTD$1=P3Pa zvxf=a_fyun0|>7s)vA}qRzk=HA#g*$2{3yzSG%f@IDV`Pgma@Nal+$PSrhFczD(Da zsZR?z@ohmWP@ba0B&iv)_rCU=nD;!ArjvJ}VOEEAe)E(PK zN~uIDN^|a$24Ec5&NOoN)S~W2GkAwz3scG}h}DU6gNH_o(1h{$2$}br@lwrM{!xE2=5`PGDXfn3KG=W=ODMb)PdDTi|MVBLyG3L>==J&WF*ah%)#v86zWAQTq$-g zWWA5!9t=4~b)DU-2qge&+BP^++&)zlsc~Kw*j$J6}*%G~iMAqf9*?+oD8WJyeu% zlM<=s%3g1O>@~dc4D5-#toNnb*ZCwr9hC(cWD_l)h8V7EHdyLn`$_xix;h6(HNVkU zYE#sU@yu2<+DllRSC03m1VCxz#6V(E(QJKYkZ6OZSvC@(TA(*TE45!1m2t%K*To>{ zFIYB0gN{@--7B@f<0s(w@$ z=to!KO}ohJ1H1!SMmeia6;%?TD2R5Bo#ks-eo03J{f)ZSCSo8xarhS7hE4&AXs5MP z|L1tjT~9-`>TLfN#F|pIb@{v@Ce#^;Y*Zg#mGi5FN5Lh^;SK2ni9!!vo1QV^4{8(o z*vZIv)xKMnM*+!T1;iB~jTFl2F0^)5F-i5#r+4}^#j+TM(p&?Ji*Z^DFJOF9gwGfJ`k1380i6D5!+k1`Nvzq(gUO5lcGtdaHL%4$wy<+;8% z`SJdDGXKM~x-?UHBOr}=d!jt(9Z+b;%2e5EB{il(m=^vX!U+;8k;^YpPc?Cu zVl=J$_G+h+4eBfalzJJJU25MOGPulI{sRwAkMV#uGjsT)0A+%pherNm+V`AHz( zn4x(s12Kp>8R5C_c7@*qESiX)b#%C)_vp~Ub`hwdd!3TwRq9zvDy(z48eUPa5VQI( z#%eLeH?iCi76eal0JQi;QidX>rqf$PnQor+NO1pY}v?jZwjn1J4Mq2e3c;D)MAD^pXG;zDffbzX0;HL;pSx=!PJds-A0Ewz<2 zlH4vwoOUkGTfUdJaSOzZ+c%mSmGMAO&YU+{U>AKc^>*x3nC6x!xSm?~Aagk}W+fpv zY0pSSlP2^MPy>j8i}fJzBP?$BQ;Aj7K@Qe8j}lTK4&je_?5l{2t`7D}s(hElyr}%D z$^}#)eiyxYA-il*@DxcucBr-*o{{3NV5EVy=`^|xdN*qxtXmZmSep@oA=z2ZqvauCBt?!yW%CcuU$i3UTBGJ_3dtd?S@Af z@Uq7WQ|G?6?t!FUULr}s;rk8GgIGhJw<0-H_IVd+wBO&iVA6{ghY=7ic&|hGd0U(BiJ-+}#d6o&6(?0>S3UrU!l$ zKvgj_c6ny%1dAZgXwn8t^e=6oCE4-o*{(q1`A6!IjE;{?-(Y^uFB6|>U40+ATq7W4 ztVFpd>K&PkxvX&+XM7UJ1iYT&K{-0>0MrS*-$drfg@C+xMg0<*blSdT6>f1hrJW=y3LxmLX>hKIQkUMf+bI&$zAq*_lu? z=bfu>#L$qn9b!&_C8!oiP^kZPHW*RusSi~}x~3kP$PuQk%N=c=S^-%;sksHh6}Q6A z6b}8B4S8R|!R(rfdxD=InZ=`U8kdy%ei&ntd^6WkymT~3N`KAhN#h#Zj~A3qEl2wT9K>mx!2dYU77&W*J}>j1iM zVTv)+9sG(ERf9*!B#F zrt--+r&a{Gw|Vdd?Q#TRqUE$*Mdqh+Ynkh>$$I@eAi_~xT3Yt{1%8?-OA9}YNUL3|%&1RSnCx0~c3Z!95k{yvJ~+nSi`*yN z+Adso3#P#RMNrf#I^4vr8c$f%Yg^R&f*W;)xcQr{>vp1!&fT919wRf7*K*xg)F{qd z(9oS#Xy$s91F}int2d5lFb5aFBGx@k#_bjOw9!{^H)6F+U80=jrcVI>!Y0bcfxC(x zXJlAiMb?P3tP1vVx${ppYb$o_vg=>R>j8*jHEW)g|EGVL7PQigvp#F(YpEy?A)rqS z_?Q{?d8nrc3ud#CN<)b;}#qDLL$jeM<%jUK~4PoLkixggfav2xl~&+Sz%^iaQcvoY2aj;CdZ$f>>t)kX>@R!Vj{0e2?$n9- zrCnXV$Vs498#_yZStxl~qrHA^{i@nq4YfJ-^hO3l-k4i9%bNR4T_1B_q^xX#gcNmX z!;w!_lj1HiO@Kl16NOaFGq`HeOLC?mIA&l3a|22P!sXyP^PgXFH;V^;b`AS%^U;SS zm2i#|>!@`;f_0*bl{5Y_x?I`VG%oGA22ICM0MPH(l(f;ab5G?u?_mg4;VsCdYV4}D zf1su!$LbpR`My+IU17rZPt*l9kPTOV=*j5jC|2i;162RW?t2-jc`|sBd=) zfusn{wOXtYSPD1D$a|KJPp_K3F8nAvQ$qP7yzcEBo2F8=F$(-2FP(xCFRbEIrDIo@ z*&mK|yrJvSYI&9_3hv{mP^Ewb$0p_-ZgoP_?bvzUd(9r!F~cjVN>Zmu#e?-HM(6jqewq$yF!`wT&j&h#hUb8<}23e}#)c0z*s_)IdJ*(I$h`mX60%(32aTUm?VDA^y}eZLEl*8W`;GB*Y>L|&vz@x~cGm91MUAvcW$1*@ zI?Y!a^S;qZ5*_%tZ@_W>5^S0ADE0Kvx*=3iKOVnm&nzmR4QIc~Zk8juUTthmYjWWu z=IO6G7#j0cjy%5+)nv3kEZ@zFSI%edSTe~=qSvi;b|PA03VWknxa%mi#A?sul;cpX zLSfwNq`Ed!q#=Nc%=uK#Wx)b%YW^+?0mehLZ_X1=xVkCp@y8C;hyhR`?q;p-I2kFC z1KH8*_qDqi2ZD66!owpRnpfd5G!k<{Q3T;nAYg}|pBsE0!#GfHKiM|EU-lU1T$X;Z zJ7E@oYf6GwNG#}-RqV&U|AyTc?};8>g_t*V{d|uN>HP(A300LET+wFss@4(4yG)vI zc0oI{OMz9OtN5V|-8du#=E`a(Q2aus;n((<)kf{`vD8@&VZt^R)>Lv`K0?J%c*Xs+ z%0qaY3WSAvFOjdLoXtk(9gGRMyn9Qp2Xv9CdyHqOFBa^^Hddj7c4pDhx^;X^IpU%g zC6Vs(fgwflZ86XWmX~b9@UevS1~5Yc<>Ehf6`H{JGwbn`3o5C}Y4NqxE?sw9QX8ziC;GCwI7?>jX|RsOvcl?l<1GYyb@Z)Y+%? zXLx<|Pr@bOYWe0y!kZV}W=4kp-qwS`6c<$hb7>fo&v#nu+;%)Xt8hH+u0Vf)6@ymj zIy>_Yz(RHD9>XWH;U7JF#Jjhhb`D9BqxT1QF5vGf@7vZjjE20v0=pP<6x8F1Bzt&; zg*uh@ucNvM0#(jOmPB_){5@kyS%2}`Yj7OeMG=B5k+mjN^(dTVM;WcyMvH(F4pI=Y zV$VG|u^SrTrnnR>X3Rh1v$q1^^$e5%r@3yYgE&*Pkt;ol1P#JkbTntx(bc`%TrqdD z;25NFsWbmz1pKMvU9WRzGuOskcaUl1$5BaP>fjEPr_vKD<^tZIPel=Qi9v;tmSsw-h+I*UK-e?HfI*0%*KuOf)p|6+!ENFS(`xa=Pi1W5k zp6=Q{Kc*})RzE6v6}3jD{m0>jtgB{F@;L8VGW!Q>Swa*;EJyr`AwG0vP0VZy+{b`U z5`H0Va_`74OfGPmcQb|mQ|EOi(OXov|CvSfyndpk_Mi0BXewSI*AYti*0bN`-mr3m zJMShPXZeZ7SbTI(ah{}C1z6TCEOHxWFxo1%G{3m0*t*bdSz3_uB&`R28p+sj9RzkL zPyJhXyl~CBk>?8t%F1}uru$Qhm`Tt@Uli)NqfWs354_(QlFlB_0~ zmVwB~=K90$nenszqTuH;_#@J+Ig-h-KHlGs($Vt zF0(G6^D}Zuw*Duy5*G1i&AN5$Cjk9bO>GYFdqvgG{Y`|K;#8^>Y<6H3%yKZFPNoGE zhR%x5{Sv0p@;6eiX4n{`(;Y9DzRgB4>GVkW5!*hY%sf*y+Ah#=V>6Gcs7nKKRWx8% zE8YDwCDoqT@TIn-YG2FqI?o7H&=6KWFF0VGSLH0)!42D6MJ8BvqQlgrN+5*M1=j^PUn zY$%IeY)4S_>oD9~;x}s8a&r47F|W3^bt{@g9C=s$6eX&rS~*UyRkXLIMpTErLYEX; zouwLkSf(P#e+?XmlLz}`q{hvO|1zT$CC|e|hp6~lhV`3kRxz$<^p)JUCw5W5(N6ci zBS52}MDSA00!Meen0x1KxP>YMPKC07%+D`etcP*98!mrzD7cI>qBQZZ?HbO@sS?9m z8R;W;$Xn*S{U4TCs699xh0sI;jRZ~c0`7Jk65&t$-MRW|$fNa1IIx+DuM-WBa8R{% zoDf`VWHV5PJIc(LuCd%;dRHQVi{Uh&lG|~rq@|icH_F1wmuspHLIM+QKG;;1H`*p^ zL|wROoxLUr5-1eY++uemUkQd*lULO-LUYly`QfLLKg|YtSA`qMN@f;68Zs6A$!=3{ zvNa%bV|Gcy6zDy^UO+z7+eTgz?J;BZqn1*6T?FK0csG}X*&d-E?q2>xkLE}jhONB63$^Gnm!0e`8|0Xoq&Bn4^+>`q+TGdnyk`vD{C&N*Mt5jpQ`X_9 z<0*qiTMBgHHC!+b{6`ZupWx(Iw)iB=4k_~MQ@D^?b;`!l9c6nx^gtk?{Dlyd<6}T` zqUPYShThvdeO+#Ix$+atxq+W}8R>1mT!5R-AOelDCdHD{a#pXB&8|Tz;OpKq{N_M! zDczBGdy?Ra>*qT_*fjVafoQTv1ujm!IXiSwZxh6qofnKtBH*ddmU-p4(sG5v;Xsr1 z&7aH==&HL;oD#lW#b|!M68Uktd1vP%zjxQa7opGq+fJ!Y#gC-Ku>vqbIC@5=ik0M5 zz18J@Lopv_rqf9rS*J0ljd1~Wq5!XS&Br8>OUWt7{UrcY3G+ZkO0G3G56hrJ+#6CW z=%HpJ6_cb*Pxs+kHv*sa0{ARu4|7n*UAS(yy3c^EVg)hC>};b1%YZu;+!1uqAXo0q(YmN{`=~s_Z1f z4)B8w9=bw+26MER&bMxe3`uzol9saaGRl-FFVBi3jxidCRt3e-rHUSQ*2;mk#qyso zunE>ZPn1#oxA8snIgwvU6$B@ZrU)$EcV2F84<_Whfcg{S;@A=#zxeFxScS~YObOe8 zpRURLAEUOeQyiCk4N(O7$|kC9SML3yVpY3^yMdV17%8-Tt!4q*WZ=?J9o_?)DK#oM zW!4`SxGLO|68!JOjm4m?iq*KX0ET3;a_w+;CG<2Z4f;_U4IwuckWGz}kzH}7vr$db z$GVa%-38>9^>c*L?lG=Z}m655D_MaW%eZi*Y|j`nDN)G_l(pjhQ^C$3lZ!4~&y6u`xvbn}ebEs|D>V_J6F8 z@<`XiQkBp|Z+!#8moLrL?elTSN`pI>1$qFK0Ma58Sa3WEy-67XwUz9^Ui|ZZNGew# zEV>MbXs;KpF^) zeNqVY#bYP()!=&iXHovua7aM=vOn~M`6LTShCjoP2{Px>=mG8{FvB*44{j={P)>|3 z1%^?Rb&zHHhP@yNj8-{=uUZ|-p#U=pJlGLhVV?Hq#q7dfxFSEYAN^ew0zhZheZ-Oa zYSsOc?|V5raenx<aF!w0E*RVMJL*Rr~rDh66JYZ#^~6T(*gZ! zgP@*!j)UjqW`yf z6%>GNN?N(KzWEm<{%L{_0msUr;R0U6D|%wfw;c7f{zzI5KDJcY*3V#i)zxqzwSD+d z_oDWrZtJbZ9C3-7nW-22WrYqKBetu6YyGC9LOLlDZAQHc0Muk6IpJT}BE>TBu@=di zfUf8`mgn%en13!4SU%Ysri<%eIyAzXTNx&&Gh*{2JqiG^z@!>%u}MG z%r%D4P}G)k`R5`5rEY3a7yp+qMn$w_S{|0*h4f8rYEUb*sk%Hfmj-9wCF&gl5$Yb| zl!F+mz+jwh8>$(+3373a3mY$#Yj-}!J)zhxD!qJAH9@R{dbIw?WE{WNgqDhd)R_4rhv@d>5RWve75!E!PIpma3QuSA4C( zC*sJ1KN0lZBA(uauRkknqO#RqCG{?dkCWzo=U%=VqjDSO*l=|SOb6U-f*AWe1~|yN zfe6GIMNtNdzoL^AtxH{7BE*_U1zcP+Ns47;DJtXX*SJYI`^NIm1@#sO5~v-FLVfCR$FYA=~K8-6re+|7V*U5}KRo~xV> zeL663>&#nOo-3JzS;#4aA&Xe_ugilD4w>^2LGWUI2>MuJ5G%?sA@D_3O68k6;7Dis z9#iIjHFQlC-B;y|G^ph;VDSIX%g|#`GL|#U!#?#}=f18ybiaMRln_<$whX|7MUoX1 zGgxy~1qxS5m|F!2b~kSo){)GTC)^US3$?F3ROr3;|I^>eTA9*Xp;AxmYjA{Gi=1HJm1hf5-1-2TA_CBY9SzWsk;YMuKRP%~2 z@V<0C*Xq+-5Aj+Bh1zWja8U1_C8AadTeo|cn<2Q@yb{MNJ@@%R7Cs_*1ulRu| zGeQH=9&7rX$n9L%mI0&jJF zlaZPG%uPp#N8=&B)%t>W)L$*tgY`@NM;-Y$^ZGY~x?dpNQFj+vn58|1zQmd!Tn}48 z0Bwcg$N8tNt|g+#z{9I;-XH%y9Efoc@Nt9opH5U_M=yfR${D=_T0$#sGa0fmJcor z&%Q1$2LvnYQX%9i4JZuI`mmb`cBsgLvD=-3!;A>yw8b}d?fBQaxN<4D!iv(jtlm&~c=`ytH#R88W(;T+1)4n;Yk)J?I0C*rA8Gh;4)a22XzU3$6b zYTo@DA#T3a*^pVFMZBLoBeU%o+Oz+5;#i>d>+nY2!6Txn%NC5wKQF@6SKA5^w5op7 zBPE2AbKh71X9RcP6uXDja>CxjhM1lbE5=C3n95mMV6Gs|@`jaw%7K87Xp@4kEyYv% zjhc<>z%bOV3dF6FWI`_)-#RMRy5?;X{}0b(`i;XSibIkMcy58c`!~eI zL6`e|F-atIV2WxuuETT;dx_)6@X6fs6b5Lkcyk%$Fai;$qFkXd0OaxTHi+<}Jz7R) z%qY43o+^&rkat5`UCsm; zL>dJ2q#oZNn{xTlj-8%ZLVIqklzb_9DPBu8TK9m@z9V#l=r?=wQ-X;9m=_tb8$QCm9e&qLdyBG&0h$6Rd<7dZ zNtNButX$0oh0PNH`F5D)yE#TA&^L58;)}oqHVG0zol$?X{M8~Z`nNRxjQe5G=VPXN z+)VVcf7IT$fO`JMiZ#su90c-K6m+>>lunzQ2x zSJ({lcxrq-;|XYk693(oT|#oSIFpce%W89f7Ww`ZFm0|6cN0lJ>zM_p`osIPccq$a z)?05P81!=MujAC<;h~WdJHq;v zkR0&u9GLIN6pWLEYjrv;e@hmTMOnfD;}kxRHG7J>HMCVC)f*5dBHl93o6IGpeN)W@ z82VE2MyHx$>W+~l(_kcK6Mye+^gkbf30a4ao%Sm0xDhUE)?;Puf1R>s7V8TSm@ML3 z>2pHQdWX}_I2u+LoGcA*+|BBis;OsCfvobt&t{Z>`e$MaK>25Plra`T4Z~nf5?P$7 zoHZ*gJ@jUck#rlLb|-$0(+{Lh{@FLBE)TK~+?A?W42( zxq=0)3zfv}arCL@)Z_#hrgTksoC-kM3X*I&O|w0zv#%*;T+YbT|11Wfka>ySuoHLE zy9bWIExN3d3tTm&cN$yBwu;g&N=>1KqXeDg-av@>7V_q6Fp`lxLBogj9GP zGVuIHvU|#EQQa#z2E4ovSuNM4Y_8J`0Er=BkXn?`+kDLNNVW8tE;<;raNNuS4jR?| zvt)bUudp{NjPd@)Xs`Kkm|C@Ve>(l`8+CRugP^H{LoZpXSSvPIS<_{=U(qa(%dqIr zT}le5GkP6_3=`G<^~3^Uo~%rN=MjC-SJAD-UADIe3jj7sphuoAi z%G|n(9sDSd5&tt#3i()2L=YGqf-RklY->2t@%z|+;(}NIf=oGteMEu7xP2!}h{Gi_ zkx!K92Ta3+v&NOgcz(Vc5~=rSp{od5lXA;Wrr4OTmXVJrZuqe;&%0NDM`M?-ra5BA z@Yp<3WuNG7^oLV!WwmIfNEvWFgIcH7r^ftc6(09Jf@ov+<_Eix_NX8J+8umM=@Adi z3!@=)*g+E9n7E%vPWx#Md(9JJKB{Wfj^kHz98C(vI1sq?HFZW>0Xy$j_Pv|87fC^G z%M9m3qmwe+KDL#!jTHRZ%71=gU)S1g`A7B2S60Kn9~4lCab=-`94~#60by6^Bz!pv zwj_s2r@3^*4uY<=^+f-l&CC*khzn;9>;&#fAtH8i3riO0jLboGRBbZJXk>RA9A=l) z%~#`xqH#B4QFK!8_t7tHJvg8-OLxHj?jGm=f9#y6elg(bK+}gFA*8-J-(w{HaG7k= zxU#%R5&9Gwv-zA%f;(BKnNM_bpU{K)&TG6IX7YR0Xk-9PPFDPxx?%{EG$PEWo4aK< zJTX1L`~qBX-j1CpP$K~*m_oCTC7y@fPRAbadI@uxG$cg!8Y1;__Lr@r)g=(1lH3y6|T0JDTKONr>B7jv3lG!X_N zGU@$`ROaAqP=J^7Rh%3oF%=*bG-bn#!N_@4Ke|V%0i>b;F&UwTRG+MsQJS~v6`VYa z-!9&=+7Pq*@lI}5+c%tI!+qfk4*a<+K?Dw8@(P@y^HMxyl>4SMBYgK~@AuUYD)pxiQ|a|!?+24N zI34YblXLu`yXe=xG`!vrRM25}^9rt+!WLT63Z6$xwPH}2>J}<(AHVI&U3NDY<6PyV z{V|-bGQ$_{X1P3J^qquSi4}s6I8tG%lfE`&<>SMO=f1c@ah8ex<5B^GcAN~~ zMx~i`X@_tBAZWMh{bl%a(b!qTP`s2DXMI0Y&kh_#lUn=Z$C>;q{u*ytxy>`t#PsF7 zG%Frjx|2A!}ORXC(0~&*}MdUX+E99`3gjiI3>f(bN z(k4369r@&5bzGO(Q@vc!ru(kIxZmT{nY&(F%Jwd&ckTdDSMrQQE(*EQ1}+ur&4=j{ zZX`q784!+>&UQxuAI%uY%Y)r>K{l)4Lc#fm_$tN2b({~QEtXhRNyj zw=zfFo_nNFU4}-4gug6_MoW~T*yG~A7KH%l-v8o}%g(H5$elFOu)sVYPNxk`?B5ts zS1+p5ZVb#di>iGxZ!+muIddHFd6`>TS}F)ZWmag`&`?%zZk=zmp;mM~Zt}vkSYsVn z0`rF#7PiG@CJn-=Y>`Ln+9%#c36cnzIWgX{Nj7T1f0n_Q*8@2iBS$_ZJz&|HJ{Jzy zbMC+Y_rw^G;rX488EL_})k5>{8B%VK9f)33UkL{+3&1Eb#$;xy-5?Erf5!d(hjX@@ynpl7c>)5}^ zNvb4~erb6X|BJzmU^JSd{K_%sDzKoB?B5s{936vb#xIr>K82yd&*V#2`RnL`OVBNr zmBwzG;wUkTl+^s{?#m|%i2d-Ocyc!@G9#yy4`-hYUoH%|)H_hRALGE2z)&M@-pL`= zjOD6X|H81C680^8AI-^g+%slbm!%@KAZNmVI|2 z^?jdn)|1tEj^%uxl)v405K$0cNTdOR%CqI0Qf#uyMAbY;ae| zcO!ZE=Eo(|9KN!^2wQg=a+0Q!=$)0>{@%jF2fI6O3Wqyh6DJYw->2fZmJ53b*o$Ri zs?WVNJil}0?dHM`5Xng$cQ`%58M){Muau4dt+sh^-cMN8=qAN+C~YotH2alZ;;&h% zrnX)j9KGAnGD_VI+~~zZ)IUt!FTys;aP;o>sAcd}HNPCcZM#hNT5b7y>%(N7{u+l0 zOHCq2@k}@7AzaJ51^KYtxo3QlpKB^7k4yXBUUSkf<`8W4LslP7W z*6h_Tm)q{ZmxS=ng}3Iyz6t+1#7>lHlQ;psDx3Mcs|qPJ^`N7Q{T)PwR(QC>Gzgig9{Sj!mcYsvCp=>=Y6PBXBOsvd}qCbrJUxnLs4^k_|<7> z8AjNl_9-cX_5L#NKjl332+;4ak0*kH(%prtp|S&T_@74|5Az$(yaj@Lb~tPe1joc8 zvz#+QHoN@_n~2xz^=Z!!`*-=6kVj-dEQE>^2)^n`Vb>FFlNJ*_se8+00(J434KD*0 zLjLwW`Duf75|{-S25?;R$Hcf8gltdRLAp1wpVk*0!LxJh2$hK z{;o&Qi$JGm!_@)y@KR;@WV2XlSCR|J;3i6cOW0SJV!+nLh#q~ipl8LitCR2DYBXM> znZL*06ggD|(R72T$XDc#Wis;9(rw{W`YiJ^y#C^SHoJ~pF6Jqkv2b91@G11FMI0Gr z=D{x)mXoh?s}AYr1V-DqR94X_d^}uQ{7wsMHix|@c?Vk6St`*4*o!}f->GTr+EJdm zOL%I>*BKqS#Nos-v=$zw#uk|gc z!Ou^}$(-PIu?BTDX&9M-J-@VT1J&@vm~S*U&|P3aU?df0Y4IFi#^_al3W~l*j%9

vDCLdKupcdg@%8hQ!mPmt$lhfGQ{?b$fu z|5`(wFi8E=_;qfB>ZjxLyCGvDS~%!xDJ3w!^|gpqqj#BgX!CVHYT!B>r_*Qsv-`!? zx&TgpDFlb`fW7$s;fpF~!at8Omp%OV-Ig zZ#))3)7U(WiV6dl#SJE1MBpy6DsIWUqay=>nAnP;yMKaz! z<@4%qPvaYijKCq(C^P)Ypm9gTY$k}!JTfSE?Q~!iqm^R&ZmYrZ;W5oaua7Y4eIbt0 zhgWA3gW^bFL~=9~3!Z@aPoPf_^cm^6tlkG;nia7q8the9srsQ7x`Lp+`ZhVO2ah=n zq>L1b^3@21nM<$Q3!qOgsem;G1l3t! zy#{TJeA{Ri0((mDa7;IZx!OAO$*f1yFOlHsfRagwNgns#b?$puv(tpk8XA<(Q{`0x<-7w#`L ziPJb)-e?o8ABh#rI$|iZ1hhAJ3uFjn;A5@DgQ%*|G>{t3;eWry#|X>}7%j-0RzhDv znbm_^^vsQ+%qrO<8C<*0-fFmSC1@hIv6^G6!VKGOAv$o1LFLI;5`4evF zmPjQF;E0>oU{>Kk8i8_yiHkWw56~CSv-HPnuu#7KAPIr|Dx zb6yqNK#5U+E|7rv{wkFNt01Pv~v+5s2)^ zILgdz>SD0GG9+_VUu~U*7ta51fheJPDdEb;hB%>iqE1V&Ka_@X3{}=7$Gb4ElkuKq zxU8?c$=$MzE%02SH6vRMw>fFgLEHm};i`&3D!7*SD~1O+T?R7~m?UJ=B+9?Q<_{9Y zwXa=>#RAAEFtS6pr{e8u0U0x#F~losuU=&*{EmPHL3+5Oyf@?|1!Em7pWVpbbO2~; z+J}Xu{EzQkX#-_UCcO70D$b0;_tQxttz4pA^H@WKx{cbCrd_gy#eK)|RNKp`>`24wEz1r*l$S6;(;O;|YZ(cq%}N_|F>)!ef0 zHjY!x^db0$rmm1g5v6LXB0(9CBCekcrta!>f=Z92Mz%f3JbI~b%uA`LH@KErkVux_ zJu_`t@_2ess5kB<>BXd*xch*(?jBkt8`+c=j3c|p<--AGnVMZ~chmimr2;v(i~(Gc zt>{MHbH>aCwb3!1d@Q3m#h)c@s}?;h7lFm-cDP*1p0R;vyD@2=*jxa<2(MGJuHjx0ynAYOmeNNe?UfAe3!h=H{DtmuqF(XV0-%(V zGk?c_M%__Bi#6C3bNe=~_*2ISCfEB2S*+RLo2Z>n0(a*F@}iV2UI5_1|L+a`;n zEvFw0By7K*Q#78vI;fHXq0Cw=$&6j~xy$MR5o=_aSwKJlhsO3KTJ3B_lyD1OklYPDY+)y>Fudk5TgbRlujJ{0ut&zD0T zhv?4TY5ve7sx^XFh|VB258|xuLJvM4LH1|Dzv`ILYYR>6cXHH^%(-mJNO^9R>gduv zq%Z=Mg2}20j6jObbL9l^!7ZGV#2v3C*;p0er|El(jq@HV64B5vXrB~w&UM+i>Rbm_ z?;CI}-!<#!6V*y0*>+v5wtj}|+ z_b^ui0(2O8*pu#+n5;MPuX%Rpsmr1r8eh);Ljv`q&zWJSCo2?uN12|VsCF3cjo7i; zFe#Ikh!&@D$$#bzamUZ$H;_cKm$^lGxLLHxo(Y(R$q3z(xF^D+eBdHYwj|PFSc-c= z(zM+W6dOzCYBb&}T{?8(1q~OM+RY4E62s=7Dh2U}$KpYO>GQ*tFN!m^vS#t(x9%3= zqXTnHkQ|iLZp$C7RGiduyTNw30NX>M^RTDXfArJ9#{D6>33?Q0?E_F1To| zg9RkY_w9vbQXV)`_`a%1j2A2{8m3DQ^PIm61O?lKV4QuPZNBGTypn7zJWS!Co6SF} z)w!`Oh|2gPWPEHq?3=c?Iq|}3k`cFD3*2ejN_Y;huAx8z^`K8^M=+Bejp*{DQyeC@ z5ota6HJa01>Sw=Ja(d{R;;-yb9t)|xy~@81n?$WYFi`$gkx-TT`=X?$!fw*AV` zzplD6Tupkt4;>eAj=hchK3ZXUiMQH%-G0n%qVTj1tGjdqk1;%6X`n01B`Gym2m1mD z8qmkzElWhjcbBEI5=WU+D{>&3_NhCCKOvQW8st0ee zqYIzH?KGBEq%{a*&WUMYoA~uHH?XEg_*qOWVZH6#RRq(h1Na#N9?rJ2OYP@5 z3H?gQr^mgl=yLbrM73IF`8kt-*AbcajkKJT<5_4AQwnTjQSvxRW4@j*>}fN-TwdQbmX8yNFfecnIYMnlD&71Syr<59*0UI zJF-t%WtP23R%ApRn{w>EH{a{1`@TQFe}Dbq(c{7UeO>SCdd=r+xrBzBcolec##vn2 z(zJ;;a4U4Q;^D|?9hm=lW&*<>qRa;ze~356WVF85`?6zKK{?`yU3*{p;=m(4PhOyC zhSk^=w2kT4^Lo=1XJKSuc9)2=5>sI`?Q+_-PAt-I*uiHMXY*H?eo{2Cbid+!yJS&o z|E}@v(B<@veDiQl@fLdsS7%K{+tMxcNYeZcd1|(; zWg6G-IQv44Ea+c4K_@||VO-^GG`TwNn=zWoxu8R&nruaWCV+Fap9<_>BQt)T`%&wL zW2|%$mR|87VE!4?kkLbHfCP`5d{-^IOx!k$O%#JT%EJZ}ZUaWol(_%Jd5U>U=u9`D zogp2PBp@{7rLmQcOtbu*2|f+WA;W0z*(g$Pft=zj)q-^{e!QCDG1p}3XbEz zlKoL}o!>qxe_#V#n3MDKk|SYb@HBPF@nHPX=~hUm)2#DV$X&ojs;72+t{+|C_JFsn zMiQ{d(tz(ela#LlBsxSvG}UJ%Z==S8t(Hnx+@SkXrGAVduqCXOteq62&h!dM_PX+{ zuw%-Is-yf>sc!p-BMW31Bz2SI@obvZoa)p+%_LcL)ApNu$Zj7<}+$3MSI)n(~W50g9- zoJ}lf%^&9X?&?wcCQx+;@uas_!b%K*yLW!&7kE<9S!I!bMvRBfq4k16Y07L%{E)qY zzI&BFb`Rgv?TC7$2s%3Sr;OXA03kt?%2~?p6}`p1Cbnl_1pFP;4ba%GL6V4C&3lE1 zJG4A=mmG>e{uxhKHE4avFQ(|z_w&rTUJtWIk}Vm^qrH;P>g3d_8;XdFrYXD1S*B!M zmd9H0$w1FxgjgVV_0&qW;IU3wm!GZERJ#{cIsFwL@zN-?Dg&=nYttblXF)i9Jj!%- zwc?Q3^wOGQ?3Y`A_$SZ6#PVL5EcU+niGR7K~p!?)s?o zEj8kJi_z+8e;5KCJ=@|s5_d;`w)pzJU`=UoQ6Pg{`$&>|_P6KSWnY^o?2tFG+l)qp zQwzjDemqFATYuvbVov$%cq6fz+DLY0* z7gheiQ)oWClvffdS@zMVl9xKD5)Gr5MY|<|N;nXt#x=-p;B0tVk-#1nRwb?#mnq`< z6vN?9XN95h32jh-Zbii1`F59Yh`VqJ9~PwzyRNELt~0 zJ(&n+G6cw%Xp=a9Fj^4Ku28BvtIZ0F$RkcKDBza3+3hVkQ*QAE#ZnwO0+L3~g2Er9 z5cX^x!_4-E78C~HfBPiuoK1p1)h!E9=OD`zkrT`{kICPPcQd&^7WA08TQ+X3>O0%r zwPtJVCST^EXX!GEd3|(t0d=_S%(1p2EW^a+&WznIL%EsHq6kOlM$}o#)dwSl?3WlOZ=d~Wy+~V6DFtBvCV-BlXB}776yPK+ z1lAj}UCkQ!OUW5{!rkFKH`^-DmOaGJ@wjSma+*b4lrMfbW1V!^F^kJeMCXBUxSntq zm|P|f(dNWv;TP?7(&_k}eKi|{+Ap?>rAvOEwGSxIGzA+4==6zY0FinhsEZ2-71q}+ z@q37fbk$8sZ2W-;)llqo3B68lGc$=mV{MZ+ki5h?1;ch3TwmweiWPDoBA2p`u5UJ6 z>6FZyUA&A}q;M#}!;&qJzS&bbW7SbpjI<q@~lz&HbgsI;kJm8@2MItW4i~$xTp_Y3?Xa1#KGfbCiluluKJWe zMGaA35ILVNIY|Ba@|T?Euk2}L>z@vShT%QbcsH8kek`ry#Q2@3B@e!q$+ntLU^YR* z$(Y%*$At1KIOr3}f=&-9dOLiR@^#=u$EhiD2am8qSR_bFqP%eIBU z))Ev+ZKF4C}L}NC@NGWCJRm)im2<< zv)5{-*V<5AvWUx|S=yvlT-C&t*fgjjg5m+kf(C=X+-GV=p@N%Q9))zMq2D$Gx$_f3 zxL^%(GlmCra$2uA2nCT0c9eo_>yUSicG@LsoXd?(5AM%wV3 zZGcc`XMVS?ayoRHc08;9LKs54Ov~J{dr4TY^y$I`!)TgfDl_RVK~CeV%y2aoxUs?Q zZG*8iculgKfh8{^ovy#SJ`~BLHeDPbs!8VQSF@c)O${2(eHE0+q0Nwh^y9ZOpfR;ApxAjMgGAl zKQh_ETd_#Mt?$VY0dwO_EMcSTIaKoyck<zO>GYN#+`l9xjLx1RJ=7gB!ivon;1)Djah4hsTDVoe-O+j-nK5@LOR|4%I z&FVWp9e&I&&2`G<7wE0-+(_d+j40nGm#PM3A1)~N-Sgce?ONkKhc(vQqFbls?t;R0 zH}xQ`H<>DV70Zd|Qge_Q7Y7@bTFiIH+sTzMgq&$67AhwDP=3KrK7k);9#$4^dAL3A zf+~z_?Y>w4Fit7L>^M$N$;H0i909-1bPBPNr??)rhoAXV(?{Hsw_5^_>z)UufE==3 z(C^W*QDwaKdy+YkG|Uoe=57x$chO~q@9Ky%;R=9~Dc7p+zeo)?QnCCo^v((8!w=@5 z=o+cxB}amGJPI%YVs4oGexHdLUz}svl@(cXHG~MmOk~h?jIe=vy*$DYsgZe0+Dym%Qv5Jdy`y`A{0>s;dinLM}#=?A6S+ z*pY=178h4%8jsB| z$(6wM&A27?6a;PLE~~nk(Y{Eo(G(v=kU*O+DjH-El^6kCF#47**RbSd!O9M=&(D3F zi-GG`HQktx41B!POY-4D9z7Fuis1Ut!}I{KG?D_cLCq1X3C5k=gaQdD5ufN%8}pW_ zjEo8q%%8AbU7SvRF)rfz%>11yZ&f&`^PjloIezYiiBE78D+;!kdQC1=8bK#F9eoM( zOP4{1oiiY|%=heuCVtW4zb?!eDF}<_IC644JYJG3vRR1)awVAk&_EqC=1q01wE-G^ zL<8sRWjp%<@PE_4e@`-0EJvC;mNzC#`m(&*&-qQbi5L|P0Y0~y8-kl_Rpj#sr^AIJ z9KvjN6@IQ;sRfUV5)QMsY97$ygsdk{N=b5k@t6~MaI!%}8aexBN(gkAj}GwD;l3L5 z*@en~s($pxo3Qg~<6}O_2dYUFWNfkkhoZ%BXDh(Rr-vmqcaG?V!mdk7b#&mtnvD6p zHRsJvdi~wzEaoR-Daa6LB2pMTqZ!zCm z`?9H1HLs%ZjUt3`QXTz0z(B%8FLcz@FbXtHi)BUoujapQ*=IqEr0^Vbnnic?$<$C6 zAWl{r?1-Viro4xVbr#BWz< zw|##*n7{FK`WXoJs3OigOmv7=Y4$)?m@4dxz$WUTzmyAh**8_-MwxD3yWgCi4>76v zr9JU&DgJsS#|I^?t<->;nE0#DWzcs~d(NF>Axrz!F9 z(ewV6(QwjLCGEpoAAD{rZye*XUfb0?pP^BT7=3EiVqOwyt@nhvuu4Xl9yk7^_^|Tn z!t6CXkKKaYyYYKpVyHIT-iF$kGr_uNn#ZBP4bCUv!&>-b91+CO-^Q&S^F?*jkIJ_5 z@go2=z6|iQcq6c%*r9tQ#c0})La@6`_OOud(_D8i!4&k@^2g%^h5K-$6xZCY2e-#_ z7BX&MhyIoyYe(t}cF7%0$9=|L&v_0~ln~H?FJFrU`Jz%XNZ=bipD*gs34~k4Ar4HE z;Wc^!G%9w4O|W84Xy87W&nIeP&-J*Tds?nN(!W zB5V#4*8s!^Yi-d2=*GvlgY$1eh=%uinY(lYKDKCQr6SJ}`&6F8Q@4PvJp>_wcf6#> zdBN1$YiLGf8S6gMF)Nef|PwablIbsfk$pO$FcOi(sY)|F>9 z?M5~%4jpzaWDLZy;-8Z^sxM3{g<;_ zu0Li6>R(G~$wk5B^y~c3@#?~Lj>7_i?qLSfa;@zw^RmcXihS&Hg%KM*WEOg7FU}Wh zyfrgg*KBNg(U1ByGl)lhr&2xKA}Ai#lny_J76JqK|Ukj)mP! zgp(3rr&X3_XkqOs&|O%G6nc14zw=?~yBoTfGubo|rv=sr&|l{4?yR6-70~TGGxIf` zl(*z}wBUaBTQcSmH{Hdc(<*`9&_rf6-!(3A>$d?QL`zsH4HD-8GFqO+{*?{(#pBvG zg1eEjXSeOKx?i~~D?$yBv@Bc+B@$?FdmMMp$IE@wkvfa05@+lW^MJ_YiAX`sGw9Tt z80W?dL|S7C1rMOpmul47oH+0oV0B}MY16GpPkD7VFctz0#N&C6d_ui&{o{@B*XG|n z$QRy<9gwr_OljBoRPaozn`MWNtXl4C`~rV2$Dt;>c4PMSz-ozWlOIq&h&SN+wV%4L z8EiD0Mq9?|T4=6LHs6m@zLAe@ue;nnMZgbn=6(P@f>rDm*L-#Hdr7P4Gt(Vhm+czz z^@|CwxyHw%a9W%n9t--F8)b1@72+2WOqINJo`B{rgyPDWty64F&6TX5Du--0X zp_Xki&{9P#x^K@U<5GXySP}5l?$_yjL>V|D;_of;?!Y(5MQZaG(Enz-Et%1H7pi1i z`!IUv;N<6k{q@Iu@^-Ulbv=kdu=ht8)m$fc95LH#Ki9mr3VDY=-Mj3nQm(t&uM~(P z{yDMG*%XR0W;DYUMahBwq^Yk$QhW%-JPv#~P1Porvt>!^>>IB_!-=1f##*mD;gU3x zt?9jtH*UTBK~@3yd9Y_JpzAX7wF_L*(fa<@qw)_s(FsZJ(jG4mNR%1`ztf)YHfFY_ zP#dMM2`yXA9PfGCFIO-Z?>ZyC@Atb_%Tn3F4rlt-gJ8A4riK#3Cz>$wXW4L5DyRmb z&3Qup0@0T}7g-@8m0~GmN*{>I)xcZgZ$s>7-*W`Fy}DUkofM&2{@NS7;~dJ35Rg@_ z1dVoLr;sS}JGHj8S(!X!1b#CNZLoajc7)QM@_{Zr_I!C=P01Ixn7R(d6+-;?KhbZtAGbC+1^DF zu#Nt!57UrH^5@byl%jj&zq#3-5(34irpTrhgEeRUCYjTV^+A zRQRjRX`&pXV}JbxZ#;cW7U!N!KoL~m!zyEufO!}S-pgFKPS?&5p|_mR9iQt+gPyD<0G zq4JFcNyly=g>Hc@Du2ASfumq8&dI=cY(({?N2ISWJSf07)Mv^!>@1~Bv0Di)$r;PS z#HBh`F1`MZ&`+CpdgMi1t}ByVe|&0~EBK|M?vg&~+O1FY&#HeCwg6$$3D7uu6~ida zKi@vqP~-VUi~Efx zE&9eIF@_Gc4==vxtv2~E?Vdlhf$wom`iGZ34aAm9f1|99?rsc0??OuKFJ8zraZ|^b z41HJ1Ex$Aw^1yXxjT*YMEO~)@5;#)3KwJUmT6t>IGBEh-V_fJ3s%?`2!^r}kDxIBe z)A=ify9N3+5-Q_&B2^_Yt#vG0POi~P#zAvfXI~%o4=YG66wv}xs5lW zIalRqo>lwITRNI8z1__x|0Q7t#C)W6a19QuxpZ}~EOA7A6gga=v&o*za(#|o#6I3{ zOGxX4ab%z@By(dAV*DV+lx&R^esAxA->^@NfV8jbEP% zmX1LLSj&02cQjdVh?p`lD2QC{!ng}RNr6`zDa0Bz6;qUn_gKF8j>3{A;7gBVR|IZ` z6)5klDCiqbF%*&OdpiCt7d?8PHONkweC&J2G>a<~BxVpcCVc8tq>Pl4282U-&zbs+ zD_tOmT(e%ZW5a#(uFgD{D#iwV40BW{U{%$gx6~Fc5YJhjKK_w3b6Qg#f04^-4Zr70 z9{Ef6PrcPfX2)pDQ8i2Ue&FZAZ&$~_X07Ye|L~qwOB4SWqq@BnokbG1bSLOG?HRnF~(6j0D)YRL-Rhjhu#eB;Lo2Pi*c~ zR__aOZDW~0;OrjZlA9|gkL<%?0s0WN!*ZNZkkYjVpBT;vMifJTcTX}-eIaa2(w@TZ z0P}v2fwHVrWzwgd^)Sxd2C2JD0Yi;KxYaPwj7+x=yXrq_+QVwTdMLY$F&17IU23Nu zU!>>G{9Zt*-%+1%P5JfAZ+?s|bU3F0WG99bCZDRfEwy=6m(GZPC03 zG|Smy&N*-)gD3(R*cVX*s%a6^#WRK{B?+-y^*3Z+{Lu`N^o0<|T%FU_l8^-|OxqxD z4489gDhVv%`wjR9tzFW(tEPN5vgc50(94&|zQ+j$uGttZ-KYYDhw}%B2(kM;#^sE> zb~TZr1pn41v6Jp987OCv^mH6CLVxWq3-M_Ieo?c2;X`?qZTL8ZSMGUk0FL}{5IXuR zWImXHPU`XCBrxIxjnNZFjA{_*W#T-)lg;cCFm681*yPm1BcfP8ZJW;5b3bX~*spAF z(b!M8T2S=ggd|uVJ`*ghZHXMeC5Zf)^Q}_-fUE0n7@kaWyc_zJ23wXdvij>QD?6|W1{ z${I@=93S;@jxj9ZW;vd%?V^aNe!olaD;zWa@-#6UyVycvT5sMvD&|GocLxvIl%!*d zEst!-O8S{p6LQ;5tdO?#Par1%k%WJZWPD~g)5aX=xA=DoiT8*pj-}q!59|_$&5TeNbiuW(%DY^j(VqKGreYt9^X@)Vw~bK=Ui@tk1Q4 zuZi{t4)t@-9E8JX|EpbFhlr3wc<%MPH^;M7pRBf+s-1)Kfl(foP}5yEm`%&;?pI+n zn4!T#W1sDZfsXs6jr6=o2!Y=WiY)F`>sg%w@JX_O%x@ zHjZ!0j+^VaI)BSs5XK7OX2jyCf|>&@esTJ+oAp+MkT1j1Nb|Dmi{rlR@2Rjm@<6Z4 zmr5Hck`IQ_@RT$qnA!dG-kQz~lT4eZ&+6q zba?^kKlY;?dyJa$SL>xhj+-c9<5EM#|E8s&zd(Xm{jXgo_Z__YXpGXg%(n|n2XuhA zD7#-7z3HH8(x+Y9R^g}|6*9U~xk2&wfQE0Or<%<-?#@#@p;Me_u-8-1O4(NWcm(TV zTxpHcLUK>0=T;rv&znkbsXtk>8h7G;^KW=WK3F)-_VQTk&M7=wLzt)I_=c>i!uiBv$rJkDBG{~Vwq z!)Vy=tb{EyYMhc}@8Zt>H^CaG-vYpnNj~tkDe&VLDPd*ew=4#DEB`AKMl@t2x-B1P zJO>jpN|Gus42p0Z%x{b+wmeU}`dj-SSp!H5%v{23asT8q=QK1ap4qc0T{u-%xjQWR z&P~2Pb;;h6_ny@K_XyyZM~$i`#<_2VBI2QQ z+#{L8S$Y4EF&L>uv6t=ddDno`OVe~okqhnf?UeSq=s>F1K{BYAdWI7RpB92f{}YAq zNO?rOh9T#HWEI?iBs{G0wuQjASW;1ddznMNCmLNBVEwNk9?_5%;3l;yelYtHI(h0R zq%FE6elT3%cVgwX=UT=X05D?cZ`W_m|D+4zKHiC_$+RKe{mL^ERb~dmpY)2iPvisF z_dgzc0I88fX%gm9I-dNm00Fl*3K=G{Q@-=MIyGCFr3yLfN1Hj81k4?@4-kYeTBYlDFL)>#s`wX zr20`P>61t$A8bm7XozTNQ02?`XHv=83KIBbiqXaw4$bfRo1X!e!?kF zh(beMZpD0wnJwPa-9i`1So~dQGAux)#m!&7h(DOtM^C>oQ~W5J_cwv(;7f!pxctJ` zspL1+3L1h~d1geSIu1xa2>`!m(XrB!$@TA6+1SyN8M0Bnx_54fk0Uoz>rW+^=s zf`dI#mM23Epud-_}r>0j{TxXad_0(hkh`IuY4&>l-o0?ps5ODt>?=U zjH=%+K2VeahTr60D}lDzr;w$0@2l4&glAWqc9g48} z#qsaw&XGNpe{fIh51FY&2ZWzD&R;r}+vt9k_IQlw1R1zywO%3z?x+1K5EnL&dS%h~ zQF&ACC9Vbo{Ev=2p1U@E{PRUGtKU)Shui2z>8u%&q%x4!0dr!{^}%H_Ij%{TCyKre z7Og_?2o`ri`fR-jbN|2RAjdlCPFs=6UqyXU$25*vakkqC_KXR57aF#aR8S%qZ6cb> z+KD={jL%RsEwwEMh3%K2TS9w^E z8vW#gZT~!wLDl0p+3R%7a!i)JYbIaRCsFeXp@}oaG&Hf~D1OL#;c{(Md8zDmNk5t7 z_&;)7h#NiDlOK`=tPC*uYlCR4r})Wd9>_b8Ul?p8g(X3SL0tShU@a?u*6^TUGo=-> z4)o50N8g8&0+ESe543?#>No6C;q8AiIjUGyV8o4PJ%`dE+v(apcjhHa^O>dQ9-)oH3^^xAW3JHtLtaN8BK zCd$N_4uOoN#9L^33ZOATShcP-qSfaIWz091rTgzI&Q8P|GNj*pouDqb?E+K;4p^Ol zJ%N$Y!5E=mnCa@nqL^}=Ca^=}X{cXLJierM1r(a?EqpGy@Pzot;7lEZqe5#!hTo5! z{#La8bu#raa8by?3hz|LJ1=E80t0@V0=R8CPgmi2gC44)`XEhG9&s}EwEr}T_O^(( zTGfrzZ+1}ZeBR*Mm`U_=(86sy{z?C#&MUXc;FWEmHJtAE&*tJ3k-mQp6$=<&m9W_k zBwWB(6fjBcJbOI8aoYat@o~HJzjqE3x?SYYUUUu>iSN>XW&d!uYg)a|#sBWz#8Ci~ zSJ{pNVeF3oglyGrOw$SK2EEIL)tuMyV=m5>j0^CoD3&^5?Z$QltIX|0uDI`$37-wd z1QCK^_B!PJ8jonKzkMdn0llu|>Aq&M!aX}+<#Xcg`+dhr-9f6C{@(;m{kgC^(K_qC zmStx=TcV3#m7TUX_FjySW>9+o?5LM?t&BZRc*_NK20Jq9TAc8BlEiNJa?IB_XLYf^ zT!#}u8iYLp;*{i~3_Z%Ire}8emJiD(_(Ht|3mFvtYXJ2L2|6yyQG0x@e%(D7j`1kFlcmmPBI~xMSxfIKSRO=0qpn7 zT71$Ez;|Kpry8U(dvYVc#!!o$Dg6%`@Kl!)!PsxTEZV8@&N!O30-Vvu_8E*UNv06G z8mVZ#XFZ@OF5en@MqsI+?Wg-9N#pSsr!5?|nyM=01b%^F0K9kKhZbN)@+dQeinWKv zi`KIT%!%eE(wZONzRTj}d@44Oxa%&6*`O8##{#DX&p0duCgVc!$M-Xyzr%kopsjEZ z$E|RDmlV5sUx7IDyT&&<;F1^VV;%uH{1XQ;W=qWeXRx$!qVXztb3=G{%oBsGC{@#& zB*3W3%m#FOj3f8|oc#vT+}^4OVW(VN&-b2GiUjp>XD3=9*wtPjUZ{TJQ&CMk+wGqp zv{XU@Cx?6LhlRIMb7yyfmH>M_SP}+xjInH=>;!n-egbh9rp-f^n1O@FqM^Tsx;uqz zcQ>7fB6(`lR_zLdXLqJ>nhQ+?9%YXeCII*n_uAyQP*1b(&;8b;$3yw`7Jb;Qzjd*9 z!&uLx4v^cq+lPCE%gp}7;frfT;0e}-YwHVn!sOt;OrNZzqt=6pB40zNHYPYcw-f@M z12dYp6jgi4XwAEP*~i}@DRxWzX8!FaJQ*kw*W(5g4jiuF=l7I zIb$vGOMO&3vfli0S6d$Ibh1r1&a_9saTc<};)`U40E7(6qlo^Hd+HIZI|gk~H~RXz zzDINj74ByIVNVvz^M=H`Mnvc72{XM&4dv~#=Epi)t#ZbOa7_wffQ7{(U%_brF&Ipa zGTBOZAviqA#KQrGUq-AYxQ^ufwzpbltR72(+5w+fULSso0g^(-#!srscqR5PP-AyqkT9ALh0Nldhha6b2h7<8z{Fmt>!D#NNDNV(<(-L25&l9$_W&wVHQ{Uode3FJwCzv3^_xiW;9MNMLWK_+2)wQsGu7qp6-v^$K>cWvsE z(V=(C(yZSdd62}}NDi|83RT+3ATW=sAFAFM6sxMOR9=w>E-y8MT8Vb@z^aTEe*&N{ z5+J$hNaZ0whukDBAIxLXcF}id{}a9-eNv66>*sj8U$czCp9V=mzTj{{92!s$0d(OB zv#!pib{tLLfM>k~&dEJgNlaNKJ=@{&G!{cI(J2aS0U$Z2zzR3&&#{5=O%+3a-hEGz z-1mnYW|!LZ+r$+q!n<0Kof+o z%bT4;x5kBT_#nR{{L+QcTlo_z&jA2FS9Ol-w_!bm4Y)tF6l@%9#-m1?mELN}VD@Xz zRXmKiA*&HTOX3*N4P}`&vAA5xHRcAY`^M23;7al-*QjFqxN1wO2=S#rpOWQSE&C_7 zcWSCD=`hL6DrYkn9qt2Ph1J0WM;dA3+B-6v@k>yOKi^8I{B!y@4`X@7Z&~PIeD0yn0No4zU$GQzbo6VfwuYXR!Onr`i z&BKQeDEbwCc$rt)w_q1l`VQ`5{_6F!QUHW9q~s+A+6|C;prc2w=8geIpr|i!Ze;9? zf5mU=C|W40&`)=UV5Q6H*XX93N-kyI%J=zl=;Q9qHScidCc@MKGc+L?RKal)q0H3k zDvpJ6iq%L`YuDOVotqJ!#PqS?3%%P0Uy@vPz;+o7%{otaSjW;WwU0mcY7H8A<;bc5q z4HWfx)Se{c>O9UKC%H*jESVwvL*zE*MrOak`AraZ$`Ict;!HC(leI`UW0j>ya9Z#Sty;DFE3Z`L7A-pcygATjwl(~Q0jJgZ6f6$ z!_w{NF85SZH~j1*)ndSN%4^BER+1kS8eWs^y4Km6(79V;T;_XM6yseI87En^V?wS4 zOZ&~S7uOsZEtACE^eT=0s5Fd|wm41UV@Hc4z*i|0Y$6ghoF%qv zr0(|F+clh4yvtOR=BiA75wGd=3~>w@p)YuUJ%4-~Lm-SZXncUGI8A#cK^;Rj z^t#XdTr@Gn&Xf5%M&#A|C)XPHbY|-+YG+oXzE1jap)t7gjKYIg=AT*X(g5en3w z1}eqkBM3)IE`F20ym;{FUVi17Rj$PfILUP&8OOsPv`vbi{m|ljcl!PAZH(ivg@Lh2 z!Ia@*^~duaqS}kAfi|{3%G{Vc{B6%K3$gA@KaTnyvo-s0BF|-QaC~89`W-o0`{B&v zr1Z^*XjJ+4*SDvKMeSSYa3@EDk6p#XSu)@#emD5gT+^m{t8YC%F=i04_#p_Jx3PH6 zDkfxEY4zad^R7MaUvY+=%%C2|!bzAi#C|vE>DU5f(c`u4vM+;QOB|mV4hJgWc&p6+ zD9K3Ig&)Ha0ALBQj0UjaGA;o8`5fvpu}xsY{tJ_w-GY8GJ6;UePUgw#<_yFz&B{W~ z8oM)QYgkI9F{7+EO<5@~v3uJO@Pc=Lq@8#$5q8zGB=UdWE`=+G*cMo|xX-#^ zZ{sM97)NOz%-ccI8VpM@2o2H{HaN{c?~HlMjW^KN`q0_dYM>;^D<*Q2vFq^j@rZ^y^Eo^{lf^v2j=!pb)^TC=xe+-$p@lOs%j6OLT4XXXmD zqeo}p;;$}pKr2eUQC7#D!Fxz6vQuDeIRjZu{xn6@GKD{@HNR%oscrEQ@n96z9w|#F zxEd^fV|M0G>xIs%z*luUj>3gc(Qc>*R0~#o{KNU;%8Q=A_prbI*ul6fMB++L^ajLYb!9q3&L}|3gdDB< z17_TS6rE5(Qu+CP``evZnQTsgIUW1AsnG<4?{x6_>K)%~%+|LhA8)2U=i*q_^7X$} z;Vb}p9Djyni~ySeU;Y!M-F_`i<*t2ETsZqAUZ5h~bCl11TEeKq&>||WKbk@1Ptj8V zE2w@~jby?lNWyzK@$_zbn|)tsrxvxj-{Dd0qB`p~7R^;%0oUIhKu_QgS7nLB?4{hr zo&jqp3m|m_t54d_8o?n{P|CRrZ8r*H+U8AD<_%ZJ4t|QfGpPBlS2AAb*XeT8BjWs& z$Fc+0?z@rCXymRds#K!uiUH5oxxXzYOCEyDYJQ{mXr4UV-Dx0NRjiIw9en!^*dF^(a4B?nlG+P4X1xj;OrRwe|`iI bpiT*>ly37g#eNh#2mZ-Rt2`*UZxZ-_T?2Ce literal 0 HcmV?d00001 diff --git a/book/2_potential_fields/labs/week4/week4_quiz.md b/book/2_potential_fields/labs/week4/week4_quiz.md index 7677970..b014335 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz.md +++ b/book/2_potential_fields/labs/week4/week4_quiz.md @@ -1,77 +1,25 @@ -# Quiz Week 4 (Solutions) +# Quiz Week 4 ## 1. The Earth-ionosphere system can be modeled in a simple way by assuming the Earth to be a perfectly conducting sphere of radius $R_E$, surrounded by a thin, perfectly conducting spherical shell with radius $R_I = R_E + 100\ \text{km}$, with free space between them. The surface of the Earth has a potential $\Phi(r=R_E)=0\ \text{V}$, and the ionosphere has potential $\Phi(r=R_I)=V_I$. -(a) Write the equation you would use to determine the potential in the region $R_E < r < R_I$ in the simplest form possible given the information provided. - -Since the region between the Earth and ionosphere is modeled as free space, we use Laplace's equation: -```{math} -\nabla^2\Phi = 0. -``` -The problem has spherical symmetry (there is no dependance on $\phi$ or $\theta$). Thus the equation reduces to -```{math} -\boxed{\frac{1}{r^2}\frac{\partial}{\partial r} \left( r^2 \frac{\partial \Phi}{\partial r} \right)=0} +```{figure} figures/simple_ionosphere.png +:width: 35% ``` +(a) Write the equation you would use to determine the potential in the region $R_E < r < R_I$ in the simplest form possible given the information provided. + (b) Assume the solution for the potential has the form ```{math} \Phi(r) = A + \frac{B}{r}. ``` Find expressions for $A$ and $B$, and write the expression for the potential in these terms. -Applying the boundary conditions $\Phi(r=R_E)=0$ and $\Phi(r=R_I)=V_I$, we get -```{math} -A = \frac{-B}{R_E} -``` -and -```{math} -\boxed{B = \frac{V_I}{1/R_I - 1/R_E}} -``` -This gives us -```{math} -\boxed{A = \frac{V_I}{R_E(1/R_I - 1/R_E)}} -``` -and -```{math} -\boxed{\Phi(r) = V_I\frac{1/R_E - 1/r}{1/R_I - 1/R_E}} -``` - (c) Find the expression for the electric field, $\vec{E}$, in the region $R_E < r < R_I$. -```{math} -\begin{aligned} -\vec{E} &= -\vec{\nabla}\Phi \\ - &= -\frac{\partial}{\partial r} \Phi(r)\ \hat{r} \\ - &= -\left(\frac{-B}{r^2}\right)\ \hat{r} \\ - &= \boxed{\frac{B}{r^2}\ \hat{r}} -\end{aligned} -``` (d) Find the numerical values of $A$ and $B$ assuming $R_E=6370\ \text{km}$ and $V_I=100\ \text{kV}$. -```{math} -\begin{aligned} -B &= \frac{(100\cdot 10^3)}{1/(6470\cdot 10^3) - 1/(6370\cdot 10^3)} \\ - &= \boxed{-4.12 \cdot 10^{13}\ \mathrm{V \cdot m}} -\end{aligned} -``` - -```{math} -\begin{aligned} -A &= \frac{-(-4.12 \cdot 10^{13})}{(6370\cdot 10^3)} \\ - &= \boxed{6.47 \cdot 10^6\ \mathrm{V}} -\end{aligned} -``` (e) What is the strength of the field at 50 km altitude, and in which direction is it pointing? - -```{math} -\begin{aligned} -\vec{E} &= \frac{B}{r^2} \hat{r} \\ - &= \frac{(-4.12 \cdot 10^{13})}{(6420\cdot 10^3)^2} \hat{r} \\ - &= \boxed{-1.00\ \mathrm{V/m}\ \hat{r}} -\end{aligned} -``` -The field points radially inward (ie. down), from high potential to low. \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md new file mode 100644 index 0000000..5f5e62d --- /dev/null +++ b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md @@ -0,0 +1,81 @@ +# Quiz Week 4 (Solutions) + + +## 1. +The Earth-ionosphere system can be modeled in a simple way by assuming the Earth to be a perfectly conducting sphere of radius $R_E$, surrounded by a thin, perfectly conducting spherical shell with radius $R_I = R_E + 100\ \text{km}$, with free space between them. The surface of the Earth has a potential $\Phi(r=R_E)=0\ \text{V}$, and the ionosphere has potential $\Phi(r=R_I)=V_I$. + +```{figure} figures/simple_ionosphere.png +:width: 35% +``` + +(a) Write the equation you would use to determine the potential in the region $R_E < r < R_I$ in the simplest form possible given the information provided. + +Since the region between the Earth and ionosphere is modeled as free space, we use Laplace's equation: +```{math} +\nabla^2\Phi = 0. +``` +The problem has spherical symmetry (there is no dependance on $\phi$ or $\theta$). Thus the equation reduces to +```{math} +\boxed{\frac{\partial}{\partial r} \left( r^2 \frac{\partial \Phi}{\partial r} \right) = 0} +``` + +(b) Assume the solution for the potential has the form +```{math} +\Phi(r) = A + \frac{B}{r}. +``` +Find expressions for $A$ and $B$, and write the expression for the potential in these terms. + +Applying the boundary conditions $\Phi(r=R_E)=0$ and $\Phi(r=R_I)=V_I$, we get +```{math} +A = \frac{-B}{R_E} +``` +and +```{math} +\boxed{B = \frac{V_I}{1/R_I - 1/R_E}} +``` +This gives us +```{math} +\boxed{A = \frac{V_I}{R_E(1/R_I - 1/R_E)}} +``` +and +```{math} +\boxed{\Phi(r) = V_I\frac{1/R_E - 1/r}{1/R_I - 1/R_E}} +``` + +(c) Find the expression for the electric field, $\vec{E}$, in the region $R_E < r < R_I$. + +```{math} +\begin{aligned} +\vec{E} &= -\vec{\nabla}\Phi \\ + &= -\frac{\partial}{\partial r} \Phi(r)\ \hat{r} \\ + &= -\left(\frac{-B}{r^2}\right)\ \hat{r} \\ + &= \boxed{\frac{B}{r^2}\ \hat{r}} +\end{aligned} +``` + +(d) Find the numerical values of $A$ and $B$ assuming $R_E=6370\ \text{km}$ and $V_I=100\ \text{kV}$. + +```{math} +\begin{aligned} +B &= \frac{(100\cdot 10^3)}{1/(6470\cdot 10^3) - 1/(6370\cdot 10^3)} \\ + &= \boxed{-4.12 \cdot 10^{13}\ \mathrm{V \cdot m}} +\end{aligned} +``` + +```{math} +\begin{aligned} +A &= \frac{-(-4.12 \cdot 10^{13})}{(6370\cdot 10^3)} \\ + &= \boxed{6.47 \cdot 10^6\ \mathrm{V}} +\end{aligned} +``` + +(e) What is the strength of the field at 50 km altitude, and in which direction is it pointing? + +```{math} +\begin{aligned} +\vec{E} &= \frac{B}{r^2} \hat{r} \\ + &= \frac{(-4.12 \cdot 10^{13})}{(6420\cdot 10^3)^2} \hat{r} \\ + &= \boxed{-1.00\ \mathrm{V/m}\ \hat{r}} +\end{aligned} +``` +The field points radially inward (ie. down), from high potential to low. \ No newline at end of file From e02ef81d80ab6db57ffa3ad73033ff0845a22206 Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Thu, 24 Sep 2026 16:34:40 +0200 Subject: [PATCH 03/13] added ex 1 fair-weather field --- .../labs/week4/week4_exercises.md | 171 ++++++++++++++ .../labs/week4/week4_exercises_solutions.md | 211 ++++++++++++++++++ book/_toc.yml | 2 + 3 files changed, 384 insertions(+) create mode 100644 book/2_potential_fields/labs/week4/week4_exercises.md create mode 100644 book/2_potential_fields/labs/week4/week4_exercises_solutions.md diff --git a/book/2_potential_fields/labs/week4/week4_exercises.md b/book/2_potential_fields/labs/week4/week4_exercises.md new file mode 100644 index 0000000..ffd9840 --- /dev/null +++ b/book/2_potential_fields/labs/week4/week4_exercises.md @@ -0,0 +1,171 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +mystnb: + # Workbook page: code cells contain `___` blanks by design, so the page is + # not executed at build time. Students run it themselves with Live Code. + execution_mode: 'off' +--- +# Lab 4: Electrostatic and Magnetic Fields + +## Warm-ups + +### 1. Charges in the fair-weather field + +On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): +```{math} +\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. +``` +Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). + +(a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the electric potential $V$ at $z = 2\ \mathrm{m}$, given the reference $V(0) = 0$ ? + +(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. + +(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? + +(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? + +(e) In the undisturbed fair-weather field, the potential difference between $z=0$ and $z=2\ \mathrm{m}$ is $200\ \mathrm{V}$. Now consider a person standing on the ground, approximated as a conductor connected to the ground. Would there be a $200\ \mathrm{V}$ potential difference between their feet and head? Sketch the equipotentials around the person and explain your reasoning. *Hint:* you are a conductor connected to the ground (W4L1, slide 14). + +### Check your answers with Python + +Fill in the blanks (`___`) and run the cell to check your numbers for (a), (b) and (d). + +```{code-cell} ipython3 +import numpy as np + +e = 1.602e-19 # elementary charge [C] +E0 = 100.0 # fair-weather field strength [V/m] +g = 9.81 # gravitational acceleration [m/s^2] + +def V_fair(z): + """Fair-weather potential above flat ground, V(0) = 0.""" + return ___ + +# (b), (c): move each particle from z = 0 to z = 10 m +dV = V_fair(10.0) - V_fair(0.0) +for name, q in [("electron", -e), ("N2+ ion ", +e)]: + dU = ___ # change in potential energy [J] + W = ___ # work done by the field [J] + Fz = ___ # z-component of F = qE, with E = -E0 z_hat [N] + print(f"{name}: dV = {dV:.0f} V, dU = {dU:+.2e} J = {dU/e:+.0f} eV, " + f"W_field = {W:+.2e} J, F_z = {Fz:+.1e} N") + +# (d): dust grain levitated by the fair-weather field +a_d, rho_d = 1e-6, 2650.0 # radius [m], density [kg/m^3] +m_d = ___ # mass of the grain [kg] +q_d = ___ # charge magnitude for |qE| = mg [C] +print(f"m = {m_d:.2e} kg, |q| = {q_d:.2e} C = {q_d/e:.0f} excess electrons") + +# self-check +assert np.isclose(V_fair(2.0), 200.0), "V(2 m) should be 200 V" +assert np.isclose(q_d / e, 6.8e3, rtol=0.02), "check the mass or the force balance" +print("Self-check passed.") +``` + +The explorer below shows the fair-weather field over flat ground. You can add a grounded conducting hemisphere of radius $a$, a crude model of a person, a tree or a small hill. Its potential is +```{math} +V(\vec{r}) = E_0 z\left(1 - \frac{a^3}{r^3}\right), \qquad z \geq 0,\ r \geq a. +``` +The left panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipotentials in white (every $E_0\cdot 1\ \mathrm{m}$), the field lines in grey, and the force $\vec{F} = q\vec{E}$ on the test charge as an arrow. The right panel shows $V(z)$ and $U(z)/e$ along the vertical line through the test charge. + +1. With $a = 0$, move the test charge up and down. Check your answers to (a) and (b). +2. Switch between the electron and the ion. Which quantities change, and which stay the same? (W4L1, slide 9) +3. Set $a = 1\ \mathrm{m}$. Where do the equipotentials crowd together? Read $|\vec{E}|$ just above the top of the object and near its base. Use this to check your sketch for (e). +```{code-cell} ipython3 +%matplotlib inline +import numpy as np +import matplotlib.pyplot as plt +import ipywidgets as widgets + +def fair_weather(x, z, E0, a): + """Fair-weather field over flat ground with a grounded conducting hemisphere + of radius a at the origin (a crude person, tree or hill; a = 0: flat ground). + V = E0 z (1 - a^3/r^3), z >= 0, r = sqrt(x^2 + z^2) >= a + Returns V [V], Ex, Ez [V/m] in the plane y = 0.""" + x, z = np.asarray(x, float), np.asarray(z, float) + if a == 0: + return E0 * z, 0 * x, -E0 + 0 * x + r = np.maximum(np.hypot(x, z), 1e-9) + k = a**3 / r**3 + V = E0 * z * (1 - k) + Ex = -E0 * 3 * a**3 * x * z / r**5 + Ez = -E0 * (1 - k + 3 * a**3 * z**2 / r**5) + inside = r < a # inside the conductor + V = np.where(inside, 0.0, V) + Ex = np.where(inside, np.nan, Ex) + Ez = np.where(inside, np.nan, Ez) + return V, Ex, Ez + +def explore(E0=100, a=0.0, charge="electron (−e)", x_p=3.0, z_p=4.0): + sign = -1 if charge.startswith("electron") else +1 + col = "tab:blue" if sign < 0 else "tab:red" + x = np.linspace(-8, 8, 321); z = np.linspace(0, 10, 201) + X, Z = np.meshgrid(x, z) + V, Ex, Ez = fair_weather(X, Z, E0, a) + + fig, (ax, ax2) = plt.subplots(1, 2, figsize=(11, 4.6), layout="constrained", + gridspec_kw=dict(width_ratios=(1.7, 1))) + # left: |E|/E0 in colour, equipotentials in white, field lines in grey + pc = ax.pcolormesh(X, Z, np.hypot(Ex, Ez) / E0, cmap="magma", vmin=0, vmax=3, + shading="auto") + ax.contour(X, Z, V, levels=np.linspace(0, 10 * E0, 11)[1:], colors="w", linewidths=0.8) + ax.streamplot(x, z, Ex, Ez, color="0.75", density=1.1, linewidth=0.7, arrowsize=0.8) + if a > 0: + t = np.linspace(0, np.pi, 100) + ax.fill(a * np.cos(t), a * np.sin(t), color="0.35", zorder=3) + ax.axhline(0, color="k", lw=2) + fig.colorbar(pc, ax=ax, shrink=0.85, label=r"$|\vec{E}|\,/\,E_0$") + + # test charge and its force F = qE (arrow length proportional to |F|) + Vp, Exp, Ezp = [float(v) for v in fair_weather(x_p, z_p, E0, a)] + if np.hypot(x_p, z_p) >= a: + s = 1.2 / E0 + ax.plot(x_p, z_p, "o", ms=10, color=col, mec="k", zorder=5) + ax.annotate("", xy=(x_p + s * sign * Exp, z_p + s * sign * Ezp), xytext=(x_p, z_p), + arrowprops=dict(arrowstyle="-|>", color=col, lw=2.5), zorder=6) + ax.set_title(f"V = {Vp:.0f} V, U = {sign * Vp:+.0f} eV, " + f"|E| = {np.hypot(Exp, Ezp):.0f} V/m", fontsize=10) + else: + ax.set_title("test charge is inside the conductor", fontsize=10) + ax.set_xlabel("x [m]"); ax.set_ylabel("z [m]") + ax.set_xlim(-8, 8); ax.set_ylim(-0.3, 10); ax.set_aspect("equal") + + # right: V(z) and U(z)/e along the vertical line through the test charge + zz = np.linspace(0, 10, 400) + Vz = fair_weather(np.full_like(zz, x_p), zz, E0, a)[0] + ax2.plot(Vz, zz, "k", lw=2, label="V(z) [V]") + ax2.plot(sign * Vz, zz, color=col, lw=2, ls="--", + label=f"U(z)/e for q = {'−e' if sign < 0 else '+e'} [eV]") + ax2.plot([Vp, sign * Vp], [z_p, z_p], "o", color="0.3") + ax2.axvline(0, color="0.6", lw=0.8) + ax2.set_xlim(-10.5 * E0, 10.5 * E0); ax2.set_ylim(0, 10) + ax2.set_xlabel("V [V] or U/e [eV]"); ax2.set_ylabel("z [m]") + ax2.set_title(f"Profile along x = {x_p:.1f} m", fontsize=10) + ax2.legend(loc="upper left", fontsize=8, frameon=False) + plt.show() + +style = {"description_width": "150px"} +widgets.interact( + explore, + E0=widgets.FloatSlider(value=100, min=50, max=300, step=10, style=style, + description="E₀ [V/m]", continuous_update=False), + a=widgets.FloatSlider(value=0.0, min=0.0, max=3.0, step=0.25, style=style, + description="object radius a [m]", continuous_update=False), + charge=widgets.ToggleButtons(options=["electron (−e)", "N₂⁺ ion (+e)"], + description="test charge", style=style), + x_p=widgets.FloatSlider(value=3.0, min=-7.5, max=7.5, step=0.25, style=style, + description="charge x [m]", continuous_update=False), + z_p=widgets.FloatSlider(value=4.0, min=0.25, max=9.75, step=0.25, style=style, + description="charge z [m]", continuous_update=False), +); +``` + \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md new file mode 100644 index 0000000..8f71d86 --- /dev/null +++ b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md @@ -0,0 +1,211 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- +# Lab 4: Electrostatic and Magnetic Fields (Solutions) +## 1. Warm-up: charges in the fair-weather field + +On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): +```{math} +\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. +``` +Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). + +(a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the potential at $z = 2\ \mathrm{m}$? + +(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. + +(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting electric current flow? + +(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? + +(e) You are standing on the ground and are about $2\ \mathrm{m}$ tall. Is there a $200\ \mathrm{V}$ potential difference between your head and your feet? Sketch how the equipotentials change around you. *Hint:* you are a conductor connected to the ground (W4L1, slide 14). + +**(a)** The equipotentials are horizontal planes spaced evenly: every metre up adds $100\ \mathrm{V}$. The field lines are vertical, point downward and are equally spaced, so the field is uniform. At head height, +```{math} +V(2\ \mathrm{m}) = E_0 z = (100)(2) = \boxed{200\ \mathrm{V}}. +``` +The potential increases upward, while $\vec{E}$ points down, from high to low potential. + +**(b)** The potential difference does not depend on the test charge: +```{math} +\Delta V = V(10\ \mathrm{m}) - V(0) = \boxed{1000\ \mathrm{V}}. +``` +Using $\Delta U = q\Delta V$ and $W_\mathrm{field} = -\Delta U$ (W4L1, slide 13): + +| | $q$ | $\Delta U$ | $W_\mathrm{field}$ | +|---|---|---|---| +| electron | $-e$ | $-1.60\cdot 10^{-16}\ \mathrm{J} = -1000\ \mathrm{eV}$ | $+1.60\cdot 10^{-16}\ \mathrm{J}$ | +| $\mathrm{N_2^+}$ ion | $+e$ | $+1.60\cdot 10^{-16}\ \mathrm{J} = +1000\ \mathrm{eV}$ | $-1.60\cdot 10^{-16}\ \mathrm{J}$ | + +Moving up the electron *loses* potential energy, because the field does positive work on it. The ion *gains* potential energy, because the field works against the motion. Same $\Delta V$, opposite energies. + +**(c)** The force is $\vec{F} = q\vec{E} = q(-E_0\hat{z})$. +- Electron: $\vec{F} = (-e)(-E_0\hat{z}) = +eE_0\hat{z} = +1.6\cdot 10^{-17}\ \mathrm{N}\,\hat{z}$. It **accelerates upward**, toward lower potential energy. +- Ion: $\vec{F} = -eE_0\hat{z}$. It accelerates downward. +Positive charge moving down and negative charge moving up both give a **downward** current. This is the small fair-weather current of the global atmospheric electrical circuit, which flows downward through fair-weather regions because air is a poor, but not perfect, insulator. Thunderstorms help maintain the potential difference between the upper atmosphere and the ground that drives it (W4L1, slide 16). + +**(d)** The mass of the grain is +```{math} +m = \tfrac{4}{3}\pi a^3 \rho = \tfrac{4}{3}\pi (10^{-6})^3 (2650) = 1.11\cdot 10^{-14}\ \mathrm{kg}. +``` +A negative charge feels an upward force (see (c)), so it can balance gravity when $|q|E_0 = mg$: +```{math} +|q| = \frac{mg}{E_0} = \frac{(1.11\cdot 10^{-14})(9.81)}{100} = 1.09\cdot 10^{-15}\ \mathrm{C}, +\qquad N = \frac{|q|}{e} \approx \boxed{6.8\cdot 10^{3}\ \text{electrons}}. +``` +In this model, $\vec{E}$ is uniform, so the answer **does not depend on height**. The linear potential is only valid near the ground (W4L1, slide 17). In real dust storms, the field near the ground can be much stronger than $E_0$, so far less charge is needed. + +**(e)** No. Your body is a conductor connected to the ground, so in electrostatic equilibrium it is an equipotential with $V = 0$ (W4L1, slides 14–15). Charge redistributes (negative charge gathers near your head) until the field inside you vanishes. That is why you feel nothing. + +The equipotentials that would have crossed your body are pushed up and over it. They crowd together above your head and spread apart near your feet. The field is therefore **stronger above you** and weaker close to your feet. For the grounded hemisphere in the explorer, the field at the top is +```{math} +\vec{E}(0,0,a) = -E_0\left[1 - 1 + 3\right]\hat{z} = -3E_0\,\hat{z}, +``` +three times the fair-weather value, whatever the size of the object. With the outward normal $\hat{z}$ at the top and $E_{\perp,\mathrm{outside}}=\sigma_q/\epsilon_0$ (W4L1, slide 15), the induced surface charge there is +```{math} +\sigma_q = \epsilon_0 E_{\perp,\mathrm{outside}} = -3\epsilon_0E_0 \approx -2.7\cdot 10^{-9}\ \mathrm{C/m^2}, +``` +three times the fair-weather ground value $\sigma_q=-\epsilon_0E_0\approx-8.9\cdot 10^{-10}\ \mathrm{C/m^2}$. The same effect concentrates the field on trees, masts and mountain tops. It is why lightning rods are placed on the highest point, and why St Elmo's fire glows at mast tips during thunderstorms. + +The potential of the hemisphere is the uniform field plus a dipole term $-E_0 a^3 z/r^3$. The hemisphere and its mirror image below the ground together form a full sphere, which is the same kind of dipole construction as the image charge in W4L1, slide 24. + +### Python check + +```{code-cell} ipython3 +import numpy as np + +e = 1.602e-19 # elementary charge [C] +E0 = 100.0 # fair-weather field strength [V/m] +g = 9.81 # gravitational acceleration [m/s^2] + +def V_fair(z): + """Fair-weather potential above flat ground, V(0) = 0.""" + return E0 * z + +# (b), (c): move each particle from z = 0 to z = 10 m +dV = V_fair(10.0) - V_fair(0.0) +for name, q in [("electron", -e), ("N2+ ion ", +e)]: + dU = q * dV # change in potential energy [J] + W = -dU # work done by the field [J] + Fz = q * (-E0) # z-component of F = qE, with E = -E0 z_hat [N] + print(f"{name}: dV = {dV:.0f} V, dU = {dU:+.2e} J = {dU/e:+.0f} eV, " + f"W_field = {W:+.2e} J, F_z = {Fz:+.1e} N") + +# (d): dust grain levitated by the fair-weather field +a_d, rho_d = 1e-6, 2650.0 # radius [m], density [kg/m^3] +m_d = 4/3 * np.pi * a_d**3 * rho_d +q_d = m_d * g / E0 +print(f"m = {m_d:.2e} kg, |q| = {q_d:.2e} C = {q_d/e:.0f} excess electrons") + +# self-check +assert np.isclose(V_fair(2.0), 200.0), "V(2 m) should be 200 V" +assert np.isclose(q_d / e, 6.8e3, rtol=0.02), "check the mass or the force balance" +print("Self-check passed.") +``` + +The explorer below shows the fair-weather field over flat ground. You can add a grounded conducting hemisphere of radius $a$, a crude model of a person, a tree or a small hill. Its potential is +```{math} +V(\vec{r}) = E_0 z\left(1 - \frac{a^3}{r^3}\right), \qquad z \geq 0,\ r \geq a. +``` +The left panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipotentials in white (every $E_0\cdot 1\ \mathrm{m}$), the field lines in grey, and the force $\vec{F} = q\vec{E}$ on the test charge as an arrow. The right panel shows $V(z)$ and $U(z)/e$ along the vertical line through the test charge. + +1. With $a = 0$, move the test charge up and down. Check your answers to (a) and (b). +2. Switch between the electron and the ion. Which quantities change, and which stay the same? (W4L1, slide 9) +3. Set $a = 1\ \mathrm{m}$. Where do the equipotentials crowd together? Read $|\vec{E}|$ just above the top of the object and near its base. Use this to check your sketch for (e). +```{code-cell} ipython3 +%matplotlib inline +import numpy as np +import matplotlib.pyplot as plt +import ipywidgets as widgets + +def fair_weather(x, z, E0, a): + """Fair-weather field over flat ground with a grounded conducting hemisphere + of radius a at the origin (a crude person, tree or hill; a = 0: flat ground). + V = E0 z (1 - a^3/r^3), z >= 0, r = sqrt(x^2 + z^2) >= a + Returns V [V], Ex, Ez [V/m] in the plane y = 0.""" + x, z = np.asarray(x, float), np.asarray(z, float) + if a == 0: + return E0 * z, 0 * x, -E0 + 0 * x + r = np.maximum(np.hypot(x, z), 1e-9) + k = a**3 / r**3 + V = E0 * z * (1 - k) + Ex = -E0 * 3 * a**3 * x * z / r**5 + Ez = -E0 * (1 - k + 3 * a**3 * z**2 / r**5) + inside = r < a # inside the conductor + V = np.where(inside, 0.0, V) + Ex = np.where(inside, np.nan, Ex) + Ez = np.where(inside, np.nan, Ez) + return V, Ex, Ez + +def explore(E0=100, a=0.0, charge="electron (−e)", x_p=3.0, z_p=4.0): + sign = -1 if charge.startswith("electron") else +1 + col = "tab:blue" if sign < 0 else "tab:red" + x = np.linspace(-8, 8, 321); z = np.linspace(0, 10, 201) + X, Z = np.meshgrid(x, z) + V, Ex, Ez = fair_weather(X, Z, E0, a) + + fig, (ax, ax2) = plt.subplots(1, 2, figsize=(11, 4.6), layout="constrained", + gridspec_kw=dict(width_ratios=(1.7, 1))) + # left: |E|/E0 in colour, equipotentials in white, field lines in grey + pc = ax.pcolormesh(X, Z, np.hypot(Ex, Ez) / E0, cmap="magma", vmin=0, vmax=3, + shading="auto") + ax.contour(X, Z, V, levels=np.linspace(0, 10 * E0, 11)[1:], colors="w", linewidths=0.8) + ax.streamplot(x, z, Ex, Ez, color="0.75", density=1.1, linewidth=0.7, arrowsize=0.8) + if a > 0: + t = np.linspace(0, np.pi, 100) + ax.fill(a * np.cos(t), a * np.sin(t), color="0.35", zorder=3) + ax.axhline(0, color="k", lw=2) + fig.colorbar(pc, ax=ax, shrink=0.85, label=r"$|\vec{E}|\,/\,E_0$") + + # test charge and its force F = qE (arrow length proportional to |F|) + Vp, Exp, Ezp = [float(v) for v in fair_weather(x_p, z_p, E0, a)] + if np.hypot(x_p, z_p) >= a: + s = 1.2 / E0 + ax.plot(x_p, z_p, "o", ms=10, color=col, mec="k", zorder=5) + ax.annotate("", xy=(x_p + s * sign * Exp, z_p + s * sign * Ezp), xytext=(x_p, z_p), + arrowprops=dict(arrowstyle="-|>", color=col, lw=2.5), zorder=6) + ax.set_title(f"V = {Vp:.0f} V, U = {sign * Vp:+.0f} eV, " + f"|E| = {np.hypot(Exp, Ezp):.0f} V/m", fontsize=10) + else: + ax.set_title("test charge is inside the conductor", fontsize=10) + ax.set_xlabel("x [m]"); ax.set_ylabel("z [m]") + ax.set_xlim(-8, 8); ax.set_ylim(-0.3, 10); ax.set_aspect("equal") + + # right: V(z) and U(z)/e along the vertical line through the test charge + zz = np.linspace(0, 10, 400) + Vz = fair_weather(np.full_like(zz, x_p), zz, E0, a)[0] + ax2.plot(Vz, zz, "k", lw=2, label="V(z) [V]") + ax2.plot(sign * Vz, zz, color=col, lw=2, ls="--", + label=f"U(z)/e for q = {'−e' if sign < 0 else '+e'} [eV]") + ax2.plot([Vp, sign * Vp], [z_p, z_p], "o", color="0.3") + ax2.axvline(0, color="0.6", lw=0.8) + ax2.set_xlim(-10.5 * E0, 10.5 * E0); ax2.set_ylim(0, 10) + ax2.set_xlabel("V [V] or U/e [eV]"); ax2.set_ylabel("z [m]") + ax2.set_title(f"Profile along x = {x_p:.1f} m", fontsize=10) + ax2.legend(loc="upper left", fontsize=8, frameon=False) + plt.show() + +style = {"description_width": "150px"} +widgets.interact( + explore, + E0=widgets.FloatSlider(value=100, min=50, max=300, step=10, style=style, + description="E₀ [V/m]", continuous_update=False), + a=widgets.FloatSlider(value=0.0, min=0.0, max=3.0, step=0.25, style=style, + description="object radius a [m]", continuous_update=False), + charge=widgets.ToggleButtons(options=["electron (−e)", "N₂⁺ ion (+e)"], + description="test charge", style=style), + x_p=widgets.FloatSlider(value=3.0, min=-7.5, max=7.5, step=0.25, style=style, + description="charge x [m]", continuous_update=False), + z_p=widgets.FloatSlider(value=4.0, min=0.25, max=9.75, step=0.25, style=style, + description="charge z [m]", continuous_update=False), +); +``` + \ No newline at end of file diff --git a/book/_toc.yml b/book/_toc.yml index cfe2ed5..9263680 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -65,6 +65,8 @@ parts: - file: 2_potential_fields/magnetic_field/exercises.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes_solutions.md + - file: 2_potential_fields/labs/week4/week4_exercises.md + - file: 2_potential_fields/labs/week4/week4_exercises_solutions.md - file: 2_potential_fields/labs/week4/week4_quiz.md # - file: 2_potential_fields/gradient_fields.md # - file: 2_potential_fields/divergence_free_fields.md From b46ee7f66d7c326e0805aa30f5dace8193f1b29b Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Thu, 24 Sep 2026 16:49:12 +0200 Subject: [PATCH 04/13] updated python cell ex fair-weather --- .../labs/week4/week4_exercises.md | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/book/2_potential_fields/labs/week4/week4_exercises.md b/book/2_potential_fields/labs/week4/week4_exercises.md index ffd9840..9296082 100644 --- a/book/2_potential_fields/labs/week4/week4_exercises.md +++ b/book/2_potential_fields/labs/week4/week4_exercises.md @@ -80,8 +80,34 @@ The left panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipoten 1. With $a = 0$, move the test charge up and down. Check your answers to (a) and (b). 2. Switch between the electron and the ion. Which quantities change, and which stay the same? (W4L1, slide 9) 3. Set $a = 1\ \mathrm{m}$. Where do the equipotentials crowd together? Read $|\vec{E}|$ just above the top of the object and near its base. Use this to check your sketch for (e). + ```{code-cell} ipython3 -%matplotlib inline +# --- Live Code housekeeping (no physics): make ipywidgets available ------- +try: + import micropip # only exists in the browser kernel + await micropip.install("ipywidgets") +except ImportError: # regular Jupyter: nothing to install + pass +import io +import matplotlib.pyplot as plt +import ipywidgets as widgets +from IPython.display import display + +def live_explorer(draw, **controls): + """Show the sliders; redraw the figure returned by draw(**values) as an image.""" + image = widgets.Image(format="png", + layout=widgets.Layout(width="100%", max_width="1000px")) + def update(change=None): + fig = draw(**{name: c.value for name, c in controls.items()}) + buf = io.BytesIO() + fig.savefig(buf, format="png", dpi=100) + plt.close(fig) + image.value = buf.getvalue() + for c in controls.values(): + c.observe(update, names="value") + update() + display(widgets.VBox(list(controls.values()) + [image])) +# --------------------------------------------------------------------------- import numpy as np import matplotlib.pyplot as plt import ipywidgets as widgets @@ -151,10 +177,10 @@ def explore(E0=100, a=0.0, charge="electron (−e)", x_p=3.0, z_p=4.0): ax2.set_xlabel("V [V] or U/e [eV]"); ax2.set_ylabel("z [m]") ax2.set_title(f"Profile along x = {x_p:.1f} m", fontsize=10) ax2.legend(loc="upper left", fontsize=8, frameon=False) - plt.show() + return fig style = {"description_width": "150px"} -widgets.interact( +live_explorer( explore, E0=widgets.FloatSlider(value=100, min=50, max=300, step=10, style=style, description="E₀ [V/m]", continuous_update=False), @@ -168,4 +194,3 @@ widgets.interact( description="charge z [m]", continuous_update=False), ); ``` - \ No newline at end of file From f1aa63678f2b4f3e47c70c637b030f0781d2dd6b Mon Sep 17 00:00:00 2001 From: Philip Conroy Date: Thu, 24 Sep 2026 18:24:34 +0200 Subject: [PATCH 05/13] added corresponding exersize to week 4 --- .../week4/figures/spherical_capacitor.png | Bin 0 -> 95169 bytes .../labs/week4/spherical_capacitor.py | 66 ++++++ .../labs/week4/spherical_capacitor_lab.html | 188 ++++++++++++++++++ .../labs/week4/week4_exersizes.md | 99 +++++++++ book/_toc.yml | 1 + 5 files changed, 354 insertions(+) create mode 100644 book/2_potential_fields/labs/week4/figures/spherical_capacitor.png create mode 100644 book/2_potential_fields/labs/week4/spherical_capacitor.py create mode 100644 book/2_potential_fields/labs/week4/spherical_capacitor_lab.html create mode 100644 book/2_potential_fields/labs/week4/week4_exersizes.md diff --git a/book/2_potential_fields/labs/week4/figures/spherical_capacitor.png b/book/2_potential_fields/labs/week4/figures/spherical_capacitor.png new file mode 100644 index 0000000000000000000000000000000000000000..ebd5868c73724bf2dc61015ab96294b55a8152fd GIT binary patch literal 95169 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 KelF{r5}E*&l^_HF literal 0 HcmV?d00001 diff --git a/book/2_potential_fields/labs/week4/spherical_capacitor.py b/book/2_potential_fields/labs/week4/spherical_capacitor.py new file mode 100644 index 0000000..498d323 --- /dev/null +++ b/book/2_potential_fields/labs/week4/spherical_capacitor.py @@ -0,0 +1,66 @@ +"""Simple model of a spherical capacitor: V(r) = A + B/r between the shells. + +Boundary conditions: V(r_inner) = 0 and V(r_outer) = V_outer (user-set). +""" + +from pathlib import Path + +import matplotlib.pyplot as plt +import numpy as np + +FIGURE_DIR = Path(__file__).parent / "figures" +FIGURE_DIR.mkdir(exist_ok=True) + + +def solve_coefficients(r_inner, r_outer, v_outer): + """Solve for A, B given V(r_inner) = 0 and V(r_outer) = v_outer.""" + b = v_outer / (1.0 / r_outer - 1.0 / r_inner) + a = -b / r_inner + return a, b + + +def potential(r, r_inner, r_outer, v_outer): + """Return V(r): 0 inside the inner shell, A + B/r between, v_outer beyond.""" + a, b = solve_coefficients(r_inner, r_outer, v_outer) + v = np.full_like(r, v_outer, dtype=float) + between = (r >= r_inner) & (r <= r_outer) + v[between] = a + b / r[between] + v[r < r_inner] = 0.0 + return v + + +def electric_field(r, r_inner, r_outer, v_outer): + """Return E(r) = -dV/dr = B / r**2 between the shells, else zero.""" + _, b = solve_coefficients(r_inner, r_outer, v_outer) + e = np.zeros_like(r, dtype=float) + between = (r >= r_inner) & (r <= r_outer) + e[between] = b / r[between] ** 2 + return e + + +def plot_spherical_capacitor(r_inner=1.0, r_outer=2.5, v_outer=10.0): + r = np.linspace(0.01, 1.5 * r_outer, 500) + v = potential(r, r_inner, r_outer, v_outer) + e = electric_field(r, r_inner, r_outer, v_outer) + + fig, (ax_v, ax_e) = plt.subplots(2, 1, figsize=(7.5, 7.5), sharex=True, layout="constrained") + + ax_v.plot(r, v, color="#2764ae") + ax_v.axvline(r_inner, color="0.6", linestyle="--", linewidth=1) + ax_v.axvline(r_outer, color="0.6", linestyle="--", linewidth=1) + ax_v.set_ylabel("$V(r)$") + ax_v.set_title("Spherical capacitor: potential and field between shells") + + ax_e.plot(r, e, color="#c43c39") + ax_e.axvline(r_inner, color="0.6", linestyle="--", linewidth=1) + ax_e.axvline(r_outer, color="0.6", linestyle="--", linewidth=1) + ax_e.set_xlabel("$r$") + ax_e.set_ylabel("$E(r)$") + + fig.savefig(FIGURE_DIR / "spherical_capacitor.png", dpi=220, bbox_inches="tight") + plt.close(fig) + + +if __name__ == "__main__": + plot_spherical_capacitor() + diff --git a/book/2_potential_fields/labs/week4/spherical_capacitor_lab.html b/book/2_potential_fields/labs/week4/spherical_capacitor_lab.html new file mode 100644 index 0000000..dc9f90e --- /dev/null +++ b/book/2_potential_fields/labs/week4/spherical_capacitor_lab.html @@ -0,0 +1,188 @@ + + + + + + + + +

+ +
+
Potential V(r) (kV)
+
Field E(r) = −dV/dr (V/m)
+
+

+ + + diff --git a/book/2_potential_fields/labs/week4/week4_exersizes.md b/book/2_potential_fields/labs/week4/week4_exersizes.md new file mode 100644 index 0000000..5b5ded5 --- /dev/null +++ b/book/2_potential_fields/labs/week4/week4_exersizes.md @@ -0,0 +1,99 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- + +# Exercises Week 4 + +## Explore a spherical capacitor + +Two concentric conducting shells with free space between them, an **inner shell** of radius $R_E=6370\ \text{km}$ (the Earth) held at $V=0$, and an **outer shell** of radius $R_I$ (the ionosphere) held at $V=V_o$, is the same setup as the Earth-ionosphere model in the {doc}`week 4 quiz `. Between the shells, the potential takes the form + +```{math} +V(r) = A + \frac{B}{r}, \qquad R_E \le r \le R_I, +``` + +with $A$ and $B$ fixed entirely by the two boundary conditions $V(R_E)=0$ and $V(R_I)=V_o$. Inside the inner shell $V=0$ (it is a conductor), and outside the outer shell $V=V_o$ with $\vec E = 0$ (the shells enclose zero net charge together). + +Use the sliders below to change the outer radius $R_I$ (km) and the outer voltage $V_o$ (kV, 0 to 200), and watch $V(r)$ and $E(r)=-dV/dr$ update. **The radial axis in the plots is not to scale**: the gap between the shells (tens to thousands of km) is stretched for readability against Earth's 6370 km radius. + +```{code-cell} ipython3 +:tags: [remove-input, remove-output] + +import numpy as np + +def solve_coefficients(r_inner, r_outer, v_outer): + """Solve A, B given V(r_inner) = 0 and V(r_outer) = v_outer.""" + b = v_outer / (1.0 / r_outer - 1.0 / r_inner) + a = -b / r_inner + return a, b + +def potential(r, r_inner, r_outer, v_outer): + a, b = solve_coefficients(r_inner, r_outer, v_outer) + r = np.asarray(r, float) + v = np.full_like(r, v_outer, dtype=float) + between = (r >= r_inner) & (r <= r_outer) + v[between] = a + b / r[between] + v[r < r_inner] = 0.0 + return v + +def field(r, r_inner, r_outer, v_outer): + """E(r) = -dV/dr = B / r**2 between the shells, else zero.""" + _, b = solve_coefficients(r_inner, r_outer, v_outer) + r = np.asarray(r, float) + e = np.zeros_like(r, dtype=float) + between = (r >= r_inner) & (r <= r_outer) + e[between] = b / r[between] ** 2 + return e + +# Boundary conditions and the field-potential relation, checked at an example (r_i, r_o, V_o). +r_i, r_o, v_o = 6370.0, 6470.0, 1.0e5 +np.testing.assert_allclose(potential(r_i, r_i, r_o, v_o), 0.0, atol=1e-9) +np.testing.assert_allclose(potential(r_o, r_i, r_o, v_o), v_o) +r_mid = 0.5 * (r_i + r_o) +eps = 1e-3 +numeric_e = -(potential(r_mid + eps, r_i, r_o, v_o) - potential(r_mid - eps, r_i, r_o, v_o)) / (2 * eps) +np.testing.assert_allclose(numeric_e, field(r_mid, r_i, r_o, v_o), rtol=1e-6) +print("Boundary conditions and E = -dV/dr checks passed.") +``` + +```{code-cell} ipython3 +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("spherical_capacitor_lab.html"), + Path("book/2_potential_fields/labs/week4/spherical_capacitor_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("spherical_capacitor_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` + +### Explore, predict, explain + +1. **Reproduce the quiz numbers.** Set $R_I = 6470$ km (100 km altitude) and $V_o = 100$ kV, matching the week 4 quiz. Read off $A$ and $B$, and compare them to the closed-form expressions you derived by hand. Then check the field at 50 km altitude (probe $r=6420$ km) against your answer to part (e). +2. **Move the outer shell farther away.** Keep $V_o$ fixed and increase $R_I$. Does $|B|$ grow or shrink? Explain why the field between the shells changes even though $V_o$ has not. +3. **Increase $V_o$ toward 200 kV.** What happens to the field magnitude at a fixed altitude? Is the relationship linear? +4. **Move the probe outside $R_I$ and inside $R_E$.** Confirm that $V$ is constant and $E=0$ in both regions, consistent with each shell being an equipotential conductor. diff --git a/book/_toc.yml b/book/_toc.yml index cfe2ed5..c94aeea 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -65,6 +65,7 @@ parts: - file: 2_potential_fields/magnetic_field/exercises.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes_solutions.md + - file: 2_potential_fields/labs/week4/week4_exersizes.md - file: 2_potential_fields/labs/week4/week4_quiz.md # - file: 2_potential_fields/gradient_fields.md # - file: 2_potential_fields/divergence_free_fields.md From 99ada54e9159de818c51a71e739fce108944e5a0 Mon Sep 17 00:00:00 2001 From: Philip Conroy Date: Thu, 24 Sep 2026 18:29:14 +0200 Subject: [PATCH 06/13] added corresponding exersize to week 4 --- book/2_potential_fields/labs/week4/spherical_capacitor_lab.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/2_potential_fields/labs/week4/spherical_capacitor_lab.html b/book/2_potential_fields/labs/week4/spherical_capacitor_lab.html index dc9f90e..80f52f8 100644 --- a/book/2_potential_fields/labs/week4/spherical_capacitor_lab.html +++ b/book/2_potential_fields/labs/week4/spherical_capacitor_lab.html @@ -28,7 +28,7 @@
-
+
From 2fd2ab356307bb77c60a83764f4024e85edf7b99 Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Thu, 24 Sep 2026 23:04:48 +0200 Subject: [PATCH 07/13] unified ex file, updated fair-weather vis --- .../labs/week4/fair_weather_lab.html | 280 ++++++++++++++++++ .../labs/week4/week4_exercises.md | 196 ------------ .../labs/week4/week4_exersizes.md | 97 +++++- book/_toc.yml | 1 - 4 files changed, 375 insertions(+), 199 deletions(-) create mode 100644 book/2_potential_fields/labs/week4/fair_weather_lab.html delete mode 100644 book/2_potential_fields/labs/week4/week4_exercises.md diff --git a/book/2_potential_fields/labs/week4/fair_weather_lab.html b/book/2_potential_fields/labs/week4/fair_weather_lab.html new file mode 100644 index 0000000..742a40f --- /dev/null +++ b/book/2_potential_fields/labs/week4/fair_weather_lab.html @@ -0,0 +1,280 @@ + + + + + + + + +
+
+
+
+
+
+
+ + + +
+
+
Field strength |E|/E0, equipotentials (white), field lines (grey)
+
+
Profile along the vertical line through the test charge
+
+
+

+

Equipotentials are drawn every E0·1 m. The arrow on the test charge is the force F = qE, its length proportional to |F|. The grounded hemisphere (a > 0) is a crude model of a person, a tree or a small hill.

+ + + diff --git a/book/2_potential_fields/labs/week4/week4_exercises.md b/book/2_potential_fields/labs/week4/week4_exercises.md deleted file mode 100644 index 9296082..0000000 --- a/book/2_potential_fields/labs/week4/week4_exercises.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -jupytext: - text_representation: - extension: .md - format_name: myst - format_version: 0.13 -kernelspec: - display_name: Python 3 (ipykernel) - language: python - name: python3 -mystnb: - # Workbook page: code cells contain `___` blanks by design, so the page is - # not executed at build time. Students run it themselves with Live Code. - execution_mode: 'off' ---- -# Lab 4: Electrostatic and Magnetic Fields - -## Warm-ups - -### 1. Charges in the fair-weather field - -On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): -```{math} -\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. -``` -Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). - -(a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the electric potential $V$ at $z = 2\ \mathrm{m}$, given the reference $V(0) = 0$ ? - -(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. - -(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? - -(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? - -(e) In the undisturbed fair-weather field, the potential difference between $z=0$ and $z=2\ \mathrm{m}$ is $200\ \mathrm{V}$. Now consider a person standing on the ground, approximated as a conductor connected to the ground. Would there be a $200\ \mathrm{V}$ potential difference between their feet and head? Sketch the equipotentials around the person and explain your reasoning. *Hint:* you are a conductor connected to the ground (W4L1, slide 14). - -### Check your answers with Python - -Fill in the blanks (`___`) and run the cell to check your numbers for (a), (b) and (d). - -```{code-cell} ipython3 -import numpy as np - -e = 1.602e-19 # elementary charge [C] -E0 = 100.0 # fair-weather field strength [V/m] -g = 9.81 # gravitational acceleration [m/s^2] - -def V_fair(z): - """Fair-weather potential above flat ground, V(0) = 0.""" - return ___ - -# (b), (c): move each particle from z = 0 to z = 10 m -dV = V_fair(10.0) - V_fair(0.0) -for name, q in [("electron", -e), ("N2+ ion ", +e)]: - dU = ___ # change in potential energy [J] - W = ___ # work done by the field [J] - Fz = ___ # z-component of F = qE, with E = -E0 z_hat [N] - print(f"{name}: dV = {dV:.0f} V, dU = {dU:+.2e} J = {dU/e:+.0f} eV, " - f"W_field = {W:+.2e} J, F_z = {Fz:+.1e} N") - -# (d): dust grain levitated by the fair-weather field -a_d, rho_d = 1e-6, 2650.0 # radius [m], density [kg/m^3] -m_d = ___ # mass of the grain [kg] -q_d = ___ # charge magnitude for |qE| = mg [C] -print(f"m = {m_d:.2e} kg, |q| = {q_d:.2e} C = {q_d/e:.0f} excess electrons") - -# self-check -assert np.isclose(V_fair(2.0), 200.0), "V(2 m) should be 200 V" -assert np.isclose(q_d / e, 6.8e3, rtol=0.02), "check the mass or the force balance" -print("Self-check passed.") -``` - -The explorer below shows the fair-weather field over flat ground. You can add a grounded conducting hemisphere of radius $a$, a crude model of a person, a tree or a small hill. Its potential is -```{math} -V(\vec{r}) = E_0 z\left(1 - \frac{a^3}{r^3}\right), \qquad z \geq 0,\ r \geq a. -``` -The left panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipotentials in white (every $E_0\cdot 1\ \mathrm{m}$), the field lines in grey, and the force $\vec{F} = q\vec{E}$ on the test charge as an arrow. The right panel shows $V(z)$ and $U(z)/e$ along the vertical line through the test charge. - -1. With $a = 0$, move the test charge up and down. Check your answers to (a) and (b). -2. Switch between the electron and the ion. Which quantities change, and which stay the same? (W4L1, slide 9) -3. Set $a = 1\ \mathrm{m}$. Where do the equipotentials crowd together? Read $|\vec{E}|$ just above the top of the object and near its base. Use this to check your sketch for (e). - -```{code-cell} ipython3 -# --- Live Code housekeeping (no physics): make ipywidgets available ------- -try: - import micropip # only exists in the browser kernel - await micropip.install("ipywidgets") -except ImportError: # regular Jupyter: nothing to install - pass -import io -import matplotlib.pyplot as plt -import ipywidgets as widgets -from IPython.display import display - -def live_explorer(draw, **controls): - """Show the sliders; redraw the figure returned by draw(**values) as an image.""" - image = widgets.Image(format="png", - layout=widgets.Layout(width="100%", max_width="1000px")) - def update(change=None): - fig = draw(**{name: c.value for name, c in controls.items()}) - buf = io.BytesIO() - fig.savefig(buf, format="png", dpi=100) - plt.close(fig) - image.value = buf.getvalue() - for c in controls.values(): - c.observe(update, names="value") - update() - display(widgets.VBox(list(controls.values()) + [image])) -# --------------------------------------------------------------------------- -import numpy as np -import matplotlib.pyplot as plt -import ipywidgets as widgets - -def fair_weather(x, z, E0, a): - """Fair-weather field over flat ground with a grounded conducting hemisphere - of radius a at the origin (a crude person, tree or hill; a = 0: flat ground). - V = E0 z (1 - a^3/r^3), z >= 0, r = sqrt(x^2 + z^2) >= a - Returns V [V], Ex, Ez [V/m] in the plane y = 0.""" - x, z = np.asarray(x, float), np.asarray(z, float) - if a == 0: - return E0 * z, 0 * x, -E0 + 0 * x - r = np.maximum(np.hypot(x, z), 1e-9) - k = a**3 / r**3 - V = E0 * z * (1 - k) - Ex = -E0 * 3 * a**3 * x * z / r**5 - Ez = -E0 * (1 - k + 3 * a**3 * z**2 / r**5) - inside = r < a # inside the conductor - V = np.where(inside, 0.0, V) - Ex = np.where(inside, np.nan, Ex) - Ez = np.where(inside, np.nan, Ez) - return V, Ex, Ez - -def explore(E0=100, a=0.0, charge="electron (−e)", x_p=3.0, z_p=4.0): - sign = -1 if charge.startswith("electron") else +1 - col = "tab:blue" if sign < 0 else "tab:red" - x = np.linspace(-8, 8, 321); z = np.linspace(0, 10, 201) - X, Z = np.meshgrid(x, z) - V, Ex, Ez = fair_weather(X, Z, E0, a) - - fig, (ax, ax2) = plt.subplots(1, 2, figsize=(11, 4.6), layout="constrained", - gridspec_kw=dict(width_ratios=(1.7, 1))) - # left: |E|/E0 in colour, equipotentials in white, field lines in grey - pc = ax.pcolormesh(X, Z, np.hypot(Ex, Ez) / E0, cmap="magma", vmin=0, vmax=3, - shading="auto") - ax.contour(X, Z, V, levels=np.linspace(0, 10 * E0, 11)[1:], colors="w", linewidths=0.8) - ax.streamplot(x, z, Ex, Ez, color="0.75", density=1.1, linewidth=0.7, arrowsize=0.8) - if a > 0: - t = np.linspace(0, np.pi, 100) - ax.fill(a * np.cos(t), a * np.sin(t), color="0.35", zorder=3) - ax.axhline(0, color="k", lw=2) - fig.colorbar(pc, ax=ax, shrink=0.85, label=r"$|\vec{E}|\,/\,E_0$") - - # test charge and its force F = qE (arrow length proportional to |F|) - Vp, Exp, Ezp = [float(v) for v in fair_weather(x_p, z_p, E0, a)] - if np.hypot(x_p, z_p) >= a: - s = 1.2 / E0 - ax.plot(x_p, z_p, "o", ms=10, color=col, mec="k", zorder=5) - ax.annotate("", xy=(x_p + s * sign * Exp, z_p + s * sign * Ezp), xytext=(x_p, z_p), - arrowprops=dict(arrowstyle="-|>", color=col, lw=2.5), zorder=6) - ax.set_title(f"V = {Vp:.0f} V, U = {sign * Vp:+.0f} eV, " - f"|E| = {np.hypot(Exp, Ezp):.0f} V/m", fontsize=10) - else: - ax.set_title("test charge is inside the conductor", fontsize=10) - ax.set_xlabel("x [m]"); ax.set_ylabel("z [m]") - ax.set_xlim(-8, 8); ax.set_ylim(-0.3, 10); ax.set_aspect("equal") - - # right: V(z) and U(z)/e along the vertical line through the test charge - zz = np.linspace(0, 10, 400) - Vz = fair_weather(np.full_like(zz, x_p), zz, E0, a)[0] - ax2.plot(Vz, zz, "k", lw=2, label="V(z) [V]") - ax2.plot(sign * Vz, zz, color=col, lw=2, ls="--", - label=f"U(z)/e for q = {'−e' if sign < 0 else '+e'} [eV]") - ax2.plot([Vp, sign * Vp], [z_p, z_p], "o", color="0.3") - ax2.axvline(0, color="0.6", lw=0.8) - ax2.set_xlim(-10.5 * E0, 10.5 * E0); ax2.set_ylim(0, 10) - ax2.set_xlabel("V [V] or U/e [eV]"); ax2.set_ylabel("z [m]") - ax2.set_title(f"Profile along x = {x_p:.1f} m", fontsize=10) - ax2.legend(loc="upper left", fontsize=8, frameon=False) - return fig - -style = {"description_width": "150px"} -live_explorer( - explore, - E0=widgets.FloatSlider(value=100, min=50, max=300, step=10, style=style, - description="E₀ [V/m]", continuous_update=False), - a=widgets.FloatSlider(value=0.0, min=0.0, max=3.0, step=0.25, style=style, - description="object radius a [m]", continuous_update=False), - charge=widgets.ToggleButtons(options=["electron (−e)", "N₂⁺ ion (+e)"], - description="test charge", style=style), - x_p=widgets.FloatSlider(value=3.0, min=-7.5, max=7.5, step=0.25, style=style, - description="charge x [m]", continuous_update=False), - z_p=widgets.FloatSlider(value=4.0, min=0.25, max=9.75, step=0.25, style=style, - description="charge z [m]", continuous_update=False), -); -``` diff --git a/book/2_potential_fields/labs/week4/week4_exersizes.md b/book/2_potential_fields/labs/week4/week4_exersizes.md index 5b5ded5..6ae2458 100644 --- a/book/2_potential_fields/labs/week4/week4_exersizes.md +++ b/book/2_potential_fields/labs/week4/week4_exersizes.md @@ -10,9 +10,9 @@ kernelspec: name: python3 --- -# Exercises Week 4 +# Lab 4: Electrostatic and Magnetic Fields -## Explore a spherical capacitor +## 1. Explore a spherical capacitor Two concentric conducting shells with free space between them, an **inner shell** of radius $R_E=6370\ \text{km}$ (the Earth) held at $V=0$, and an **outer shell** of radius $R_I$ (the ionosphere) held at $V=V_o$, is the same setup as the Earth-ionosphere model in the {doc}`week 4 quiz `. Between the shells, the potential takes the form @@ -97,3 +97,96 @@ display({"text/html": ''}, raw=True) +``` diff --git a/book/_toc.yml b/book/_toc.yml index 7bf1445..a30cfdf 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -66,7 +66,6 @@ parts: - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes_solutions.md - file: 2_potential_fields/labs/week4/week4_exersizes.md - - file: 2_potential_fields/labs/week4/week4_exercises.md - file: 2_potential_fields/labs/week4/week4_exercises_solutions.md - file: 2_potential_fields/labs/week4/week4_quiz.md # - file: 2_potential_fields/gradient_fields.md From 5b8e311eabca81cff3219f5f5e4e9d88aae3f6d2 Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Fri, 25 Sep 2026 09:10:19 +0200 Subject: [PATCH 08/13] divided ex 2 into lab&quiz to follow the "derive-then-explore" pattern --- .../labs/week4/week4_exercises.md | 186 ++++++++++++++ .../labs/week4/week4_exercises_solutions.md | 234 ++++++++---------- .../labs/week4/week4_quiz.md | 16 ++ .../labs/week4/week4_quiz_solutions.md | 53 +++- book/_toc.yml | 5 +- 5 files changed, 359 insertions(+), 135 deletions(-) create mode 100644 book/2_potential_fields/labs/week4/week4_exercises.md diff --git a/book/2_potential_fields/labs/week4/week4_exercises.md b/book/2_potential_fields/labs/week4/week4_exercises.md new file mode 100644 index 0000000..2e39f0c --- /dev/null +++ b/book/2_potential_fields/labs/week4/week4_exercises.md @@ -0,0 +1,186 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 +kernelspec: + display_name: Python 3 (ipykernel) + language: python + name: python3 +--- + +# Lab 4: Electrostatic and Magnetic Fields + +## 1. Explore a spherical capacitor + +Two concentric conducting shells with free space between them, an **inner shell** of radius $R_E=6370\ \text{km}$ (the Earth) held at $V=0$, and an **outer shell** of radius $R_I$ (the ionosphere) held at $V=V_o$, is the same setup as the Earth-ionosphere model in the {doc}`week 4 quiz `. Between the shells, the potential takes the form + +```{math} +V(r) = A + \frac{B}{r}, \qquad R_E \le r \le R_I, +``` + +with $A$ and $B$ fixed entirely by the two boundary conditions $V(R_E)=0$ and $V(R_I)=V_o$. Inside the inner shell $V=0$ (it is a conductor), and outside the outer shell $V=V_o$ with $\vec E = 0$ (the shells enclose zero net charge together). + +Use the sliders below to change the outer radius $R_I$ (km) and the outer voltage $V_o$ (kV, 0 to 200), and watch $V(r)$ and $E(r)=-dV/dr$ update. **The radial axis in the plots is not to scale**: the gap between the shells (tens to thousands of km) is stretched for readability against Earth's 6370 km radius. + +```{code-cell} ipython3 +:tags: [remove-input, remove-output] + +import numpy as np + +def solve_coefficients(r_inner, r_outer, v_outer): + """Solve A, B given V(r_inner) = 0 and V(r_outer) = v_outer.""" + b = v_outer / (1.0 / r_outer - 1.0 / r_inner) + a = -b / r_inner + return a, b + +def potential(r, r_inner, r_outer, v_outer): + a, b = solve_coefficients(r_inner, r_outer, v_outer) + r = np.asarray(r, float) + v = np.full_like(r, v_outer, dtype=float) + between = (r >= r_inner) & (r <= r_outer) + v[between] = a + b / r[between] + v[r < r_inner] = 0.0 + return v + +def field(r, r_inner, r_outer, v_outer): + """E(r) = -dV/dr = B / r**2 between the shells, else zero.""" + _, b = solve_coefficients(r_inner, r_outer, v_outer) + r = np.asarray(r, float) + e = np.zeros_like(r, dtype=float) + between = (r >= r_inner) & (r <= r_outer) + e[between] = b / r[between] ** 2 + return e + +# Boundary conditions and the field-potential relation, checked at an example (r_i, r_o, V_o). +r_i, r_o, v_o = 6370.0, 6470.0, 1.0e5 +np.testing.assert_allclose(potential(r_i, r_i, r_o, v_o), 0.0, atol=1e-9) +np.testing.assert_allclose(potential(r_o, r_i, r_o, v_o), v_o) +r_mid = 0.5 * (r_i + r_o) +eps = 1e-3 +numeric_e = -(potential(r_mid + eps, r_i, r_o, v_o) - potential(r_mid - eps, r_i, r_o, v_o)) / (2 * eps) +np.testing.assert_allclose(numeric_e, field(r_mid, r_i, r_o, v_o), rtol=1e-6) +print("Boundary conditions and E = -dV/dr checks passed.") +``` + +```{code-cell} ipython3 +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("spherical_capacitor_lab.html"), + Path("book/2_potential_fields/labs/week4/spherical_capacitor_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("spherical_capacitor_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` + +### Explore, predict, explain + +1. **Reproduce the quiz numbers.** Set $R_I = 6470$ km (100 km altitude) and $V_o = 100$ kV, matching the week 4 quiz. Read off $A$ and $B$, and compare them to the closed-form expressions you derived by hand. Then check the field at 50 km altitude (probe $r=6420$ km) against your answer to part (e). +2. **Move the outer shell farther away.** Keep $V_o$ fixed and increase $R_I$. Does $|B|$ grow or shrink? Explain why the field between the shells changes even though $V_o$ has not. +3. **Increase $V_o$ toward 200 kV.** What happens to the field magnitude at a fixed altitude? Is the relationship linear? +4. **Move the probe outside $R_I$ and inside $R_E$.** Confirm that $V$ is constant and $E=0$ in both regions, consistent with each shell being an equipotential conductor. + +## 2. Charges in the fair-weather field + +On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): +```{math} +\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. +``` +Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). + +Parts (a)–(d) of this exercise are question 2 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). + +(e) In the undisturbed fair-weather field, the potential difference between $z=0$ and $z=2\ \mathrm{m}$ is $200\ \mathrm{V}$ (quiz part (a)). You are standing on the ground and are about $2\ \mathrm{m}$ tall. Is there a $200\ \mathrm{V}$ potential difference between your head and your feet? Sketch how the equipotentials change around you and explain your reasoning. *Hint:* you are a conductor connected to the ground (W4L1, slide 14). + +### Check your answers with Python + +Fill in the blanks (`___`) and run the cell to check your numbers for parts (a), (b) and (d) of the quiz. + +```{code-cell} ipython3 +:tags: [skip-execution] + +import numpy as np + +e = 1.602e-19 # elementary charge [C] +E0 = 100.0 # fair-weather field strength [V/m] +g = 9.81 # gravitational acceleration [m/s^2] + +def V_fair(z): + """Fair-weather potential above flat ground, V(0) = 0.""" + return ___ + +# (b), (c): move each particle from z = 0 to z = 10 m +dV = V_fair(10.0) - V_fair(0.0) +for name, q in [("electron", -e), ("N2+ ion ", +e)]: + dU = ___ # change in potential energy [J] + W = ___ # work done by the field [J] + Fz = ___ # z-component of F = qE, with E = -E0 z_hat [N] + print(f"{name}: dV = {dV:.0f} V, dU = {dU:+.2e} J = {dU/e:+.0f} eV, " + f"W_field = {W:+.2e} J, F_z = {Fz:+.1e} N") + +# (d): dust grain levitated by the fair-weather field +a_d, rho_d = 1e-6, 2650.0 # radius [m], density [kg/m^3] +m_d = ___ # mass of the grain [kg] +q_d = ___ # charge magnitude for |qE| = mg [C] +print(f"m = {m_d:.2e} kg, |q| = {q_d:.2e} C = {q_d/e:.0f} excess electrons") + +# self-check +assert np.isclose(V_fair(2.0), 200.0), "V(2 m) should be 200 V" +assert np.isclose(q_d / e, 6.8e3, rtol=0.02), "check the mass or the force balance" +print("Self-check passed.") +``` + +The explorer below shows the fair-weather field over flat ground. You can add a grounded conducting hemisphere of radius $a$, a crude model of a person, a tree or a small hill. Its potential is +```{math} +V(\vec{r}) = E_0 z\left(1 - \frac{a^3}{r^3}\right), \qquad z \geq 0,\ r \geq a. +``` +The upper panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipotentials in white (every $E_0\cdot 1\ \mathrm{m}$), the field lines in grey, and the force $\vec{F} = q\vec{E}$ on the test charge as an arrow. The lower panel shows $V(z)$ and $U(z)/e$ along the vertical line through the test charge. + +1. With $a = 0$, move the test charge up and down. Check your answers to quiz parts (a) and (b). +2. Switch between the electron and the ion. Which quantities change, and which stay the same? (W4L1, slide 9) +3. Set $a = 1\ \mathrm{m}$. Where do the equipotentials crowd together? Read $|\vec{E}|$ just above the top of the object and near its base. Use this to check your sketch for (e). + +```{code-cell} ipython3 +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("fair_weather_lab.html"), + Path("book/2_potential_fields/labs/week4/fair_weather_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("fair_weather_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` diff --git a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md index 8f71d86..5416ea4 100644 --- a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md @@ -10,58 +10,90 @@ kernelspec: name: python3 --- # Lab 4: Electrostatic and Magnetic Fields (Solutions) -## 1. Warm-up: charges in the fair-weather field - -On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): +## 1. Explore a spherical capacitor + +Between the shells the region is free space, so the potential obeys Laplace's equation. With spherical symmetry this reduces to the radial form used in the {doc}`week 4 quiz `, whose solution is $V(r) = A + B/r$. The two constants follow from the boundary conditions $V(R_E)=0$ and $V(R_I)=V_o$: ```{math} -\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. +\boxed{B = \frac{V_o}{1/R_I - 1/R_E}}, \qquad \boxed{A = -\frac{B}{R_E}}, +\qquad +V(r) = V_o\,\frac{1/R_E - 1/r}{1/R_I - 1/R_E}. ``` -Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). - -(a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the potential at $z = 2\ \mathrm{m}$? - -(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. - -(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting electric current flow? - -(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? - -(e) You are standing on the ground and are about $2\ \mathrm{m}$ tall. Is there a $200\ \mathrm{V}$ potential difference between your head and your feet? Sketch how the equipotentials change around you. *Hint:* you are a conductor connected to the ground (W4L1, slide 14). - -**(a)** The equipotentials are horizontal planes spaced evenly: every metre up adds $100\ \mathrm{V}$. The field lines are vertical, point downward and are equally spaced, so the field is uniform. At head height, +The field between the shells is radial, ```{math} -V(2\ \mathrm{m}) = E_0 z = (100)(2) = \boxed{200\ \mathrm{V}}. +\vec{E} = -\vec{\nabla}V = -\frac{\partial V}{\partial r}\hat{r} = \boxed{\frac{B}{r^2}\,\hat{r}}. ``` -The potential increases upward, while $\vec{E}$ points down, from high to low potential. - -**(b)** The potential difference does not depend on the test charge: +Because the outer shell is at the higher potential, $B<0$: the field points radially **inward**, i.e. downward at the ground, in agreement with the fair-weather field of Exercise 2. + +**1. Reproduce the quiz numbers.** With $R_E = 6370\ \mathrm{km}$, $R_I = 6470\ \mathrm{km}$ and $V_o = 100\ \mathrm{kV}$, ```{math} -\Delta V = V(10\ \mathrm{m}) - V(0) = \boxed{1000\ \mathrm{V}}. +\frac{1}{R_I}-\frac{1}{R_E} = \frac{R_E-R_I}{R_I R_E} = -2.427\cdot 10^{-9}\ \mathrm{m^{-1}}, ``` -Using $\Delta U = q\Delta V$ and $W_\mathrm{field} = -\Delta U$ (W4L1, slide 13): - -| | $q$ | $\Delta U$ | $W_\mathrm{field}$ | -|---|---|---|---| -| electron | $-e$ | $-1.60\cdot 10^{-16}\ \mathrm{J} = -1000\ \mathrm{eV}$ | $+1.60\cdot 10^{-16}\ \mathrm{J}$ | -| $\mathrm{N_2^+}$ ion | $+e$ | $+1.60\cdot 10^{-16}\ \mathrm{J} = +1000\ \mathrm{eV}$ | $-1.60\cdot 10^{-16}\ \mathrm{J}$ | - -Moving up the electron *loses* potential energy, because the field does positive work on it. The ion *gains* potential energy, because the field works against the motion. Same $\Delta V$, opposite energies. - -**(c)** The force is $\vec{F} = q\vec{E} = q(-E_0\hat{z})$. -- Electron: $\vec{F} = (-e)(-E_0\hat{z}) = +eE_0\hat{z} = +1.6\cdot 10^{-17}\ \mathrm{N}\,\hat{z}$. It **accelerates upward**, toward lower potential energy. -- Ion: $\vec{F} = -eE_0\hat{z}$. It accelerates downward. -Positive charge moving down and negative charge moving up both give a **downward** current. This is the small fair-weather current of the global atmospheric electrical circuit, which flows downward through fair-weather regions because air is a poor, but not perfect, insulator. Thunderstorms help maintain the potential difference between the upper atmosphere and the ground that drives it (W4L1, slide 16). - -**(d)** The mass of the grain is ```{math} -m = \tfrac{4}{3}\pi a^3 \rho = \tfrac{4}{3}\pi (10^{-6})^3 (2650) = 1.11\cdot 10^{-14}\ \mathrm{kg}. +B = \frac{10^{5}}{-2.427\cdot 10^{-9}} = \boxed{-4.12\cdot 10^{13}\ \mathrm{V\,m}}, +\qquad +A = -\frac{B}{R_E} = \boxed{6.47\cdot 10^{6}\ \mathrm{V}}, +``` +matching parts (b) and (d) of the quiz. At $50\ \mathrm{km}$ altitude, $r = 6420\ \mathrm{km}$: +```{math} +\vec{E} = \frac{B}{r^2}\hat{r} = \frac{-4.12\cdot 10^{13}}{(6.42\cdot 10^6)^2}\hat{r} += \boxed{-1.00\ \mathrm{V/m}\ \hat{r}}, +``` +a field of $1.00\ \mathrm{V/m}$ pointing towards the Earth, as in part (e). + +```{note} +The explorer reports $B$ in $\mathrm{V\,km}$, because it works with radii in kilometres: it shows $-4.12\cdot 10^{10}\ \mathrm{V\,km}$, which is the same number as $-4.12\cdot 10^{13}\ \mathrm{V\,m}$. ``` -A negative charge feels an upward force (see (c)), so it can balance gravity when $|q|E_0 = mg$: + +**2. Move the outer shell farther away.** Writing the gap as $d = R_I - R_E$, ```{math} -|q| = \frac{mg}{E_0} = \frac{(1.11\cdot 10^{-14})(9.81)}{100} = 1.09\cdot 10^{-15}\ \mathrm{C}, -\qquad N = \frac{|q|}{e} \approx \boxed{6.8\cdot 10^{3}\ \text{electrons}}. +B = \frac{V_o}{1/R_I - 1/R_E} = -\,\frac{V_o R_E R_I}{d}, ``` -In this model, $\vec{E}$ is uniform, so the answer **does not depend on height**. The linear potential is only valid near the ground (W4L1, slide 17). In real dust storms, the field near the ground can be much stronger than $E_0$, so far less charge is needed. +so $|B|$ **shrinks** as $R_I$ grows at fixed $V_o$, and with it the field at any fixed radius. Numerically, at the Earth's surface: $1.02\ \mathrm{V/m}$ for $d = 100\ \mathrm{km}$, $0.52\ \mathrm{V/m}$ for $200\ \mathrm{km}$, $0.12\ \mathrm{V/m}$ for $1000\ \mathrm{km}$. The field is not fixed by $V_o$ alone because the field is the *rate* at which the potential changes with distance, and the same $100\ \mathrm{kV}$ is now spread over a thicker gap. For a thin gap, $d \ll R_E$, the shells are almost parallel plates and +```{math} +|\vec{E}| \approx \frac{V_o}{d} = \frac{10^5\ \mathrm{V}}{10^5\ \mathrm{m}} = 1\ \mathrm{V/m}, +``` +which is why the answer to question 1 came out so close to $1\ \mathrm{V/m}$. As $R_I\to\infty$ the field does not vanish but tends to that of an isolated charged sphere, $|B| \to V_o R_E$. + +**3. Increase $V_o$ toward 200 kV.** Both $A$ and $B$ are proportional to $V_o$, so at every radius +```{math} +|\vec{E}| = \frac{|B|}{r^2} \propto V_o . +``` +The relationship is **linear**: doubling $V_o$ from $100$ to $200\ \mathrm{kV}$ doubles the field at $50\ \mathrm{km}$ altitude from $1.00$ to $2.00\ \mathrm{V/m}$. This is a direct consequence of Laplace's equation being linear, so scaling the boundary values scales the whole solution. + +**4. Move the probe outside $R_I$ and inside $R_E$.** Outside the outer shell the explorer shows $V = V_o$ and $E = 0$: the two shells carry equal and opposite charges, so any sphere enclosing both contains zero net charge and Gauss's law gives no flux, hence no field. Inside the inner shell $V = 0$ and $E = 0$, as in the interior of any conductor in electrostatic equilibrium. In both regions the potential is constant, consistent with each shell being an equipotential surface: the entire field lives in the gap between them. + +```{code-cell} ipython3 +import numpy as np + +R_E, R_I, V_o = 6370e3, 6470e3, 100e3 # m, m, V + +B = V_o / (1 / R_I - 1 / R_E) +A = -B / R_E +r = 6420e3 # 50 km altitude +print(f"A = {A:.3e} V, B = {B:.3e} V m, E(50 km) = {B / r**2:+.2f} V/m") +print(f"thin-gap estimate V_o/d = {V_o / (R_I - R_E):.2f} V/m") + +for R in (6470e3, 6570e3, 7370e3): # question 2: a thicker gap + b = V_o / (1 / R - 1 / R_E) + print(f" d = {(R - R_E)/1e3:6.0f} km -> |E| at the ground = {abs(b)/R_E**2:.3f} V/m") + +# self-check against the quiz +assert np.isclose(B, -4.12e13, rtol=1e-3) and np.isclose(A, 6.47e6, rtol=1e-3) +assert np.isclose(B / r**2, -1.00, atol=5e-3) +print("Matches the quiz values for A, B and E(50 km).") +``` + +## 2. Charges in the fair-weather field + +On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): +```{math} +\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. +``` +Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). + +Parts (a)–(d) of this exercise are question 2 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). + +(e) In the undisturbed fair-weather field, the potential difference between $z=0$ and $z=2\ \mathrm{m}$ is $200\ \mathrm{V}$ (quiz part (a)). You are standing on the ground and are about $2\ \mathrm{m}$ tall. Is there a $200\ \mathrm{V}$ potential difference between your head and your feet? Sketch how the equipotentials change around you and explain your reasoning. *Hint:* you are a conductor connected to the ground (W4L1, slide 14). **(e)** No. Your body is a conductor connected to the ground, so in electrostatic equilibrium it is an equipotential with $V = 0$ (W4L1, slides 14–15). Charge redistributes (negative charge gathers near your head) until the field inside you vanishes. That is why you feel nothing. @@ -77,7 +109,7 @@ three times the fair-weather ground value $\sigma_q=-\epsilon_0E_0\approx-8.9\cd The potential of the hemisphere is the uniform field plus a dipole term $-E_0 a^3 z/r^3$. The hemisphere and its mirror image below the ground together form a full sphere, which is the same kind of dipole construction as the image charge in W4L1, slide 24. -### Python check +### Check your answers with Python ```{code-cell} ipython3 import numpy as np @@ -115,97 +147,35 @@ The explorer below shows the fair-weather field over flat ground. You can add a ```{math} V(\vec{r}) = E_0 z\left(1 - \frac{a^3}{r^3}\right), \qquad z \geq 0,\ r \geq a. ``` -The left panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipotentials in white (every $E_0\cdot 1\ \mathrm{m}$), the field lines in grey, and the force $\vec{F} = q\vec{E}$ on the test charge as an arrow. The right panel shows $V(z)$ and $U(z)/e$ along the vertical line through the test charge. +The upper panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipotentials in white (every $E_0\cdot 1\ \mathrm{m}$), the field lines in grey, and the force $\vec{F} = q\vec{E}$ on the test charge as an arrow. The lower panel shows $V(z)$ and $U(z)/e$ along the vertical line through the test charge. 1. With $a = 0$, move the test charge up and down. Check your answers to (a) and (b). 2. Switch between the electron and the ion. Which quantities change, and which stay the same? (W4L1, slide 9) 3. Set $a = 1\ \mathrm{m}$. Where do the equipotentials crowd together? Read $|\vec{E}|$ just above the top of the object and near its base. Use this to check your sketch for (e). + ```{code-cell} ipython3 -%matplotlib inline -import numpy as np -import matplotlib.pyplot as plt -import ipywidgets as widgets - -def fair_weather(x, z, E0, a): - """Fair-weather field over flat ground with a grounded conducting hemisphere - of radius a at the origin (a crude person, tree or hill; a = 0: flat ground). - V = E0 z (1 - a^3/r^3), z >= 0, r = sqrt(x^2 + z^2) >= a - Returns V [V], Ex, Ez [V/m] in the plane y = 0.""" - x, z = np.asarray(x, float), np.asarray(z, float) - if a == 0: - return E0 * z, 0 * x, -E0 + 0 * x - r = np.maximum(np.hypot(x, z), 1e-9) - k = a**3 / r**3 - V = E0 * z * (1 - k) - Ex = -E0 * 3 * a**3 * x * z / r**5 - Ez = -E0 * (1 - k + 3 * a**3 * z**2 / r**5) - inside = r < a # inside the conductor - V = np.where(inside, 0.0, V) - Ex = np.where(inside, np.nan, Ex) - Ez = np.where(inside, np.nan, Ez) - return V, Ex, Ez - -def explore(E0=100, a=0.0, charge="electron (−e)", x_p=3.0, z_p=4.0): - sign = -1 if charge.startswith("electron") else +1 - col = "tab:blue" if sign < 0 else "tab:red" - x = np.linspace(-8, 8, 321); z = np.linspace(0, 10, 201) - X, Z = np.meshgrid(x, z) - V, Ex, Ez = fair_weather(X, Z, E0, a) - - fig, (ax, ax2) = plt.subplots(1, 2, figsize=(11, 4.6), layout="constrained", - gridspec_kw=dict(width_ratios=(1.7, 1))) - # left: |E|/E0 in colour, equipotentials in white, field lines in grey - pc = ax.pcolormesh(X, Z, np.hypot(Ex, Ez) / E0, cmap="magma", vmin=0, vmax=3, - shading="auto") - ax.contour(X, Z, V, levels=np.linspace(0, 10 * E0, 11)[1:], colors="w", linewidths=0.8) - ax.streamplot(x, z, Ex, Ez, color="0.75", density=1.1, linewidth=0.7, arrowsize=0.8) - if a > 0: - t = np.linspace(0, np.pi, 100) - ax.fill(a * np.cos(t), a * np.sin(t), color="0.35", zorder=3) - ax.axhline(0, color="k", lw=2) - fig.colorbar(pc, ax=ax, shrink=0.85, label=r"$|\vec{E}|\,/\,E_0$") - - # test charge and its force F = qE (arrow length proportional to |F|) - Vp, Exp, Ezp = [float(v) for v in fair_weather(x_p, z_p, E0, a)] - if np.hypot(x_p, z_p) >= a: - s = 1.2 / E0 - ax.plot(x_p, z_p, "o", ms=10, color=col, mec="k", zorder=5) - ax.annotate("", xy=(x_p + s * sign * Exp, z_p + s * sign * Ezp), xytext=(x_p, z_p), - arrowprops=dict(arrowstyle="-|>", color=col, lw=2.5), zorder=6) - ax.set_title(f"V = {Vp:.0f} V, U = {sign * Vp:+.0f} eV, " - f"|E| = {np.hypot(Exp, Ezp):.0f} V/m", fontsize=10) - else: - ax.set_title("test charge is inside the conductor", fontsize=10) - ax.set_xlabel("x [m]"); ax.set_ylabel("z [m]") - ax.set_xlim(-8, 8); ax.set_ylim(-0.3, 10); ax.set_aspect("equal") - - # right: V(z) and U(z)/e along the vertical line through the test charge - zz = np.linspace(0, 10, 400) - Vz = fair_weather(np.full_like(zz, x_p), zz, E0, a)[0] - ax2.plot(Vz, zz, "k", lw=2, label="V(z) [V]") - ax2.plot(sign * Vz, zz, color=col, lw=2, ls="--", - label=f"U(z)/e for q = {'−e' if sign < 0 else '+e'} [eV]") - ax2.plot([Vp, sign * Vp], [z_p, z_p], "o", color="0.3") - ax2.axvline(0, color="0.6", lw=0.8) - ax2.set_xlim(-10.5 * E0, 10.5 * E0); ax2.set_ylim(0, 10) - ax2.set_xlabel("V [V] or U/e [eV]"); ax2.set_ylabel("z [m]") - ax2.set_title(f"Profile along x = {x_p:.1f} m", fontsize=10) - ax2.legend(loc="upper left", fontsize=8, frameon=False) - plt.show() - -style = {"description_width": "150px"} -widgets.interact( - explore, - E0=widgets.FloatSlider(value=100, min=50, max=300, step=10, style=style, - description="E₀ [V/m]", continuous_update=False), - a=widgets.FloatSlider(value=0.0, min=0.0, max=3.0, step=0.25, style=style, - description="object radius a [m]", continuous_update=False), - charge=widgets.ToggleButtons(options=["electron (−e)", "N₂⁺ ion (+e)"], - description="test charge", style=style), - x_p=widgets.FloatSlider(value=3.0, min=-7.5, max=7.5, step=0.25, style=style, - description="charge x [m]", continuous_update=False), - z_p=widgets.FloatSlider(value=4.0, min=0.25, max=9.75, step=0.25, style=style, - description="charge z [m]", continuous_update=False), -); -``` - \ No newline at end of file +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("fair_weather_lab.html"), + Path("book/2_potential_fields/labs/week4/fair_weather_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("fair_weather_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` diff --git a/book/2_potential_fields/labs/week4/week4_quiz.md b/book/2_potential_fields/labs/week4/week4_quiz.md index b014335..c056c6b 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz.md +++ b/book/2_potential_fields/labs/week4/week4_quiz.md @@ -23,3 +23,19 @@ Find expressions for $A$ and $B$, and write the expression for the potential in (e) What is the strength of the field at 50 km altitude, and in which direction is it pointing? + + +## 2. +On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): +```{math} +\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. +``` +Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). + +(a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the electric potential $V$ at $z = 2\ \mathrm{m}$, given the reference $V(0) = 0$ ? + +(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. + +(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? + +(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? diff --git a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md index 5f5e62d..a1f3b00 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md @@ -78,4 +78,55 @@ A &= \frac{-(-4.12 \cdot 10^{13})}{(6370\cdot 10^3)} \\ &= \boxed{-1.00\ \mathrm{V/m}\ \hat{r}} \end{aligned} ``` -The field points radially inward (ie. down), from high potential to low. \ No newline at end of file +The field points radially inward (ie. down), from high potential to low. + + +## 2. +On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): +```{math} +\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. +``` +Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). + +(a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the electric potential $V$ at $z = 2\ \mathrm{m}$, given the reference $V(0) = 0$ ? + +(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. + +(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? + +(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? + +**(a)** The equipotentials are horizontal planes spaced evenly: every metre up adds $100\ \mathrm{V}$. The field lines are vertical, point downward and are equally spaced, so the field is uniform. At head height, +```{math} +V(2\ \mathrm{m}) = E_0 z = (100)(2) = \boxed{200\ \mathrm{V}}. +``` +The potential increases upward, while $\vec{E}$ points down, from high to low potential. + +**(b)** The potential difference does not depend on the test charge: +```{math} +\Delta V = V(10\ \mathrm{m}) - V(0) = \boxed{1000\ \mathrm{V}}. +``` +Using $\Delta U = q\Delta V$ and $W_\mathrm{field} = -\Delta U$ (W4L1, slide 13): + +| | $q$ | $\Delta U$ | $W_\mathrm{field}$ | +|---|---|---|---| +| electron | $-e$ | $-1.60\cdot 10^{-16}\ \mathrm{J} = -1000\ \mathrm{eV}$ | $+1.60\cdot 10^{-16}\ \mathrm{J}$ | +| $\mathrm{N_2^+}$ ion | $+e$ | $+1.60\cdot 10^{-16}\ \mathrm{J} = +1000\ \mathrm{eV}$ | $-1.60\cdot 10^{-16}\ \mathrm{J}$ | + +Moving up the electron *loses* potential energy, because the field does positive work on it. The ion *gains* potential energy, because the field works against the motion. Same $\Delta V$, opposite energies. + +**(c)** The force is $\vec{F} = q\vec{E} = q(-E_0\hat{z})$. +- Electron: $\vec{F} = (-e)(-E_0\hat{z}) = +eE_0\hat{z} = +1.6\cdot 10^{-17}\ \mathrm{N}\,\hat{z}$. It **accelerates upward**, toward lower potential energy. +- Ion: $\vec{F} = -eE_0\hat{z}$. It accelerates downward. +Positive charge moving down and negative charge moving up both give a **downward** current. This is the small fair-weather current of the global atmospheric electrical circuit, which flows downward through fair-weather regions because air is a poor, but not perfect, insulator. Thunderstorms help maintain the potential difference between the upper atmosphere and the ground that drives it (W4L1, slide 16). + +**(d)** The mass of the grain is +```{math} +m = \tfrac{4}{3}\pi a^3 \rho = \tfrac{4}{3}\pi (10^{-6})^3 (2650) = 1.11\cdot 10^{-14}\ \mathrm{kg}. +``` +A negative charge feels an upward force (see (c)), so it can balance gravity when $|q|E_0 = mg$: +```{math} +|q| = \frac{mg}{E_0} = \frac{(1.11\cdot 10^{-14})(9.81)}{100} = 1.09\cdot 10^{-15}\ \mathrm{C}, +\qquad N = \frac{|q|}{e} \approx \boxed{6.8\cdot 10^{3}\ \text{electrons}}. +``` +In this model, $\vec{E}$ is uniform, so the answer **does not depend on height**. The linear potential is only valid near the ground (W4L1, slide 17). In real dust storms, the field near the ground can be much stronger than $E_0$, so far less charge is needed. diff --git a/book/_toc.yml b/book/_toc.yml index a30cfdf..f7fad1c 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -65,9 +65,10 @@ parts: - file: 2_potential_fields/magnetic_field/exercises.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes_solutions.md - - file: 2_potential_fields/labs/week4/week4_exersizes.md - - file: 2_potential_fields/labs/week4/week4_exercises_solutions.md - file: 2_potential_fields/labs/week4/week4_quiz.md + - file: 2_potential_fields/labs/week4/week4_quiz_solutions.md + - file: 2_potential_fields/labs/week4/week4_exercises.md + - file: 2_potential_fields/labs/week4/week4_exercises_solutions.md # - file: 2_potential_fields/gradient_fields.md # - file: 2_potential_fields/divergence_free_fields.md # - file: 2_potential_fields/curl_free_fields.md From f7216a6171d1fb33378bace332a584c6c2a34acb Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Fri, 25 Sep 2026 10:12:28 +0200 Subject: [PATCH 09/13] added ex3 - earth's magnetic field --- .../labs/week4/earth_dipole_lab.html | 251 ++++++++++++++++++ .../labs/week4/figures/earth_dipole_setup.png | Bin 0 -> 72736 bytes .../figures/earth_dipole_vectors_solution.png | Bin 0 -> 145718 bytes .../labs/week4/week4_exercises.md | 107 ++++++++ .../labs/week4/week4_exercises_solutions.md | 132 +++++++++ .../labs/week4/week4_exersizes.md | 192 -------------- .../labs/week4/week4_quiz.md | 26 +- .../labs/week4/week4_quiz_solutions.md | 69 ++++- 8 files changed, 581 insertions(+), 196 deletions(-) create mode 100644 book/2_potential_fields/labs/week4/earth_dipole_lab.html create mode 100644 book/2_potential_fields/labs/week4/figures/earth_dipole_setup.png create mode 100644 book/2_potential_fields/labs/week4/figures/earth_dipole_vectors_solution.png delete mode 100644 book/2_potential_fields/labs/week4/week4_exersizes.md diff --git a/book/2_potential_fields/labs/week4/earth_dipole_lab.html b/book/2_potential_fields/labs/week4/earth_dipole_lab.html new file mode 100644 index 0000000..bf4fc8a --- /dev/null +++ b/book/2_potential_fields/labs/week4/earth_dipole_lab.html @@ -0,0 +1,251 @@ + + + + + + + + +
+
+
+
+
+ + +
+
+
Dipole field lines and the head-to-tail construction at the probe
+
+
+
|B| along the radial line through the probe
+
+
At the surface: angle below horizontal and |B|/B*
+
+
+
+

+

Drawn as in the lecture slides: m̂ = ẑ points up the page and θ is measured from m̂. For the present Earth, m̂ points to the southern end of the dipole axis, so the southern end (θ = 0) is at the top and the northern end (θ = 180°) at the bottom. Arrows at the probe show the bracket 3(m̂·r̂)r̂ − m̂ (blue: 3(m̂·r̂)r̂, red: −m̂, black: sum); their length does not depend on r. The field itself is B = B*(a/r)3 times this bracket, with B* = 29.7 µT and a = 6371 km.

+ + + diff --git a/book/2_potential_fields/labs/week4/figures/earth_dipole_setup.png b/book/2_potential_fields/labs/week4/figures/earth_dipole_setup.png new file mode 100644 index 0000000000000000000000000000000000000000..99224ad50b57c3bc209ea2c24bb126991e36ee09 GIT binary patch literal 72736 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 Cmi+7h literal 0 HcmV?d00001 diff --git a/book/2_potential_fields/labs/week4/figures/earth_dipole_vectors_solution.png b/book/2_potential_fields/labs/week4/figures/earth_dipole_vectors_solution.png new file mode 100644 index 0000000000000000000000000000000000000000..d8b61f834c3d17d621288df5039919ca31216100 GIT binary patch literal 145718 zcmce;bzGF))&>knE1*(J2r7+&beDi2(kW6R4&B{I2+}AZIdp?`cPQQ6LrHfHFvPd# zdCz&j_xByoInQ6;AK(bX%-nnLwbr$+>soi9qP!FyE*UNg3JTt9X$fT%6ztb1DCiv6 znBXVTuNIzze^Bj|rCy>G_ET(t|42aIzBZJTLtz4su~AS1Oi<8~PXS+K;0p!iRthT0 zE$}ZY@@FY%|NJfX>y%sne2mV4d?K-0u`vpYD9URIF;!>O?K!M^qOtRv198%q84T|O z?+K*fJo$p5swzQ5Bq?biE=fyf5HrbqYHU8)Lc+y_tAvh0{)F1+3kK~ZISCOC+7lmy z2<&Je4mR6RS7vcKKi80a#rT&D1hW+2a5wj>ZwT6ec ziKC#R-xd9@-x5*8?rUTJjn~DdR-{MA{+2_S9p@|YUtbpa&OS8Nn1ACF+!alc$G%IW zL@&>Q75KL<5&g9_-hW>Ra807nyVTNY@`;A{_y5*nV1HX6`|nEzuF0GKv1o(@l(&z9 z=I`tYxV#pwzqfr3FF#QS^4rAoN&lVQ1DEGx_O~_zebW!@w8IjoUButoY|#kxiNCcO z*rPaLr#F9^tWw|mJ8Soe8mI7YZN}XkLNxT(qk$v6Vo(0o+JS?7>u+7#{|^Vb#{Jy( zsPk!fEUB(D>Ye|-mEQbJ;6PCd9XRY1Cvce=W+^0Fy25uY+Cv_yOyDOkOaAvwE=D`K zUrFsPs&n^kgKNbGtf|T6{C7-W6r)Nn_l&s;DSm>%--z3@WMo3Xg|O}yd0q8fZYX$l zZ}5)md3kVH%?pmyyBsBsr?da}GcS6M%lQnJHDZf?-PHVD%hIG@V6VP_mrfzcT-W6{ zaoNo^f{^-a^n>Wl_~w%dJ*)4}G(Ye=?QRRxM_XS;JIh8}>+)j$r)5jwM(?CiBH!FD zQ%9e7-FiNfE=5q*hA$9%u-uX0j~93^FPgAL{*C$qcw3>Q9(KO&~W%v^)ZlhtV);BxBJdFIo$4+uy3M}t%JsHzT z&~Nk4)agedNgNiwefpZua9ihv=cV&Vk)8;t^x5f*RYD&RtbS0gRQS)wW;6{Yj>hy}vQ7tmgfz`; zvE@*_$->^Cn7i}t#?`zMKP zd1!B(QIZKu@ z-=AxJKQJcZv>B2ljkD|Lqc@n7DJnJ{V?xI9(X?4n93~!FEV)%Z+j`H*u$*?oxF-!1Ikg0619|fi3 zncwoRWm1fcqxpE*dYcs;HIVF(i6Zf>#sF$Z=${IlXbs3*6aFKX=&fi)P1mmbl~%Au zOJ1M%{!m4%BOi?0yV$fFg~wMs%|>!7id$=voDuOglg-iG)wN_VN9c9D*WzbVbtXymj?7*% z+z7>*lX0!SgAOV^3n9D`HV_j>ivd)%viG|Mhd>yap2T{KW@7v8HEk9PZe&FIh>v)P zPZ<*tu^F`A;qjWSwy|U&!+1#iuH3_eMGX_5Li&?LYDz)4XyEN_5an4~RhEY11)8fM z4C$rQeh!fK{Shcq%K#X{K>0m7^b^`6_o3J!a8#4Mw0^5Gej5wSN`0jI$Zfl%lR6NG zkgj^PJ1@a90bK8?X72AX4LvR`%bHB`cA7CZCcB?kaM+&zvLgRg4@+Gy1^6SwhLiC( zY7I+kx#{rD{36GW++Mm|G@5e7hjgIe?fB4e-uYD6Cj_4@Tk_y-u4TU4c(YmdbyN7q zV-pb7WV2g))yw$l1;A#nJS*9^FAxtNIJO?{udx&SslTfZszc6zS;i1>2trig7@jkkW0>TOS_>U;MK!L?&dGF^^V z4Z$<)QQv`I=ML?Q*hI_ltzBQ|+dVp&GM=lg7`iLcxNfH=eLmoIZE#Fe6XZXQ?X{a$ zsnyA)(z^xu6-4~%AvaNMmRr`YCK=jmREzFrPOt0BoVIS)xYP6naSIhV2ObvqfKQKR zVAtb#8n!?0Ng;C}WLB5y_EeHh`@`Kb02SUi$zQH9O+Bm)W`S}HY6V;3N zqOF)1nR7a&pYdqkOi~w_&Wx|g&`w-fX5L(74;~o?Kyap`cOQ9zV~*vp@}2|pbHZI& zJ%=$hF(LAw4|@k3pA_!pylk>tuEiI=K3i@!*k5QddAQWr4(i9n`z8XBOY7;Y(tiV; zWHeGzuR7l1qCuYDeH1CY`T7IpN{pT-5-DVNlQWtpKi@Yrn!DlRS1EB>WV}aTy|^y4$I+N^+i?lu49#% zsoIw#zg@`?5#snZ3R29>zX0Y9NqRC)*s78xn_FpF`!HQ9+%b5xFeil0^Xl_$(u>zI zpQ)WA4PRQktF_P7$}_)5#{GUMO|l)6;=zoP38#C&ooJo3(H_3FM1$*#iKbWFc1u44 z+cCqd`OS(NDmMUd_;{syd%0G(btZ|!D6Gfv$y$0Ce>cO3Z_~A9!-;yjER$>e&3bw` zH^2W&nZM2e&&Z263c}|ZLy;>?TLoodJ=}_4Qt^y&)T_LeTI_2BtBc~Q3uBO_YM`dD z?&4%Cq0s{oKi}Y1*UNJVklFVd(2mTF9Cll$r448{N=_LcL-P>9{>93bP{Y3Xhmh03 zyA0eZ&2v`AS8ly*9kEhW9-PaCpc)%;(tO?hTA4n(T|Oeu5*dMK%t6M)T(hDq5_Xj3 zmN%WXM@6pv9@MS)SsES@L6wtBtLT+;*P?B5{(kK@6fh+l_cfAberY465HrEcxCzDg z7lqk>rZz<5aH1?PF`tW53!u*E6ABJxXCuA^Uv-@Q1f5l6^~GjBVWrCGm|8oEP%4$0 zIek^W+j?q1)(>@1t>*M)Z=2J5v|>{KJT&sf!ZjUR>5BAqTo2R|c=oC_s}#RKw?CS4 z^T}^vfcYZ*cBJt)bpg!8A%FI@bXP&-D(V4`rFI2`JLj>!0M;D$aYoIKVy=1z<~LW? zxz<*T1jc$QejZQ~cQ_SJQ%*QUFh)w06xu)&+C$0f>>#(;?SzO&rT&-#yzk!~jIS%WgfbLz{zr+LqM;Gu;oO?~dVO&}0L>aIZ{BiR;5WgHN>ac_6%F7fH> z{93G_S7$Ib_>5azS~uVx*c~Xn(=5|xkJ_|Ul}oM&7Gkejhsd=Khki4J@cqV{>1{GK zd=+Rc_far;Wr}1li8r*b{hQ*x(&Jx-OW2iF9go~T&Z=rp$j(mmm}EmqC^~vrnTxIw+A&ba}9!u=>{ zT+E8FYhPvz?@|)%Z0!MiYO>R2;UN=#$L$B2V+0lY$wc-W9V2Qi?TsTl`GtK|lvC}F zqP2@m%9M3G>zo8a#}Qf|%WlO6vo`XoRdl+D++3EC`-?}%^H^D$r$|m;RHj#SAA*9E zCZjWxOIlwg#@%B7n9!>J;8pQO3l^1mA&8^SCKUxCuACyyqaRvT`19Eb*n7(vk@B`C z`y*q|C(di-SF#^tM9sq-vFr3TZH1C}i(*zhtN^68%!yn%zitq|-8k9H>&ad;0Z`5& zqNq=J*`IT;81rJ}t`HKImq5ELbH0GgRjdDm(>>HbnjvE{d&75(!=pXOp^wP5VKO=1 z@&O)YC%(XTgv~nU%wzLfr@h@U0l`selzYp5c!r!_XKhroBo^EOAzI@`@5FCGv`TZS z;4UNkPa2IGLah(>cxKEwoNg*K4Q4-xz$WmT2&@KJ2aeyZJE>B@YT~9J=q7DB+||_> z`PJBdWu%8V-!2>Y<}~2;XSRpI#@nBEUN}BLG@}{xOP0uncQZ%jtexDdKplo3{eF88 zbJZK`(F;do?1?zbWPWZCM2Sirnt5q#RcfR6^aH4*)qW9~!Ezl>hu^T);HzF4xKl{Z zFh}3tMK8-84{iVI1-kw|hY6jv_K#J$2ceXYnvZwq>SQ9hJR90eG)i(iLgfr}Auilj z+k_3Tp!!TguE*BPlTts7lC^mNSW3;mZ&_t%zd72)P`nHdF{dK~X*xb_=uKfs&ko_F zQi5DvuW-quXXJv;#U*X-=zA)1vmWrdmTjohJYQ^B{66I>cd*|>Zu7UQV#H)I)h@UH7X(;F0U=`6m9n^q@UnH7J$m z+2cIZc8Cr1Xu3WeG>38cZ!5!vPGb@7hIt8nhamni#>U^7{dmtm2J%we%OX+_`e|8? z!YtAEdry8L47Bxwf=9g^uTVuy19q=+8)4guR1bN6 zxK*JUls=yt4M)^Z6)>~#O2Hq``L?232%qVL4#Fv*c&o6k7RDU!1;7eM!0#1KLbL__DA74P#0Id%_VrvR0YOn`_2>=R zo_tl7NFLYW3V?5R_x9Tec!bLXdG$az#z;|0@O3xHAy zvPR_mw)`g4JRGR!UDlxOS;kJ@q~Icxhmw>0$0~Be_%K{^?3icp8vw|AVH||^f}J=) zSvV){(`Q*pR7&AaX)$838kSjV-KOU|Rj}Psubd+_h1PsKTM)B7hzG4}g6_{VX5LrJ zJI|?}0KQ~LwanM0`}uAfttN|`ciU##u${)q zMea+QqJPu0(gA8esw*%pE*GPf5+Wn=NbQ(l8aIj;z-JvUyqE|k=~fY?{4jF?PmgIi z5(Aj05$?)hWVVK`OQuq>X!SbPasUC9o?D+ND9wp*J6lfEk;?$|YS9HRL^JKonF z&D{4pMsJs0=FH%>Q&KJ=WAfp0xCmzcXO*v59FcUb2ym(SJAmS2iCzBohQ(&;#i(V4 z-EhY1T?KKU^=g)e<6+aaF{`JSrX3#%=KTde`oyK;?7V?CGvO8n;_e^hpNF8i7H$0) zv;|FUylirtIlSZ-iPlFgE{G5$`ar>q*`bNOqugSK8!~5ZB#k$xJ2O1LPrznoCs@wa)~KEl(#gIE7rCw;;(BL{`;FUoNP1&HNB%&%GFI-mhwdV;n$xnpL{TK+FrpX-WhAG3m$1KKdsVV$PO*-e(am=Kcz++yN_9IeHOT!F zAatMReY}yLuku+kEhAd4XT)9t9kW9~W&t`tReUfC~DiKx+XP^SRO(@ zwtX27PrBd&OksQ46*XCfz900KJ*&wmRVZMr)A;{})H0O^DKoyzP(ku8wo{Y|L#XU8 zr@ahzjl76M zDT3azZ3`msBio){At}+~q|+65iFY$6{mIr!-HTbJ%!8gb+C+98gYY$#Rdk@8jPpSf0#8Cl zmGfdzKJ+GE%|XV%9dZAW`0M~V=&ANI%v2*J*gy`r>p3RU$o#{VmpW~bb8B%Y=E9!W zT1??{K(KNJbGm*w2T!DaF4Yk32MDGRZ`dt#&tvt=JOt}`xZ2cZd%=57}; zJCK~St&Ui%0mjawcpXqR*jbVE$Eu~*s;;NoCa04I;VVpxFa%g^cL@x$4DA|pBPKUL zf(XTcm7jrxzGgIGtK%yt_oduaEYk1yyPRF;4@i%y%wD*geL*G0GfUC`j{6+R5DI_V z0=YAIRy$Xh!!)MJtMP0pxJ42FE0#+0O9;!MSP+@+)4X*z{z6$PB}Cvm^^l`1lmI{m zjqj+#G;z`6c&w7#k_G+zL0;*n;L#58UsD|N_@Upn^pnTvA}nZGpo*@@_k->-vwDHG zW~#kBCuh_RWh$KL-=IVSpwe|O3l4P?p)Im)oP;mN1ttA#`u$zY$251i5Ru9a^a+lU zT$St;%R{ivJyh=I`by`y4wXzta^d>xW6+R2 zf9u|iiiJK>BkPy^5)Sp>7$*>669j5q)L7J^mZp@dy&%t=y-K%h7e{oQIMkjgIzsa0 zlsadxe^64lIwlV6>yBaje)4p+?gwMX;=pQm=fnLGUYC!iHU~aX! zA6H1OeE=d@;qWsmnp7BCjEnidppnG_j5{IpH5X2Hqb08H7o2qGI1cS{oMv*SG-n6SpW5G8`Tm93k z+O%cm04HAKMbOn2s9#xmArcOjGxB#cV|3%kC7}GEYUWgimi6=ZK(+?a@IEgVd0R_D zVh0E5^*m0Z6MoQ-oTyq<8#f>;CY{UM2x};yD8>Z=-e@W4hYDbg#3vX!>c zVU;w|_77F><|BZ4mDS8U$mO)D{ss_)TUgE$v#|5m#q2pd&}c;B4l7iP9^%0V0Vh0R z2&ow|l7=2`bOU0o7nD1TN1kVk_G-iZ6CTrE;f$S-_?gEwcNs@w2yEbR#%`F0ia;l z1IW*_+{D!Bs=qgRCxqdkXfn+V6+hgRekkl-t&|e-ow-LkS=d9H&gcASt*+ovqtMQD z1&7m|1E7}HL(v%IMXv1Azt+!w8jYKOq7$Q9uM}XFh_c)#Ez^h7i`{L7Q|ExPB!)*ef!S%*qdx9~W z%}2StnCDS|BN)TrG|`#6!52Pz@1$onmKQyAB@4I2(G+GVLKe1Pwe7^_nWgPyW~vCeul>pA{|4rL zKs#mB23$4c`w{u-?0GRX)zhr z=C{-PrUnmDZnaXoXf}qaPh&1B-@QXKP~P^5#+?4$w8czHoS$5Da{aq@IOvp}i{%79 zind>5zH2dT!47+BPQhhy>piY;B4~BFn!O6g)XBHMmdIVlnl~%9*XA;*{uQSd<51Or zcNR%~vV_|7K;qP^_Owx{hko5jSZHMjPgDZ)E` zUG--5&*ldp=tjJ5z20KVyhM+B{8AiGf;iOU2R-YFL_yNL;C69a2s>v6lMLJSsER_3 zIdg z9x(El8g25cUz`Indj!(w3`9m98Fz@pP=)K|K}W*=gTsx=NI{qpu_6h9kcC#51Br-sz%jK5iXQ2PNpK7l2M_VIXW<25{K=Bv6je5Qa*d<2?3#=l9HWRbLhb8oY=uRAlYw$e5uq@ z7SWdhZ0=|K>>_0G;mCJY>__XC$=sH`r~?qO=Uh>yawpmS@b!E5Q6(ugGo!5EW9m66 z54)#b0AQ;25^y_P3<#w}>w`=y)5$@McjoGMPBzJ;0)pu-fS%z{ zGjhShK{6arQpk%$5id`?oeJJMrB_X0^J~ppLdm#rcLyBbb}elefBIo~bQK{7HBV@^ z@-ff+s}g3AP)k3lxNWx;`-$M&`bc&-BPWI%W%{x;@KAa4Grw@&f6qho+28ySmC%92 z_m)&jD+VZ4>`s0cKXSY-|3{}G(rd;-Tjz@Tw&z;2oqm54Fzk~Unhb*;TelL+DQxvs_;)ovLB5{W>Xb99lpsQ!LE>j@47mz?c`pOPrjie)xE zqfg0ooWdW&MN<%Vj$|h^(anzDatanSHRVQfC8QY~Zmp{&!+CpvhbPoOO?7C$6!@6> zU5;uhmDZlR%f@AuRp9by6Nnj$AUySMvJ z^P1*QY6hx|c^8qO3om>wOOD*BXk2la%v5EfXMHF=^i%<91S`E~94kk=Nv*hncC^}; ze=NRo_SaGWKr$G~e$i15SkS4EhaBy_NkYIv)W^-X_qp%!CsB*r>x|DJ-;8IgOKQ$n z6U^%PwyFMN3BBK;hn3V$M?-8s&;u;_t7nR553DkUial!Fr(r6YDp= zmh}hiDR#3|ZP6OKCP+g-`d27Y(@3XJ>`C3O-6}MkDupm6fu0KKc z{TT&X+i};ZtQb!iBA%+mz0mim0jQ8&joG-S@&;)FLyCyN_`|wpF(yH7XAuR+HTDAi zI0w9@(`mEacgTXwx8HorZce-Z#KB{yW-W>3F3nnWqCiCj$#3%?SLXG9-roYn6?|aGW;DHodX??(*CeSfTlF))@;{y!;rm zPe;`M5#^n7qLhQ~a1AaM(NO+iHKe?12hy#^kM}SqKfS?d=V zuExJ62>LMV3MZnc+A0LA$+uwUM_wGjrMRFhZ!6}C=t>;p5%y+T;D&r;J%QYfy?egHZV*(6%)FQxBjv* zaXtea#Hd)7tefkT#?c<2znfOh+V+$y>~3`d^Gg$q0y5H;f27@3O!*H#RDOxLN;?K# zLdrL}anj7R8(_}rLmGnc`PZrKKyTVHKQ8si<)=F^AXwJXCtAPkp9xP7oqD@6{lcN# zl;I&>#bWUA8L3?--i{Pvgm2tBsT(ErXdHM_V1D&_H;jjQL2fCr$93F^q*pz{F`N=#ON$sp z(<0IqaPc0dr+q4Dy1CkG;ewjh;l4MUj4*0bnR-Ehik^2Hw7heEe1F2p#LtR>MR)>d ztjWs@US7ffKB`ocGK)Uhy)+KgsP^;;?opTA3xVD0bnvcxW{~4*hP>=A8aJV?H|>|o&V4%$^%JW4Vl-UJI`DQZ-VMO(?3~a(C2l7fcaF#^!6draXJnR(7THA4c?)rSSL32v*k?Z>7m_I@-2UCdkzY&2wSkd`&HSqz658C*i%O5( zXukOTPq_4d2oJ?Yv`Bgd?f^>1*mL0U%cscYw_ELpZe5R}rpYs9PAh0ceY*k@Lt*7x zN-eTBT`#f;Pv8aJYeE4gZ|%~dEUcSy{onK?~RL% z+hPIu^6Xpax?mM~hu~qgNW~h^yg8BTw{hQeg6e{=5531-#cEpI)j^n+RRbi759p4- zJZxAkV?OfhOz!T4Rq`Z0doZ5Kmj@6>r6H?at_f|9;EEh1wEf5ms^6*l=${507z|Jy zI@hVDPwX85c$b4UddTg~H-skLRWmAXuW$Uz`ct{Np!%AWAr=1{Feb;(InMNDHct>{ zZ*Gr{z&9maK-b=@q37|tRF1-~mu(fKNjYXGP+c)l@8gkiT8mL^PAW^4DK~_Jg6ZJu z-(jp!SMmh|6iWwG(#=mQivB^$znRHj*(#}rTGs#o;Il|_jJ^$=*b7ODQX5|{Z3iWF!QRc7hg71 zE5C+nDhQoKA!gT`qa3n;2khpCTKq;0^8vBLS>AeCKFSwW6PQ)q4!4HXlo`8&4`4#= zivn?_V?hga(8jpFak)Q8Z)wDK-I3imK{od+R`fCQW&+IJ5&ScSm0i11s zeF%O&Ya|W}{ipv-XO+;){bF88F{N9MXYM1BacY_<@!X!flIUx;Aoh|o6dXuhL^QiN z~dX0PI+kaI9uvT@2Gb67JW2p+M-CJ&!iVK+;8LJA{Zo<<=!gy0O9Na%TC248i-=H!t-q@Oa*OMyh`X!7SU##%9ZfCmx zyWh^bbm7wc481mCWqSKq8S3po;DTj^2qmD2l-U06j_TnYam=CFj)b+?Ov*<`Iq13k zj`rK}b38GZ(tDyNRM7x{PD`b|JE@MnQuhvoW5lo-yOPU!e<37)Qa;@ekI80hQhv#A z$2zw%tS{wju^4@eBa+-Qbtr{?HA9roRrgC}c^JJ*+F`qJwJ8_a<<7NmoQ(3rv&Zf? zIxCCrE2qqBruwjwU+6T$NY;~#Hyk*tk@dM!oW(c*&sJtqe$$UKkNQP1)G82IoOpH& z%>%4oCKH@bmR~Y%T>+zd%i0_!VP*kgl8J!n+^Knom$PHENkYq0eSu`12Eal#bhFRV zU!F6qBrWpf8H{?!%&5+kKDVhD!VE(1SPo|%%g57wv)-t=`KxLUa}z_Z;-Q<5K{={< zi@V6Z>v|(QyeX7s2|$d`aXUbX>LwRy?sGe{@M4lbiyCx@%v-N5e)vWCxy*W97h*j& zSf>#H`~|mu%o&=|O8Z}!WOVa@J2nk&TcewEGRxw(xuN@ls8Xo#?YH&E%ed2T#GkMt zH?>gqo^md7XJ5F*&C9}1&*GCxtKrD&`8#{aT`x!b_^sGU=}$W^YJ$7Yc*+~3yvX{l zywgHPp)(-45YI|alNMOo+0yCXSxA-iEG#5n;!l)`p)6L7WksvKG|1c9Fck96+ei{} zQ_lws;RJ@lu<7=Ws>8UBlTJ+B2LNDgEb=P9J{hP6&1%T7SH8CEMkdQGsY8|%8hF$7 z39ErGU+;vTm&NhQCeXb$+N~7|wL;)F(C`oC&rK6Dr!AoZLVZbANRLO^yAyx_c^0!j zm%U?@qn*Jq3gh3*;e5j}@QB+ywxoq}jA`>x#xwlxJ0+k8(a_p8T4%Hq5qxb+N1`XC zX}H}qT35BPc~L$)*d~kh)}(nTrA=ttIpHq|FJ% z2XnO!cAB4}Jfy_=1p)lrZG5T+@c}{yCE(sw+tNSI>`v!6ZRTdz7EsrQ&jWStl_th? zl~uBnO4Qg#FjVE(Mq(UGs*~RRMY+IsOikk<`JEN+qDAqv(#(vWUgd&HNed0}v9mos zye?u$#`dGnhG)_f->ba{e_qYd>(m9a={=NkKY-sQ-(U9k8n(&=%1jOHVfV9Cm=oEi zwB|?qz0qQEr1(P}3Fgz{{N9HBsX~vVZE}vhAYBRZ ziJ~|@gG1f06M|@d(G=)|Wp8*2U1S=(wo5wvNj2iGm#J>n{i_uB#pJ$QlP3V**62ob z;rfGC=m(i#i{u;yjfVC$BYrBb`IKi)Z^?JYUtl&;xbL?VicdEwoaD)Gl3P}{JXdDA zl-W#CUWnrV9qlNRR}Z$R<%7qr3Nc3V**DO*?gmUNW~caL%BUIkCz=$35tAxuF^UB9 z(${&WC4FU@Xg(GYx3FdNWn|NeobmejO&iH$^L+f~k9Gm*tl51LvdvCIv)6_1hWCiA zv+(uj-dI#VNly(!+PHnDw+EsdZ$r`-S%Z{_-ku?y_;Sp=%S*wmEbW#-rE)chL(o7X zy2w26ykPAI2`QDHh@YRc7CGIOsAJJGi0))Aa=8!f^W)N#YTAeN?Jf$#$ynr2U;WqB zH$(GuKQt$MufmaCkmbb-3hUk+`_M@+G4kf_Au_#+%xdDeXHMLo}S+M8#b$;*!QcpXFgGLFXmwMGXk9L^|U?^n`BdN$RP zze|aWrr1$l+RGrFGWpABdB_v#q6(=Ct_#Jr4QA?QNkx?KD>=Z1uaw2efbM58YD!xr zi)x4KImDHd;)|q47!+Ax_k}eU?PB*%hks;m%^0PWh^rGlpLtn(Matf!k}c1|5s20Z zPW*3SjSfnu#2)_NUIav?SLWkmaErtyoS>5#`UHc(^ss^L#VSaEXx@G5#WiNF5Mg?N zlPVG*0g~+9pE6Ozk=gDpEdWAM_<)W3SFfq58Z}d&dnMj&k*k92AUluJw@?`}?x)(v zQE)H==(7;KU#dFNxXe)B8%F%7zR%Fv$9xl=JjCQl;x2zec6ggZ>sI?{VtGQ~vU|py z^F7ii(>jsM{kDai=+}=`{xa+{HMpMOX7xC{Y!U7DNo#5&5ShjEO&>68^1RZn^ikEM zUh1Vub^A_`Bke>$0Ti6u{mNLofR}=prahg&lHI7!!kv{ChE)uKIR}Awq;un}84B=l zv`&Pd|GkL0#{m>e{-1c)6775n#Jk$3>Is}kkj%qW!8Z-4^@|iA{O;WKBRimM#(Uqw zszo8k`>fTOqzPZLmxP<*rDwh8 znaj?ShsLv2v(8n<0{YTH3iv5%?F#vn|Fzvsk;i?e3n6tk|L45`>Z?VM z=O{od8jj_uS$`!&XCq=ap`J13^D7HwB}^R1x17KGw@pZ#)lrW_iEIo2`l!0? zGd#%E{UqHjA1V2$eb3+l6p86uc?AMfG$tKT8u`DXg%t`Kxj;P)_I`T=MO z9#Zi}F%e1{JH2}NN)?!9Er}GrYDdXmgJBLfHo`^b~I#SrBA4$w;9{e9h8nIH#POKClPGw^jdsWo|TwT7@|FUsoHAIghKOawU@C!7Q~5 zfWez#3N>wjJD z6ie*OU8kno_{T>BA_Q4Saf%%odo)0HHT(Fg{sTu61pi;_MEN$l;!rgCt@H__ zIb1Q%Gb{jtGdvcIfG`;}xHI|P@&r&nz%;=b5a_<8#n`I~Rtjh2WEO0t z)NKwdp7!@Npp*AA9QDSs8OX-4=-3M5dleEnmjJPUwcfLm*{{j$B#vP%%`F8@)jc8z zEfEmRuk2bdNUPhFQC9w8aUz`2ZwCwQE{uD%LpUS0TKpI_S5(_Jf=Eh4QWYDu*?Xs`z2ihcs_dNE51`?>+6Z|d%^QlhK^rBD#e0JqR_hPesT#+?3g5k53A zYux%dwX0oUYGK9uR9w|Mtnjs$4hZFu9F?m3Z+Jx+5;L2r@~K{l?~OnL2lojZGxF1a z10a8U_phaPG`*+*HjQ?ykf_5KB*G6QguCOF`X#5pCdh%To21#`>L4G09FUK>5@qgc zg$>wEOMj0(fvz^0MW1|FZ2hcRsChAFKgXQY<3&fjz8c{8CI18o@QnfS}aR-cC%pk!8(&Gnk|^tv*aK18pRQ?S^B9OY@0+X-vTwk#tTKA z2b5hE0feX;4B?LKDs21!y>sRJbI_{am0e^1`UbHiNL5o_GFWRk4$C)Zo#DaloN}D8&^cjkJZpXSwwQV+4;)@d z8FG5k$MGDY@glvKE~=!{=t}W@kUv{jCXiAD*0qr+-A)CP{F~gWMua;j?(H+8oN3J>NV4!&R8HU$-?xed6%T6%DePv|ceLS#i zuErTMGmdm5aRQ5vS`!d+dcln`@(M0M0gFdYgMqscboOa%p1b>_=9CVRd8Pxa1jU!` zth9mBq!j`zEGW2}z}UNZIXWDx%;*t3mz3=5tF<1H5?u?U3PJI;xtNC>hG$)AO-$HQ zQ#fheU~*mmbko?>{rZN- ztYWJ7U#ciFqEc+pImhAY;lifKiC&(9&pr=Ey^;6osLQT6;cRTDKn}TwDswjhp06-{ zr?iJ9-`^T^g=8=#e&a!E(&m(GO05c0NR-YJ663orX($A5btz(~WH7rzVsQX9G(HR&de?e|u z>`hK5A^slNx5pWn+n0U?hoVtMjkV}a@HZmwR^VL9=Uy)y`4c!=4L-)?tsm_Km&%;c zXIu$32!p}eb|WXoF>0JSjsQIJ)%YKXjQI(Pp+nWmXY!UBYy0MS~|W4u%pZtipe$mY5{q>NkVl&z)Ef&rwAa$pEo z(bPR;B+HZXR_pdmmA&2lK5b8;VQ(d-p0?#3OsuQRx#5xc)4OR#H=L zL*^!d798qH&S2ILip*~xI*+@b8+jabmstLhg)2MqU`oL0P@t^i*~l;`){?ha3L2Y- zSF|ydj*~6WNT6p;V-&B~-+3fBY3xjoaroKmsmUDhuB**B9&)=NHGgz8ZsqU)YdQG8 zMNYH}d(x{~=B!DZ?DxcwSuHyd^ZY3D`6oS{p(`dc=iiH=S7Y1|4n>+UzSUS@1j3*2 z^RN}v7fA4N9pgT3dU$Gb@)OyuxOVLfy3O##7ArJhIhc2-)b>HRU|Cu6oMz+CCUp;m zD~eV=BxB1@X2*>brdv!dqTa706ml6$gslxX@(u*-%;JO%IQ~>Mb3*zLzQo=$s!KaNit7r5Fl4F;5|s zfQ%~=6PnX97nN+q{Ggg^CD5uvNnY@E&?9v)4dEw}^>XjwV&yi_o$deWSpuPQT3V}Az>mOXT`xFwc1S7s65y5h?Hf?nVEX<|a( zD&I`G%x3` zREZ%(n_E63qgR+6cOsGg|FHK~VOee88>obY2+~RjNGa0Y@KH*GfOJZCx0GNYN_U5X zigZgGbb~Yq(v5(0oVf%P_jda`=jL4fZ}!7hS!=F2#~k^NcO;URB(P5dG9YFs9gG^J zm00n7)g9e1#R5x`H(L*5zk87|NJGw45cC{bxdgBBJd`!Rago23+hJC|J5T>Ms2lH7 zH;{)|4H25@FAtYl-N52^WMt%btOf)?F`fszWf{fn45f)1426?jRi*8>Q!Lw^4!DLA z0#u5Zy4h3A*QVpFo#bZb@6*~p5ugBl?R|4Rq1><)XUrXbtrlw_ip-T8HpeB|q?0rQe#R z=DtG+Bl9+Z)z&9qxE80csEjjmJ&1RiD@~dc0H>V;-)%vSe#?Y+l}QXyI{6j1UP|5s zN-4Ws*`Ax)P;N~m2x>wI$=q#WdSl?LL%v{C(1CQZY~1D6vn%6|raN~!wjQ!j(hT`k zv9c{jkZM!MS>hM8h1@2Yt14ly@XarsU4PyFdKvlMie=eUWE~RgyNg7-2fDr&1A61{ z?NdJik#8pkR{*-X_;tgnE@Mps2?tq+>fWLkbhkm2)?Uft24RtWECBE*mVBtG=a2j# z$1#|X%Xz2?8Xz~tKHR^d`$j3?(Vc#fz|>lO0$=u(5b2dtP>JTyOI_?Zp&Im<7h@r> zQUj-!zEqmfU!h-5ri+ z09w$&erKup!=rFJ`vrrc#b9IrK0+1*;3IJa{@Z&Xhg!}9Xf()SfMG|C783GyeCde{C~8u@2UTj?ptxklJgb7TC+rv1K= zPXKO$JoNGLj{oyn|6HFu4QL!vYKocU`ty1G{%9DP0*Fk-N$`KdT>kcaz>@=t^fbny z6MsDFe?0n}k2q)|Aa_-L@|S)4^}7EpO20jy{5;D4mkoz~kmSbvDW#GkV*tg=1d8RY znalw9SUCqm3GIb^?7tmfu!Oht*-W__8mRK~t(-$$dI2hvYAXSNXXaEK{{0gy8%RjQ z-DkTee-*5(3o3HyAow$ly3VMYtLvjyW@pG$4!|R|Y&ie^{aI zgXP6w6!-Z-!DJfLI~~@+LX07=zW_9zD8H^J`r8L3t3s=hid;Hf4O#Lzi0h;m!mhPu z>Qq+^fb3Z-zJ>)>kKW%GRSYc(-)Qf6Q9ZUkpylYZbTm_KOB`pr1R$WR*#MY0i+6MB zj+&1?{F#N|$5;Er0z_nL`lkWXW5IG1*9G)tMu1dm8elzaZja>ZiLmO{oa+V=6VHp9 zl)v0U*lXzS-86pSbSz}@dhnUbSu7Au#|{W0Mnc#@Ahrnj28?{sIbP*bOxgV9{wHff z+BAw)jQ3cZ-k|US1ahCAUFGeCFj3i`Wn$TwAsiWK1lA_FdS2!)bcsHaIN%$*+HTbQ z{*X}^J=#976x06K6PX}jGQFDqbM_VxU6=rgQfa2w|BsHxA6G}d4_xb43o7U8e?VQm zVb9<}!_trT%^gr=8BqqA-D!AA5P#uJX!qm(^}0gDi#ug`_$U8}5)}gFJR{*Bq|+?z zpf??@DC3?@_LW}f%?dMH!~dI33gB@xIR|A`P-{KQdcm&^_A;&2I6K=Kcc@+}FW~$J8yDLkBvjF7TjI@&eu9vF7 zwV9-?cRP9G7$THdxQPv-V#|oFm{HI!L!pQl`De`h$-?qbdV&mTEf7z>dj3TXXr^u1 z`r?(emDiV}^W`n@&s=lb|Go|eNUKfe!#n<`f&Xnwee7@n^&)p7`{1*GY|o$nmmA>A zLRblC|FW;Yei6of0qk&~@pF#9e)s7i!2lJa#H4iHiTm(BULhX{{&o0-T3YMr@Be!7 zAASlh0CLP7mIr?<$5V`}0B{)x5-!>Mm;5OHYKZLsoh>;s-J27!MTG|)VrgXndeI6p zH^!i8L<#lrN9MmSR}F|-2p&$v@!r28_5m&R^jy(%-5JQ;(trKU2nNVCOwtPk;6Cu% zKEX9>Q_ZcQ9Ra5Wp!TZN@(m>ZmwgF^l)+>{bKbQdmm!#v$$nb8!0huI-DRlT@O=!` zgY$o11l|p>i1Ud`7=VrvT7(jO6FIYSTfA8S$mUt*ODHMoA^k;(D5ZkEk8n}urar#U z3MiDuA***AsK=>X{;Co$Ln^VIss7kPd*g{miM^i)mU%C=`t%P+e0tR*pqdO-l2#!4 z@oJAyUo?}C`~2_MK{_S0ouU5GkB58XHH3@3rwI9`n$*aK=&%p30Fd1uHpfR2HyT2HgO;&YfWV~v zw#s#~rKAd%YL+~?X~Alc3-|mL#MTOcw`vzA zW5wQ+QVvj7ApVaM29{AvG~}ZhGn5m#)-Y>)EuCMietT+_A-J2DktkXvt`K^ z=flN>eXz&#p(=vRJ&=D#YiDqI2MS};-Ut{CX1stwiV5l#$+d{bcj6P4 zZt3%{rTKS{p9<>TU+A!_ItAkVyxM91eQo5k;a}&AZ|mRT@VCK77ObY$1}v&(fOjB5 zR|OQZS!|Il5Q%>JgYdwn!e5|1Q7jjIgbT!7&Krh7eL!B#e|mc4kEbJi1I3ZOShoZ| z*L+vNMe95AeR*WaVQG-vrTt{tD7bPUsQC)q>yvehC3isUHV9kAuK1UW1^7ut4MSGz zmBI!nvHksAm&<0JZN65>(dO?ivDWD>vp4=id@6&<4UmsX5Z!ug7Ua937K{MPC{W4O zwivo6@^6I>lR<-?Zu$DP1@?tt7vNmALTDu?t!hsXh$;p0Y{k3z;lVvcQSmeyl;rW}>^hwPMXN;?S+S^`Y+Mbz}uFexkDI2F>S$Ctm`h z$>u0VPEhcVIhC7IY>EHyrDRMVyAFUprf|$7-5=n(2>I`0J9i?`f@&8l z>HSrop+XW>0w!H=Q-By9F2Cn~@`&Jv=RQ~(_=w{DTXcWk`x~S_nn1GB6gd1r=k#t# zUPZQgQPVykZp476BxE-;IOb)gdw1f4`0PWfsr`A;$%p-X(Aj$-dfuo#(GvGYh?H91 zy@wE!wVfJO{xW0r{yl)z)(6ak`YJgfKQLW`aET3Mu!SbwPLdJle7-{dfu>IJpHNe$ z+MNAHupBspiqd?ESLmQp#Q|#0F+&@K=5O_&K7<00WZTjDc4`lbD1kDjuPxB{%QigG zAxi>+jAv^Q*1>^GmZw__UorqN$T1+*5d+!+c1C^*QW0eM=)V@2|Lt*d$-&U$9vXzH zR^2ai-RQjC3iQ$vM_+}jz5Qw}GUz`Z+-_a}xkSi3(I=gAI`+-~Y{cp)*nfT^qW85 z6AirwHMI2)*ZcIfuq9Loralez%UaZcI+Z>E!kF_o&KvA*%;BhU4n2fo#4lb)9>t$C zKSMFFn)^~wW~=e3(}N4aaeis|Kc2xW1bEQA#0L0G)UR?WU|=0P3r(1>bO;{T-ucVw z&I(8;P@JNBxwyZK_+NgyDGF9~fjflwbeVsDi70UGv6epk0a5htqsM%O3GB|zNm08i zr<-_ong9ATOnM;mg_orM?S%Yc{mH`M$X*5GH0u3*!6$zUD+JzUrvTkwJjq`#@wtEn zoIGJ!%E!mf%U@RwRM7uz_`lB5`~Nol4^s1g5`Jp1&j`%_k1A#CD9`!&>K$d3iF!HV z1`_Pz+($BqLiht8pHtuu&(_@K|U}5KM4O0IN4-HQJ%0F!RnctSL28!|fUM}7*_4k*b z$RTTiQWh-zpEao8%)mSpn|qQL|0@vq!`<+P`GKq}*0sx_re~J--;0MGfbZ;C`Ec3~ z{P(SVg6UI=5`+Aw4HuRi8+Y8Bl6QT1u~j@+Du2+gr+*k3=UE=o1o86vg{Ubn3m!7k zC2l$$Qo0C!s@pF+Dy#=Tm4x0|3Y(0qBCr!GVXKy=8qN`7ihn=Sz-W!jb0#NA_8zL8 ztfIASoSx>--6h+GcVl(#eN(yl5jBrFe?A_OAUF|o--qq%v)U`>Ol_S{UO!r7xRlcz z)hcGl(vR2^KX6SgbmHD*d8(bOu}X+X3(xC>{c630SoTBlQY0Uzr-*4rl@eT6e!k(H z&kd~P;alOFCh7kkPF0K5Z(FLlyr0hlyQgWCAFiz2_+83L;-M=>5&n;FPnn)ya7pCO z3LxIjIm};+7g*~prE{HYS9R_^A+b{NY%u(1r`y`XUFmZL5pdYPU&PQnga)26XOOJM4{W=mw$GsruRm z*4#W_wbd=N`J|`Uu{s@)hv#dKroB@Nh@3Dn3kWyI6weT6Hk)_%n>e$@PpEy~9qm3% zA7K4Mm|hbEFJ~=qV`W8vE=^kZBdP2h<+rSRlT)na5=8b0`-$wX`OEUJN!xoXvL7(_ z>c*$JUP$qBFjveLi;J{0l?;e9?;y@FVK!^pd#r!u10Ihg_~o=+=(j z^LHKBF#Z0uWbLyLc2XcfjjCxfu&OMDT*Sdl@xdY_OUaTmtKf4qyG-+%$&eF&M$+(Z zbJWPH((`}gffx2m3=E^Jcc z(a70_UGRy%*`0bXUHWvC*jt#bZ5|&0LTr9V=Nu*@ARuV?c{+L&xfVxQYGx$OYf=W5 zLa!$ylpCtL(iF65IJop+ZVwEMshb@=SY8-QF5GI(OwE^k)H*_*DdY8JC4u3HFUveF zFrYXgUvQ9mU52SKyp4v1v;20UjNpxRkLhyXwb#rHtSgOKkDCp@RZ*l8U>~xih7I?W zSjyL7VqCAKA1_>uF+ zu(a~00vM!O;m;o$uFXCI!Q_CID}9E%Hg9G*<)=H`DxYoFj@*Mt&bZM}sDWgr&Y7KF zhE(a~7pV%euGRr>Idz!Kug-i5b88g07kPM`)I0}2PMdthFE|k1^TeO|$abrP&HiI` zF>&|;{>;(U8Bn73(l~#LLDiY}CkhvgVq&nnp|P$*cr1r}gE~d17~qq zGW+Ap(U$F2G{I5Dr1>v#FUUwdta|;;PHV+sN8-q-t7(IvWx7Som*hgmR!IzJBI|^E z=QHc)G0lnkR`2L{RAU~qu_iU9FV@A?Z9Y$Um})N>Bq(ru>l^13@v?{Lp51Ll?OPh! zrebL~(&-yQ`hw0Y@tFv0jk4!f_Dy(JJ0;OerSU#vd8s5IP@eH3c8z_!|Gwkyz#IOx zj(783jBHL-=&l^aq?>0UI6jehz#%X^;O0F!EJPTr*+SD=!6FWO!fqXvU=!(64aYaT zabxba$JSdzab)2mDChXJj{OHrVfeVGZwe&lf_bjH9qvvPU9I(|6I=ZGoZU*)4-oBYJs7@3+iF@)r%u>fBD5IaxDI=-COE2U8Z7GH*zr9vrVo$5 zJ3*!>G0r|v{i@i``~AvK$}j{o!fsE&!ZcLOo4Bp1sYxEz{LCV3rJpMKi*|Hnygy1z z^HlQ+&{`l+I#^ZlWbw%Ftz?x4WlW7zgVvz4uFyE+*p9}7)uhX;C*F+D4Sbs>3&=0I zeaj&qd&W8QkUhim&RauHW!X9UZ}kddx0&%2kFzCY_O{1B(YmhH!A{7`A@{QCws*-x>{S^OT!^gJ9&?`i=Xfhm`UeR&w z>f`2RsEONq>Aqbf;cKP$$7Ll<@n}nu`ju~$$c3`tw7#B*x2GHWR9!+6I@D6!&C5po z_KvZxjOsYg%jr<-eBpRY$v|oLq&S|K8f^608=OAZmRmndO2xRKg_^W+54RIE zHq)*JHEe#EvP-cIvTvqdD|QVUKKQQ9dq5@kh zgyGR`5W8KQuURfD)q0<)>al}3%2E#M!O}*v&(+Dt2XBr9`rg~Bb&RFgKT9jdpiZk7 ze?Y0};BvbQg4Kzp>i2=bhR*Y=x}G2zmD<*;hY73g#kK8*wl132%YCGHMn_ZA z(}f(B62nxli#)WxkY-{Kx96|Aj$+N}1!{1Vm0Ywhvvqq;lfc}7Xf|4PKWJ&5k!YPN zWBXOS5j=%aTsw7wR$VG*zO`z;RN`TF&2lCja_xmsn}p`B1FF=dgz0B<43}f_DFAVb zB@Wf-aEr?Nr@c4m{8zis#}Da|(wW2RvThNClKZmz?1k|#bEil9$<)i8xr3%ci) z(LIWmnI{Hi?fY(?Z=+ZUHCkpaRr`uzxmn^0a$p*VHtKCX{b~VR>f4)Yfvi zG<8_CHwnTLK9l^{{4SE|Z#fLL7G%7M!siW=(0A*j+h{UQa+6j0q(| zHppqL`4)w~V`saiw8I#d_cgg}JtqdH%^4#j%T6Hs{^j|mMvudGYx-dG%PaXY9B#1} zi3rI$uNPS{h40zYorM^{wxM`apzmqO$;WNNFQ7>+Ac}9WR#y=lcvhyfdwxedd`N9r zkp7~Vc*v#rU(A~JNH-?a|CdXb#%=Ue1Obrw2Z49YOgtBl6^R3p6);HooXJT zUa$Euz4M8++&`mmS2hNNf0SLmcCNjDRR0qR4F?>r{d|)DG1*7S? zl>H~A(2y!>ji*KdsMBAX-BS900}grun9+Oda0kC1#tAlyrgZmiBmWoT;0%`fxQ%w^ z{GB0qR|f|oQ#>M~p4x@Wft;~~!+p^kwIeNzGnyJN2_^((w3bP;`z@Qy2SL|}zl7iO`6FvWQVVJMdW{o3*df%rd`tgCNg3&T(yx~FKZQP2O9pxSAD zhHv&55CDfLtdU$I@%*T!LpqM7x@Dho-`RX?=oxl)TCd#|S>B!}c6hSNi2Ug(*yn-a z1tiJft zE7oh*v_*F_`YrX#Sp0F-?u%9>3A66gm@_UjYR#>Sy!dRBZ|yxiZHKP8n(kdIpa0H0 zqQ&{yb*Xu;s;$;j{o4~%%ALk0{^F9_I+H}2ypWiNzI4y8FV7+cg=M|v_O3ZgT){kc z@O-dT?=`9R0|J)i%Q5Htww&;q%Cx$Ni?_XOHI1Hvi6NTRQ3gfKoOqjk;WIAADp*3; z&(ri7Pb7p1e#VJEu~zR;8;5efcd)+XjoL((rf4h1^uq<2BP?`8*0+4}3ih*4oW3Iq zylu%DRq>VJjl0bhyP$cicwPI#i>kau#>}=iDSL&iwOPxpq%$^4>+2O?-K?9+mxnsc zD`{5DQ6KW|vJ2)Wr`Ybe?;UofvFwB`PwFr?C@-xSM{=K zjbiXZW>_ZK_A;K0jvXY~HcHxG%j9z}t>P45BcL3NQSkmL-{*W9@IdF)b*Q=04wO74 z-Q32c#@SW!lapbfRa63yT09>Hi1XH^z=`KDo5Szu>?dwLN?(!yTQjAl~!BDLS8U86E`mjCyC2TmO8zsPK^s{X=DeN zyc6Go4{N|^`hHaRnwHfz@4|4B%2h6He0>)R1k(J_i5DUdwsN#D$RGu@reAzeta}(+ z)vHN}vTfsR6S*E_h}ChQm|rnagJ$?TYab~0X1K2x~MY=sD zW=E5%BeklFvtIEeQukLL<+SX_cI{?-!XfL#pismN|lmmMvK~yJA=l<`Gx(0u)#*s z$Bx+ONNyAv;#C5wH;+cu$@(@il3*b)u7kDa%C(x3y{s?Mff8$NrF0VJGD!YB);E-Y zWevzMeIP|MCT4g7qbWt(-|Wvx8}2J-_)78= zq`4nxeVXd}+&shlHoxSQ3*b4z^mKmM=Qk;I*o4w|aJD;Ob*R@@h3k9etCuIN=k2n} z*q8(SB2j2qIlmUo<*bav0cA5fvyaL@q9XP&KZES?wDj99M0}lc6BU`5N^|#@&7`ug zvz@mDMOda<6U0)Zmiwq#>p|?{a?!@LZ3n^eZFPd@JG-ELSC6Wz%YL$rYt#L74>AxO zzs+7gP40lSIVJ?oM`XMpax5P;N${~^Uq4@ci0;JAxn(167}js)nXvsWapL=j>rOn{ zD#IQu>NBM&>h*+V%-_L;-*f)g2vFCK9^LiQTO1{AK8@jH;e)LC$YRTM?;GWRbfLkM z*IPb!WIN)y6F1OjTH=bD&X*ze20gUnAaYTVJjw+%bh`^tfXh-8!RI_7Y^)Gz%W;lV z6%0;ped$AnVN9~z9`HP(yU@b-*!n!1G;G~p_1_uZ+sr19v3}shaXDh3{q2ZMStQLg zzgwU8CW%z63(HRDQ~tHDn<7r#J6eiUG>YmUcgpST+#YC-uxcf;s!A ze;M!EA6GJbAa12or9r}rFY2h>ha2Oe>@2Ynj83JgdFA?v79sQYK0<72ZZ@21ipbad zfW&Px<~=)8zp>#k2f$B&AX5Pw2ZulL?TZ(p%311EfHS7J{;smJq@?6iFcC@ul+Yut-|mKI)P zEw4*(ofZ(_8In0?tl2ra3R;YPB@z@3Y}`_5JUS)6>g!J?)7a>+;QoHq#zy9si;;ABKIqUGSoBz%i2ictoC+{ZP(ewF5)~B{!XLX=Ai?f~o@EY{ z_w3^LcGjlyjams!K~t#%m>)-ywzu4$_W?|6Ry&C&!Z!e;_!B)5viCGvg2H&Zz zF+p2os(#?LTMo}E?%`rJm!&TzC^9@x72rqmnUh|7!)Wcj$L&d~^@Y91kDWt%tvDkb z1$C@;d1EMf;>MmcNQ@$oO3FlLS_ekp6ZOKJE?o7khDzi^* zk<@b}R=J#8#EET0jSKf$C)15zHnxNfe!k$>A#GB^Fl5>MNvq5z%A#TnF=$1uXlDUr zM^{w+`CG4i+XVWSg>!2}W2MKXEKlwcI&K4}p#ce#5B4Qu+WPS->sR!9ALd4eQ)5l% zj)F7~KefdgS~F6|okM*N0^&M8<4027`!r(SvQAZqU<50AeTJfK9b6A~5^gz`&qK zJt-;4+LulFt*Tyu#4MMI56-K-oR>8T0f{F`T(SoEDuWQ4N9hBU>iP7X)tHr^_Jw;) zRW>asRASVdWK17}G}BHJ$)(^9A~@0n8E;WVI&P$6vnr3dU5%A6Syb?@QEs<{b>Ld4 zSTmLh2g15wXYvzI>RBOc4nbQp;{m5TU)&HV<9CKV>7J116bg^BPGRsB-9?sMnwQ2g z7-*G}z!(woW$n8hIpFb_6Vp4l4pE#qE5DqBJ5A(!XVt+#f0@g|cS9U$1%*5OtGv5K z-%B;@+sE^|QM6r)%TSM=((H^S(g;hz_AL#J_eMvJBs=McRT64HBz*m3d44S|!hO-K zwPv%bk*Bj)Wc8{2a1OF#Fy(=i{@_u}*wchhQ*G(No>tjmkqfGp`K{Z7h0>(Q*j?x| z$@0&$h51JIcW?lnme_NsTD=Na-Z3yR$O5Pq6|XbNr9!Prw<278d`U31*RUy^rU;&L zL$#Hzv%px+L#;bMKYt!keD+o=oh_iI96E^4>mmM#Rt>S#ue@+L0fCyJYy$`@fuodB zSpU6wM)O|enE>Yl;k9pf5)x8&Hr`g-^_=r>Uwcz6O=4&TI5tKoEV@wl*wmbE{m^M- zl8A$aR)$jdTxbJ2aUV6i6^7_|BwTmH*-g^8FiEcX;6r5=cTUjW&7kJS>8QQiIakJP z)P*8F^plm2;X_yCXZ}dLU-9*GUw74A&;@nIGpyc*0c;Km3T?u1VBN6>FVjdq{!G0Pm%n(Qm;>@B8t!V=kG2QdU|)yjN}6X}Z!f0oQXTFY2_$w2?G1A7ooX5b)Q>Sl z8P(inzQeg}D$|Q};q1s#2J*M=8OU_W73>(a>$w+bm+vKAi}9R~u$sqt#WZlKIQATg zWkT3CVS5~&?5Kh2uaro~6}anM*Z4==SMwA}J`AYreZGi0$c84WABUt4I+;{}C9EJx z6~Zm7xv-j(S+m=9lD4KN@93e!ZqxNmkh$kIcL#?oPlV(0T`#!dPxs;Y+6_EjRLjNa_9RA;k__6+A;_0k+3Uq8Y&wXT&Gj zy&lv;mI2B`p8R(o`xdw#=Cf4q7Kru;^{|dRJL5H8cMqT%RpsYNRpfWiZ`6U;kfC{} zmI<1OJvm>bQ5JqR=aVbua#hf~`pau!gn#||wbRyv2k<$MxrgFC9B-rBbVLFbnMAZZ z0SFcf;IKh2UqqgM{a_afuz#r_?R2A{GdTIEI85TbSLDV?-a;IOjWfWH)nC^jjO%`( zLK`a_Hm&q?LrY+wEd8JR%%Qe15gusDr`O^S83G5ss%<`+awV`iw2(S{!DK^X;23@f zhe&=)SK26FNsF88-t@$Ze|#T19;sJaZ+8;Xk*roQ#m+SA@=G;SJH;=>-xse|#@Rd_ zHE(bES$^}n;IJ|}f^>6nq+DeqBu1^gA{po@x=VvV=`0o;b^@l1a!%2af7@d7;5t!f)8^EQa3m%{Zfyz{ByHmsE z`g{S(lBXfg(()gkI8|j}37AyzB`#u={neG>~dFNdfe%PN6^-gaLX5|jx* z1L*5Qf(D1D#!#{4LNnGeNBW8)A|soMEr-mM!T7Sas?l6MUz4$i-8X4z4FQ!-K0wZ5yMn-(0{G|VvUM$X&Nqg}q+0;7r+auK>+9PI>gRK`xyPO>Aj zGYEua-x{6NJn4u&ajnzJqZf<&Q{WeNK3V*g#lpmfZ=0EvlQ9hg5$8aAL-@cecT<}; z=I;qlzw4aOG%D0+7}?s;+8U9O=+~k@%KyLDcBH&6m)vj%hYe{O+8_N^E-SezR6-dGCb7x=|Q%||j! zdn;D#b5hu2Bg%&I3Do`X4q`TIFW&Q<`SJ^tR8)%>nK7<2?ufFiU4muproE;KE zaa;1&xhc9T)KcX>3S%L$-e!k9b3 z#jV=e`oM*#$)*C03yaiYFyTY}E@Yif))9|Bq^PYZk|H?lOpNeB4|cq78q`E$*nqZp zFc0CUvH-P(*_lbAsOhHeFL>fdg)Tc5_v9L-Crf0ORZy=xV?|=Yl4;<<S0=0Z&6wti%!;;MZ>1O?CB$%rM`u7WBT&?Z~K4QRI*k00_7#} z36-tJgF$V}Lf(Ft?cytHa(|=czmGk(>@BCcc&x}_CKpU(MoXOV&Rf`!E&|BvR7B_? zPqErezlOq{g>6vvPYtT$=p*x=+WAbyvC)4a?6Q=XV_$TnZkNiwt4l`RVw1p0XbUN5 zL`_{;*_3@#k1BpSMjT4ptv*+hc30aiw$9sy9Pz2&n^>)X$^{(aJ|Ls^JCd0@K^`Zg zP2xsL`QN&L_$ubg#hvU|(vJ$WH0#Ht&{P?jUjeAt&*Xi6;@tca0HQ?Cx$z3qv51eJe^erc?cri(FTMKl6Pg{LWhm(u zpiJA4-70+^aps)=@i5V+H6oYz4Ki53eBj`iE*v?&YhXf0DByOw)78C`4H4Og#>W$v zE#@~<($Y4s^!byaR)=-{zamu#p_P}HCxhCdfpc-o3iM{@#@+y{b}YL>_w!=@tZQSc z!GrR=!hYwTLWOQsjA{gB61#Tj^+XD0X66v~J4UB>@%UR@uu3<&q+X_`3M(ioRxZ|> zd4cwiaXFdYw9RD?e~E>$Esbu}25Z_gm15r2O{LZW=}rs?NL>J^SQs=oojJ#qSh zHG8X?Ck%#PUXO@~2#txM0bM7NfbP(RuO4Vn11JD@T{r5q!-<8<0h9$GOX5WU2#^Z_ z*HEu5ura}aT2T!&lQ95$5(bDgpC+z@G%+|5O~rJOGfvE1fcW_&`PIiH3%@zglCgV5gZLnngOyY@gR?0}*~t}jPp$!0u%~Xo*O7&KLh6f++etv*tv`GD{F}^0r=Y8dCR9S$a1UPosp$wH zd~dd1b{bO^xS64a*y55)#2r?6bbzpt7Cnd)IGTgI*3s2 z&ds+9>HvDoJwU`ZTgxy074V=J!6C-NjRSgsoJPVsnwk~}IBaBNfFCV?$c%??Qy77e zZ5H&bTLp)Q<8HN*M19|1*6+B=ZvO#LV_F9_wzXw*Z-OvltyjZ(fXpvN4?H z)@%m_B8!_`o}%9QC^dvOMTf)HsozGu^X=)#nwWN;QtU_4q3_&JME)blOd2a_1K)cMBkZGi>n^_v1qQ0jY(L_Yqr#Pq=6F4!nW-vv&fk% z(P8349wzp6!S^!(CEwM;^@ck;)#%8JX&MUg`zp$@n!Rc01k`+bc^E%^c_0pEh-?(# zP{>ePJ(Jb0J$?H01?W34w~Vh7USeuw!Y2Ss7-l5RfkB?(uq=kcolokno9` z-@Gx9+kUz~^eW(jiUM&}@BHm%Pm^v-o=aQlYBX%KLJ0JQ!w(~SY%F<@(Q|FA)tyA* zO2#g29q`ky43{Zxq^L1zBCxTE3pWSOM)O6`eCvr4?EU=t+wGi<-!$i`z49hSyx)i} zRO3flGk4l@3z_j7ST^uv!x==Rq}D2?@(;S%bcN$e^c~`i%sa?XvLsA?_}5wbRLmT=ByW14MqyslC3hR8XgSkF<&%z5icG-vGN_JZ zf~G)3Kj`xTKAkEV&=EMT^GuHONGZKFm~deU(mt>$$P>z>_d)-ti*%-Z_c zI;^U#&7e_ikw?JD_gtfd6p&cQ7@H1`=gIIsOFJnQ{cc}T0&AA87k?k}kN5U3n6?Zf zvFB(^>RpPuKw6-*ZOL?k4>(zv-nC>ZhC<7ccb_MoAApdkUxA2las;HNt6M>(Q)UfJ z)C!2KD4h(Iny23iiHI<4FZVof<96FHNno}ZF71pQ?5F~&Q^~kIhc?~<6PQ(!OZ4>g zc&(TzGg8vhZwuNvzuZ?e*2+}|iEBF3w%`4RY(7a>9>X8X_D zWlrC+cb)W!&hE8nnKzPzNh1onz&02hDONznl~r1*I^7y)e0gtcMaP=V*Irsb(ca#E z3e0%Ri@Cy3u_~}B*yGov{<+az++wX_!1a8#yG_j8X78! zK*dJ%5qJUf7wNgV2as-?-%5e1 zebB;MoWp$)Wd7=<;QjkBcY?0s<(xP|p2(%sTLf)9=2duzycRNxki+2$CX$OGT)%nq zrU6KFDkv)(`Cg%xjvnK@h)&*-{0!87)Bydmhs*qaynS0<=ET>plc@m=p&)2&218;D zrL;_R9|y|Rzw!Vr&{7a{zud@ng)9Q4EY~>V0C0Nv07E2)@1sDWAwWS&$-$v43usV@ za=(FzzW$NuonLV~ zGpkWO+Rk}%drXMyS8xaZA>v)&xrt<#O%tktzF8B3XMl~PEwLIn2dM;(8Z#*Eb90hIUJEL1w*Fl?qfe<#2EV|Kbe_mQVAZKO)QxS#53SkcdiaI?63I{%L{!zd&@OLw1Y6LEsWv+kD%trkob2^52gdk7q zr4y5cV(G)p{m|~)1L7dx`^$ydb}}mtK|`u%p@zwb7+x%Ln+MYjK_kupnitBFvKzoY zB2@i;e!bUdz-`+_T_XsYL(lLTx6yZ3kIBgmKWgIEYd?;6oRZ0TSyQdtDXUU~4X{bu z5c24sHZKaIe%yUc`tD4d$uIdK(}kC9d=85rdxXP+5{!aK=W(2bJq<9fLCwl2+PII7 zBbd{pIKDpeDljRl?Q)s9c=DjY*~t~Fxnn|+pH_xU6tuITbfSI8{gb{hLwjZsb)!;Y zUu8lCfpYZ9kQTPaH#{{<)5zccHGoBo>3D~@TgDKay^_aEz`O&0NLME0Eh<{c9)0n* zzwa;sxf4Q}Pl0FU|Ma`)>BoXXi6{oCLxoabGE&a`9>uAPgT5vF2Qw!)&NG%4Ql@Cz zX_Ixa53qMEtn*f`&!C)jI)G8ig}5LV8LyoHzJBdB_$l>v4Jj3;B&}FFLqo_VyMR>W zz?k1R97PqZ+J)lxR~~Pm~kz!K9d4&&m zq+s8`dVyAF`up}`VuSViF(8TjNkB|gYobDlGK!_bU$|AlQOKw2S#SO$R+30g^di62 z#TJA1+x8#tG>j6JEq$^M^mVMweM|(s9T_0w_>IQ{o~oiN7w)H^K%4XgDhZP>hq7Gz zeM6ytM7DOG@Mc*G9JckdB?kYjdxjQ9`Jgy}?1LS0RIK~xw-bi>0!##(_(zQ2{`5q0 zQ>c@vIF|`KMkjJLLG|h?O1KTB%kTMtR1I+WvsH&JKZ|(3J{U#AhjgPgn82g!6U~d1 zcFv^WJ7GfaJ?YFUCm3LBQYUy=rT(xr_s+|jg^`85d+}6&Gac(j=M}2W-%pZU z5qwZXMRv=D-}d|XtCC6J;HlBV$C1x#zD_Q+yX!fT~96gT`zH0RW|F^}EDL}1j zJ+#dgzlqn$D+zJQA06j_mlpdFQ|*N^ak*J3Mo4h_bp+3LQ-Is!8xpOuGg4{8d?x^ci3E z=f?kO&-WRV;jjbn=|e#V#}9^jw0=t~2nfdrmGS#CFZrpks=#)R2jK6W(N1GJaG)`w zy0S}y4dMf6RY@wN@CI;VFgrvG)GMej@o&g~Y-iWJzTG9oIAG4^wlQmy06%f&T9VyF zL|09))dLCTvZ|&1gA~9a{^24dH^L)|v&94=5Yd1Sph)TeRi{1{(c|N} z?F~b{{lNIlQ}?giY_IC60q!T6#{&ZcEPxF*)=-;l>=F?7{Sq$r9p`qA8>zV~d&-Z6<3x+Dn@!thOHwB;=3Uk!M>|29Hnr!WWEPb9&~zDp2$Cs_>U*y0s=%!rcI?yYod6`{!64muhgvrN z#wEU0@5z}NcOKEw=p@-H5^`KkKRo%C08Q~OgK{8&0lAAf=(wDfvGp)XB8=_;(}vaS*&VL| z2b#xe@rIkdRy)Mi(%8`O>T`mpjg2)P9-bW-2igEe?lOWpQfPQMrI?r)xbl*Fkk7im zXe?+i*urqMWbGC9<>+vWUFd?_A|O_s0t~A~K~Qe-@OzHez`1ilSEC~UEGX&KU1{lO zFETO$+CC_j0~#+&*i$PxDX9V<8faL-Fc?&l@Almcnik1-wRh|tpq^`OYe!X=5EswY zAE?Xm0nFzpyCzoBdYqlk#dPWVL^I^iafv0LqsMdN)`{u}UR$w2yz;pfq zaSUsExin~#tBN@xmO8%NHdr0*H+MgXRFVpbkYU0nt|*-UD!l>u+-~SR?jrKwA&UqO9^po`b2F3=2Fn%#QOtJQ;2vE3~wIxRD{~Z}hOE9^^i0mp?KAf>$QcHIIaqey^lbo~H}-K~CABtEIJeom>p&vRq8Qy;4U28>0TS6T zm~OEKCNDQa^+Z6~WCx|tc#_=S6d{S4==uq;F@1fLnVr8^xjUb^2FTa?c+#2C2y0fs z;Dvr|UqEOt0~jnVK&*lRjooa0n*v7>d+oi(Eq{=`X@09#u(${N!r11hOoXoVBQ?t8 z@810_GtQ{C<1LPxz>MmMAS0vPAv9T;wC*=ch6km;UlfVd1SH68=RyP*;^X|1t)?(DaB4`A#ri$2*jE}&f4ay zen?OE=T)jhL0*37b8MrKlvOFm)wIZ!4iEMKKaTH5UjF<%i9s2oMUe=oc@sCaZckT{P@$$^gWRjQ0&vMEg@NJft`R0CGM&4KSh zg8So_I41le^&k?n#T|!oBxMt(03=CVT-;KU_vUAmIwp!DFi`I|-ZNYL{8Jx%ypFDk z-Gf~~t2d7*SvXt6<@$pMqcbY15sdHFM=ad;;b_J0=zn%8b_!N-&7_;|JR#fI=tkWh z&~uAsI@ZhOTc3xg0DaQH+e^y_CbHEbS_xg{Z`4VYK!I`}EOdl45ZM;lUCEaUp2%jQ1HP&Bnw+Bs5Eqy4C2m1O&OO#WCN{x=ENu z@UqDt%hpSzY{eq#J9%GnLJfLhd(Y_k4b8n^uuL!O<+V1hiHn^zsI3NLZU|n0$;~M@HU(C|>|(C< z&LJ<3O-f9vxJPM4=bdTt<6@9g?S%<57;k`R{vJ;WAFBP(6DJsHDWJ#8?B$4GoNKuwVmP8aniKr||WUFM0@H_XQ^nHDP|MYrZ zJu&ls-{(Hdb*^)rGwK^iau{&Fg@#uUD{?p>Nh-Vs;a~S2^*oG%Fx6Ptq9_FXGOx&p zc4qzUK`1eS6{Zga4!xmqcl6xUEYrF>CHGCCzi zEHg7xYV@Nu5M#TKB*xVg%aS(s>|+_OG~-Fi3|S>tp)lmP=H0PFYeX8gL6{jY7g!PfG187U+f& zpbgW}9eeGX?Tuvo6|Pi6jTn1ot@tKymM-Y4K;7?-MR6}hHJco2zSj-Ryu15t(WmnC;`4T zNC?D9z9STFLAw_#y=Tq^O!QV&Sr!9lzwI@iBZMn{+|HbNY>gYa;10=)cE;Q-4dHJ~w#c>_25QH@fqh)|}LTEgWYxb4`92X?S#e4#KiF^Pd zNBy38R27GMI3d*Af%KjsaQrEeV&ms;0n6nTh7&#o@wVqd6mbyrH)EP_?GNusJ*2Ju zuxp3p00EryV8HThz+lPy(`OX&z7*SQ%Jc^@jXg-rRB1dX)5Y(5=Xz9kFGn}2eJ71L3A;ykPryM;O^sxO4lFTW_T&2%^5%Qt5AahOPwGwfiK=CPS$JvVdd|&qsiu5#XNU2}>m%b}$<#ahnAYkI zvsr9>0KhBUN<;l~X@W}Q8OLp(D+K5Q?e7eKcwD$(>wV$(+z;u2T95;FjSjT8M@pq+ zhuD`6zlk&IO`P0wNRhSfmyPU!{R|<)%}YQIS!jK*P|GFYPOHXEryF>quO1jIL?ADRC0W5#D2Ro07v{X>p|ZjO@PEmG*eZ zQ)vlQDX;DCIj<_2tsZDv^jYK4>5pSx9kU_S9j*UdP9Mr7LfB`MdL6m4mL8f|q}brc zv^K4SP?4a^MEhn)slD%UnFrTZvz;);)+S6%+JD40({Pxi z(`4ZPQ=_xQ>jMbEAe72x+j-woC~(u(c-X(7F?Qf4D_DK&b<7U@1IIQV`JlW!VRJhR z370oGEHgzDtv&1eIO)Pu`)44$XZ; zIHntq4=X6u-Ml8+^Uq6qjqsBqp_doe{+2Yn-F<6x!>d;%gD?IwzuXmq^t98?A7T9$ z2weFh1Y?AeG2ghU^#|2q5F-%PYOOzoCgPPD8N6g~{tLdZ{#+@Fzo(C0{qg7Lu%)y( ze1GoKQFl}fko9}kgB+`IB-9ZFmiftjvTK0_Z%2iV4t=MyvyBNTIq70zG3%&fe|`g& z1?A3z+I#iaer^K=b9P={EHr@L+MIB3X#C#)%sKu7iI5FEA%@(e!5-^xXOGd!k zxfeHASykYuN-z%|JlF^Q#;;w4cW`)yk{f&XY|@WbGq&;;_@~#pdStj<0OEp1;%qI} z&Ts=}0s{^s9=e;?lxsMG2cuC?%n;ie_`jYcR2`lq{YS3EAHWAcMP+i|V)y0Cmy4-$ z+4vo?K`|S?y>l-!yZXPx*ziv1#1nOz)z&PSRDe4Ma<97^7;eVf5s^%^Ob>pqCMXBo( zs5$S|52XZfo>p~u^7m2Ujj6!{TncT@S+h6_$|tmr#M<en%?ZRZBCMXbGjTh{AE6T z_!`C|{)M8kv3&}EZynsw`xK0Fkz->n00bH6YzaHV+bRsOT4G)OQ}R)#qM>=oO)&@($$0=xX0Miu|ht3`k-JI&f`65Q2G+~7OJV`VjT zAfIhx97$qAC(lCyGqQqK^k>LC;=wvPZeF->;qeDph#*ZD7@sQh>vPQL*ney+MaYM2~f-d~fz5+UWLAY?X1LtBmKgecWU)KlR(L})zZ7)<2~d*2?^ z(>UdX!G-SLa0T*^1_^OU8*=7$XApMTR!)Ber}Mv(@6;9RPcE>4F~O% zJYJ?!=$sU=^vnBJJagK=-Y0?qx+HtG$Nq8^T8&8}<|PeqX`HrnUTukem)+lYkP?*v z6fDFhY=mn^X2Xmc|f`| zwUyFPMJi}X{~RTOY6;a)Esb3*^B&&=wU3wmjhGl-sDKMb!Dwpa-X}9d9qn$V?d0Ut zJR0xwz+*r?Coiw)&NoP2J8fm&&rEz2x_`!9!3HG+djWC+6!ddhSm%1DLL^jxTWxQA zrvAsjlLTmoqc%)$x^%3H--7SZ;73^t)2jQ4O<#@58c{Ptl#M9NE0!i==>t;RkFPA$6`d7 zdk^b_kLz4%&y$%+Ka`>fq*iO=cX5HqBKybZf6!07LF|{DoWftJUeY_YAV(Egn+*egHfRwcVAe54<+H4Aa`>G z_;gn0AuvEY@_Io8zuDPM3?Sj*y{*+=%TQ9aEhcuGL8jD~wxhLA(v4r`Z24#jIL4u9 zxfaOniixYM_xG449Gu<@lU$A*6_rtI0U* zMsR^OeLQ>B;PvAzsAj(Px`o`ncCFuocBiyU!Khp1FMG7w^T5P^LU;6T37C}~hyBA= zvmVmA$#O@g81(i0il#ybnDvi4=R zL+aq(B=64+3_~ZA9XdhszsIQCX@<@<@@R78zhqskq)IhStmf&#$FXVN{iq!8^erh@ zPr73HH;(ZTQ0jH(zszh%y@+&;+n}kVnZDNDbj&5jUu!jivh)Gn9m<2C)PCS}XB?8* zkG*k2$HF2B^+c>@>Ap~Ro;^Mt*8t-r_t;Fx`xwfr5NFkL@cd&phre?-D7$gYgN!61 z&Q58~?(t<*A2#wmEG#@Z_r1R@qGk;GdY(HC&*a<`gagH0Bq2;Q2DC*dc(ZeJJ*|&8 z`~qnB(I~2@IONV|7k>1sgN1%0fc8~ZElffOrp?AQ3N>PY6ATgZF!GhKqpQSszqje5 zQ;khcvGW)_J6C-pXDu|A{)S2-;Y#0&XKPvjOjMAJpBZwy@rkx&dBSs_b`#qhOM!Dg zZvVO;rrIaI_U*x%x8n&sL1J4}>8@nglD=y57Q?j%dHxTOcD^03% z#~aa#sl(;B{8KGpgIuyI>UeaOxZbi<@|&MR9uaIiu30l}Pz?~6!Mrd3=gdps%$o%= zHmL+;_G`cqVV&ELP=2vlsKXM1^jW9TItAQR!trpZ7{ zJAmA$2lQ{JjhiMa7bfKDOQvW!7NCAslTb&3A`gKREzc+N6zCP_K6>4NSy=Yt&#(TF z`v7F|E>~2$0OvP<;laOj4aY0+?eq)>SpR&xeN+}zfv;Y@iih3LFqC+c8AFfa`v%-C zatfL#8XX@mz$Bnsz;XWN_O$n+m2-CGi>TSNw78%Hc%>_`7Bu(|Zrlt@xtBFnR8-z< zVo2qcnj3(2ick($dw91*qu7K$Mbbi^8mhro+)zP$c;IHF91wxSd{5nFG&cAp4AG>)m1YH9cR zs6Jg(ytE2LeOI=DlKeG*)8=xjjgCp)-KUBpA=N3q$s)O+B2&`dZv3mO#owN*GIANl zunI%K;THGUzzXV<|MDlQW7b8bQ!Kmpj@|((lI-!a#?PWToU^w4e*y#HJQgr`O<1Sn z9PpWilh-~LOQ``%dY*cG5r!{JXs30=)dJn|)X;Kg)smDG$A?{378b&XlopFb_)!?0 zZC>9V2aiDkbY1@I=5^=Cdspi8e^NzY$X%vmxuS>$;(>K&>9{q%jT?6YBF?4FufC#- z=(w#_m*!b8eN2?n(lOw%Ge=N*efixa(W2?^U)hwfR}}^%tQ_Qp)-E(U)eR&9szC)! z=l@jBDyoD)UdiyFlHA-qZCvBPknbyn`(7_{o(#3%@T7zURx&mwAppYxN(2X*{L?Wp zF(*6nOeg>2S`>Uj{mOBzszRTE=RvhrXk!E4+9v~^4fR9W-W7I&m4lKA9@mWVXghG> z3wgQ?cYp+oLBbRr-(p~`hr*w*M=n4K;eRoqBb@bs2`8+!H$Ava{ua_f!H}Y+d2p~E z9EQPjo~e8W-W73%Kh^L`I*Z3c$3e~WE^GdxJc*I(^Y#lLL+IBm4mt@!kc>CZpPBiN zcwkTNv;6nxMXfyz`F4v>?!uv+(FsHmtOg7!gTjKklG9EL%lZpmIhaY;VE)j!hp;n!rBf7V?S^5r4m6%;Iy zq(WGDI1`4Cr|;6f%c&?c-e#}=4=B0zWe9I5wM|500uL#j=E`(Fy8m8`I_JUEe+U;? zZW3hb4OiJD8t@D%ok3|qXyIgR8&7(FThQMA72@~#;{sid zup+ww1BM^-QfKJT2NzQ2=H{LNeAjDUQ%C1+VI(u;T&CcAT14~y=i5%LqnhOMC+wly za;50B$m`rV3RM*2dt`3u>SbLj&g{W6%QEGs6Ko-W%Y(it!Ch)6!uxlUx z_Y1>+1*KN^M=3>r`t@_Hq5I=rqu2S%BtJ_@hZ1(vO1?f`0Rx`C+N3`glw(lGd z`2L7OtUPTOk3o&+&p%jKYdU5E3ho3bxW9H!FBhKM)n}M|u5xHO_jP3<4W&w`UYRveea>aEmFUq44n*ka5^`?W{Nh&%S^-HBWh4S8k3rm=r2ERR8e_oSI+r)3eawGiF zK+m^rOVd&dk@>y8M@mGRW8xmq)^IF!7X0n|wN`DQ2wRFM#gLxTipSL243@4Eh3ROX zKvQP2w`wwpFGUWAi#D({AcgVzh7ac4xy|Us@ec_fkJBY=)y^mzxMa!WV_@fdQnl4t z=I^{n>!WH&JTi-l+DjV-eqeQ6SlP$$;(Qb;jH;go>`^G7pllLzpBgs&1=xkiy?gik zq)n2KcIJ$Bt-Uj{uOZoBDETkFaA#k0KiHIN&=luaSe$6GpyaC=($>NX!f(CEv62Pb zoFQ>7eGgfr<~xgFj-6|Z^3SMRH#Lu}XZQ#)RV`nb{f~dH5fFEICyo#z7z@0_##fW2 zt&IJ^9J*<3x+RalwWmiEO7~CRZYXm0-KRV0F!U;U z61sHSr%&Int*_r11)17SK)MMGPL>DWZkJwp>XpZHzfI(fJ!WYk+7o%-ief5r|H@gN zQ=;h_z5Ms9v5ThmI3L-1W3-%DHu?6)qujy8wDD)oD z=TJ#Th8my=pJDzHJ4du|F;^eQzB3|52PxFYS&^?^f-zySz}(zi2ukAXP#(je;C{1Q z`xA3-^Zhd~U_zNIPFP%Tk>ddM6Dx;=9cz3d@0au1eKU7Yp=EeFf9sxUJ)pVojXD9ZduwX)u9Rt+PJ zFDkqm-PGR1xO9v52+|pn&*+u~`o;L(i*xSdrp4wTRnOO0NBI4<5P59&{-^nQK5Au8 z&IPu}D$PB}5cbh5yQswLJ9|+uLf(IuD~p)s!ad+AX~)-|lHeQ2ap0f6HmFe6Yj{+M z{#zx#9=~squbiLKjdDMUYX0VAv70Rc2d`%}k9i!**n*1);gh?-m5o?#SjUQT^CHowD#@=memZi#$DUtT2!ji}aq z&Ut-tjOp?8;<8S6e*C7hci*riIVzqd_?~b%uOGbp;#|Z}`YK-yr=?%ZTLg8I$4ZZg z^jLB^lESa`F6`7YuY6s)>$N;3KaYs+uT}qQvy0S&VdRX`fY313t~Y;)xEqBA&ts0{ z{mI0eRP9Z)``vnCU%u4N$xEo zJmmvLLi!~}pgeAV%w8<4Ze?ZF&^gLdW+7@QVV12CKtVS+4LkE33th6S)!cNvvTyDd zwXPKY=ulu#f8V-F^zq}z-T&o(5ABg&2iM}n!wI8Z66!`4H%(uA{th)>hPV8ho`a{d zm!EN$-Zh!t!{=O2-pDMRDe-V!?C8~=T->Vt@>$e8hB<&g;#_u=-Fs+%zUKI$<+{?!{*U`Je+}D;;QL>(i9B2CtJ2IJ@(2sBk{`9W z<3`z~Et7##wm*ytnhAaah9DgOQ)%YZ?_0I9`FSd*@3~Qx9~h}0YQD8=c|L!6PcH!X z3!AmGi9u!hmR#d{mo+>+J&QuD9_`pDbxUnlubC&!ZBL%(^vIF%w0IfAG#aV!%e1;M z>nfXiV3BjZRfJ{|Mj!i1Xq}ak4iyqIS6}{lh~GoomQeWVqD1jYzpwnKWIc=%XTG() zlHw3#*xe-*cKHqe5Z7{uTX1MU#cb)}Hz#V(Em_bVK5Kl$X~?YQ1KmkV3-*2%xFMT$ zf2=*U7Cdx3yYvoMRf-$*3u-r3Vi{`zVHT$bSQ^@i-aW?fv4#Gp-Vu2yIt?2SU;Nc* z9Y3LSBHOpQMBzs*(t)|%Tz>fCo6YBX!9gR<5=N=Oki=^c z3DUwq;zUzRE6k$Q{ps?y)kX8wQqK($%ppM3^3REFiFAJq;h%jn~si7IMN=V(}bR#X_k)D zFUIKvDd+f(FW@B{CA6|L4chY`X0U69A+zLxl8NLHtvI!ur<` zWS&})t0Fh*6k+$K(>40@!UWZht4#j#_op^j9p!meIc;4xPNzLp{P<$y@>g>U&z8Oi z{-QftAY=3LczoWE1kOc4@PX^8+j&jJU%r`FOoty|J!~T39EH?>6M)(B!rW<_VyFfo zy&RX%0Pli3Y*@yKJYYnmp_KD;o;NWzW_=pk-RAu6slWZbKlu{udIojUD z;5~o5j8<)!A`no)hxIO-sfh=@L8z?QTCjbL)5$1}hB?8Y@%Ee>i<3*M-4o|dArwVH8W|zIK-VcU9 zR{&Lr9SaXWa0@c%_>HV~2}s9ivQy~a`bLlVX)s5&?tkRgB?T@rG?}nmb)@dTYx~MP zRCP3!vEZlaPHPt6)GlY)2OCK20e52R3*GpI6#L#_4AK-j7`{C$(NIO9-G#~NCUfzH z3M-iO&7Lu+Dgcp|j$q8$l`Y{YCC7JQ?hQ>`=DYr-i7rQ0#NiNI=Vi}BA#OJxN8Z|h z)t8a(&d!AgJ@8dW8B+b%(#0$yt!8X&tS0mdl4Lwo%Yi+0$+z-CIN8JB8xSLsUqf})2MpoTYr1wNB>o$-C~g$VVBOi~n5jkUnY zEz*Fj+@kEPmVS!jJwLx;QW(50$|8-$eMZ*SVk1`T;)XA_b|^BA##brK$Kkibbxq-< zHn&BN>2n#++`e8lz-+zepLV6RmQPDCq1{cP?Fm#3lEpb|lHYdxeO%E7uBHBqWiwWv zud*#JZ)UwKZ6t=#XT1I&)&Ul!L(;jiDQ7{)Xlil>1G7v?T_92FF`**ovv-}#+`WQUoa^k^y}BJeGaeK zUB56em)icl4FnrJhU1ZQ#((o!9y*_jmK@GIDx7iK9%is{>%E~@tX_P&w;5kgvOlLc z?1od|cg$TKM{U%joC^nJTk>q`#oPQ zaRGvDj-KV}6~&2=Y$(Fg)6*TLNIqb5lu+<-<2`6leovI8Z1=>DyjcRi=bNQtA1jUk zCi&)d>F@rs^3C}nJmR3=1%epy-Q8yQ625$~M^X?oNHh%QC=O*EN}2FYk+&6m>yGA( zR87b-i;ESnTrSyOygbH~_TkM} z*Vq~7qx5wK6MID?+qNi&u|72tS^eihM~FnVW3sz9lS1im*F$CYGLxS!NR@Dz3+RqE zL457I7KWN`{wLxaotU^Ia*yCfQYvO-RE!+B_$~F5?18!XFPce`b)`!0B9~p5X}CqdGUVksa_tgiaP=5jy;3B1+U%}K5a~I1 znIEeeWEB4p7kU*UUPI~OJ?Pz5Z=h-jL%WRwihsIgbrkhR; zB-Y|KqWhq`f8x>0Ey^@^uWlP(1uRGtm=V>(pe57>5}T5z4$r1V2Tc2yh5-kopzOx1yqvUf^+*S6J6va3@GbhiaE z=1i2P-gBB5zCP`n|8nMKaB8RfAHX0qgP6!*D$+Pwl{1T_(VPn}h$3DHM@0Cx zai*9Kv76p>d^!Xq4eU-imd<{OpFg`aq_lhi4QRNy5{AZvqJh5vZS83A=B&xa)&pGr zb7|YLhb6Lb@#2nu?jxm(SgX$~HW2~Ui@fkRbdub>uh7(O+H^MRrdUTH5ueM z4DH^(K45zDR?mBW_CH>~W>4xSzV-z_Ctozqh2+38GBOG}RH1i;Go`S<9-1eXN$$u` z@rc75BJoh$A@D#}7k?Z?8WS{{Q=jU%o$0P}Dwv_hGNKV7lqlKo%@51Ro|lP1+%;R) z+z$9e62`~iQs#b)n4^J)_!SIu?(*XqF%?vN2RNg)F*DaaG;IgcU*I-8-(F3b z)8v;lY~43G*x3CLGd(>$S)A{u2ZCe~w~S>j@l$W!;?2${4*VMczaoS!%Zwot-RN_F zDFul?dh3gHK3(ReIIvEG%sqR9GEK;q10PpXt!h3DC7eo1$@oCE zCB?MXFT|1c&0d5U-qz{(CSqEikOlHzc)v9%! zD=e-xkWsjTp}OV|u2uj@Eq0^P0nA=VDj0ar=c4|^m|*L>cY=t*fP_QR6&do~kbW8T zUl;j7!M!z{0Ek&_eebQ$qmXkY*Unmsh7@TwPr~VaQb$coErtevJ(ct?~2;ihgp9 z)Wd=YcyVfY5fQ!H0ZSKTeP{B<-ai6yVCQ0?mLyqT7Ez1nO`PWm+eIx{aT(ad+d|eo zc)`7OSm;96n0%%GwId4r&5;hAXU{cpG|10yTT26wRl)bau_*!g7*{u_x&*|!V2Ul_f87rF?*ZC8bfnk_ETMj^V zH77>+k!_Sm1`GTHLK9`X3j-k8W{V?RpFpJ$2Mz1d$-cm?jM1T8*#-~ZQhhl6s3}Fs zdLiHx#Qx{H!cJZEQqJLKbl2858FtYPD~B1MvoN6cQxAjsR5`!@&x*>{6e6uQE_(P- z*iY;+9jHEvpNDrK7%z(n%H(SroEOxdM{$WETGfH2xq<76iB4tSukn<5f+$Y|w%wbh zUf3$YbfYn|nXg}|IfZ%Q;0hsNhTGmeb1wz_X3-s0*|{pn52$= z?#p(^Q>U&0hTU*CzjDvW)`#G0w>TEe8_TD-Y{mCeVQg6pmZJtgf2NFm570eOk!~R7 z-X^Y#_>tu!>jE!?N`gVnDPH}66)VH$6T!0;YG&(I44D`iG4*H*!rAEZ!&4hSQzmbW z{YjIZQ)lJ>>!hsrSVCLr$cWP^XJ-kkLf{ELV36?|iEZ!baEjwn^0)AxzH9vg*kN{W zSe@2&7V*JgRd%6=-mbiYW5-f`ArRLM{AhsOM&yG~B6Ot}X>iwv4~71Oe?nBHGBYs806~%VCPG%W7o%YPfH?txH?$J=`EnFJJw2Lez5tm<=Hth*B@zF5 zuhv~CF-jLE81TI8GhP`9A=Xi?w!(TO5}`x1{!=$nwO`-y(IKh<y zHEW+In=y#T0Fo&YLG6kzx-LFCIoY)cM(GZr@HiebGQu?K0zYj0Ia#9?!D=O^}m6=F9~?1D~+dyU{5jg?nSy~`cYOSG%Qqp*H}A^x4X%sb_327uGq z_conHvjA928(>ZCbM2NyN9gjQ)bO_|Q`(K1IEdUr6jB3?F!Ik25Euk>K7@)wjFvNL zP9uj^RByvqwgZdhv7a(tspyG0R7l+srGxQt0(jezv~&-wnl4_^j^Bt(m?wUvYCroM z9B`|m-~Ih2emg7|i49E*W!M(%u|tH#WqIcgVIl|5lQ`of$w~;c97&Q$-yxqjxOI`u{F{GSlsR_~=mw_T%e~tDF|vY@-dYS66EJ zus|PcL{-)4{e$Bn#z&9N`tQ|XAXFP7>yr9#b~~i~!m06{bF%@<=TLuw6$;M-lMTFR zeT!w2n9__=fz5ofnXq!YeDN_jCGUTn#wNRTnm&QaQOO= zNiu!HqzMX|x4u#Jyd$b=a6^c2iz=zn8@WZ7%|*SHLyphw$&X;^y2_E$_V!swZ0wFkWQle;fq(x`ic1e5wB?#~U!-+wp?7Lv5LE zEB-OGq^QWuPBleY^oCpYEZJqjY@JNCSyn>1~F+QEAooVKt2
t@zM;+zb_z2c}w8fB$&1k5@w#z*i!?HDF*)!VE~*y#E7G;RBh6Q2oL7 zbu1ggRd|Zp^Bb~PrP;-4*$7j{tTuqx4~5L91HppDrtqj~S&|)yh^LjChDpvGsOrY=$Y|Nw#71 zmBQfD6W~7B>|;j_JYj*>uCCqCC%=v~7A6;Zm#x~{?T{5!6DU8NK36@s$GsRN@VXwK zxs&~EFWJ0S@BKSy*9Tc@#QU$jFfAL@90ZzK!|^BubwZ8S#zWQ&tU>Tm%Bda*leUqD za&i~GL#PyB!SmTpQlwviXCMS%z@u0NEPA2Z z&pW4a@Oq2i#F>5mzvq@t4W;A9Hz33 z%xXl@qMRbC0X8eWG1n|OF*QhwI>a7t!vOZVolP(ih10Vv+2CL>jBtOtb3m8yR}D)g z9(ZIQ#RjF|X~i8$!1G0rx**uG85^V|-B%e;o;(>S8nbgPn}=v74iZf?g;BV1a?R$R zOAH{W>}Lg~Gm4!)H(cxH+6w|Dy6xJD zVEWz+tb6T(4lMuvdHvR{yIwi>?&(@!WG7vvJ$C}_Z; z!Ca}yIO90X3bR7m70PhnElQ~anGKY%oUqghLAX5acb=s9PRPD!YGQY}_5rz!DIq}4 z_JDRup6<y~Mk6`x*n9jrnscff_ug75KJkYl13rldPylk%NWRR+)vNH^+S5#8+62y-pd=$ta z09$?+O6RC~37U4|P9M@qtInZ3VQiq6>s~B=_&v$gw8_;M4*rK3{+_;6czT zsW|KHy=BaP^}dr24jz}1UwEH^B$|do;dUfl&Kv(b5Y)v!Dl&GaD|8;%TixDi{aS{02C}bMmtmY-5v`(5`hqko|X; z0RAC-BG0JK*A;(omIX-5(JWTyNo;&&&%VRIqZWZ@Yd!k`!Sm!A3Dlmr0ri&HgJL;& z#b@W65o}|#o#N4Z5s>kUF10upPy}8J#t6Z$m{Ny&|BXXI;A+&~Y3)V`7uc#Ep<@4i z=%7I;zgpaB)~W$ei$bncg_dC(qpj4EC`FZQji*u_52*#7W4M*QHj8yw5RZ_38tw91qO6pU%{q! zzJexQf?-Wlp!)mOiw9pin2%s!r+M+is%zs0+zh7aijRXc^87VDss4zPCbC zE4W$>d{?#0Po~BJjJ*cKP)xC{%IicC3t-0p&3pRY9Ap<3dYw>!aw5Z6GlCSPY--@7 z_1V4V;c>IJB}ksSzSp@Hl#WjHJh_nNvMU1pj0yuZoJ|M@=@k_UvF}U&(DA_t8d1VI z*4pNdOal4B=oMc`tUV5=3zoHI)lD!;9jTzzEkGCBgvFq+AMTH~s%ju;UA#MX>DkC) z`r?Walg*8i36ge%XufZIJ9_e;+QBEk(|y$d%juw#vVeV~MA;+)P~sO(E;Del(k$SE z=iT-QDidm~gMc4ZP*x2FcLHD-O1?bB=%T+nNbx5q6a=r0MAG?0amK#0>cUO!&|fik z8wV0VJlYV^+75!Z7k*&tUH}e)VLP0Mt<4o=+m~q2x*k+@05^@+o2DMQN^@F^Dt}9` zD*MLDw%z1wvhoLVvz1#`jBME4rn~4Ag!=R2JQzkla}UVFYs3heJioJI(M_EaG62RK z%wlD2k3K(M+?i2UR@UoV3ZIE92qXaE&ZXyx=>liNtfKr?!4+~1IdouAm6x!Y{6#2n zI7srMVa<&;V5;?-880e>(YAxpswF4ULJja0tV1Lx7QT7(j~4s$=M8 z8#2JVVz%FdeCz~mQE~AL(4620DTR(LS6TO}AQTxUT5-rAB5}t6SVh?Ks598a_E@N^ zyw!TY@}XO?ay29%J(W50;Va4&h}8g(x6Jo))b{&ia$#d`d@gc<6I_i33c z%!WnmFa?6?$Daj){9IY~RwnZ8d;p$qwV$p*vyFwN5s-``#k)$3xzinh5ObU)I3Szg zM=>8wRRG}bhzEI-^hyo#&#yk5jRT}o-kg^6UThK=Apa%6-|w`S`wQ1(kfYUzlAx;qxSo-KL=Eq zIuqQmPU<6KQ2oF)=#o~R9$<%GfMW({U}&4g2xjoG8fIfpKt)ac6wS=Q+>baJu)@k5 z!2|SxmKUB4075wuo&Fc$kVigYAp7+$vgw1WBID8yFbN_XSYLvNu_GuHywkRUvA0Qx z49e<;!D0{oMX;qgy9!9I>D<9lc$ zG9uuG662_l%0K93?(-fy#s+d9apfxS(UFH@QDqDL7(tXOX~hT}%-BM^4q~fzS)Z*~ z{eQBRYGFvln)WdkZKR-_XR;9pTMCjvJn0}U8%VBz?EB1kM;$WS83y;q7Kp-#VVq$* z?DMzO!leUrt?5-yRiV07+a=!x>qEb5#V?456FWzx5Fxs=xbOTSi zgi!{fnMLKrE)&0W33ymS5!H?z=b2=>zqJ1?NO68(PHp?|kSA z?z>M8A7pDPfO#95@U8e}GSgC=aw?TlLX(vbHEC(kA-fwmGQzPOCHRf}0&T`Oa;ZxV zov&ZpeSFpG2}Xfe$ADeMK%~;q&pJ?c*fzevG%2ePL%1F!@_N(n3tp2dJK81%^0IQ z`f+gLry#jE0&O8n5pmn#k~WkiuiXuv-SBzW%VNn=5IFr+{{mydFF;@4hmya>l;tFH zRsAReoHl$3`AI!(EWl0xP8TiRxpSv+6bD$OQ>L-8 zaRbm8LkxHxt@3A)Q?ucKgX&-tGDG>E%n<@mD`sooc6|6C4767L!PH*(C(5XTVwX&W z;QWP25Vo)(POWpo{6J5llrsnwyuC=Di8>9$gOorYMvGiNd462Uab5W&LfHZ$s>)XPPbK&bh$QFj*So(d4wrY&-o zQ22eP0nz)08&$tgvPn6`9sr^uP&Zd#h<;{GUETJ|`rPVTBvYE2ihsgv@OSes843_w zg93m&0@wmfrnV1f{y~5@P|!i8SJ0Q*b^?mt8`Yr7Xt3X zAjnYS$e8|WJRuU_P(rYDt^JA!DmHL;teT)#RZPtgE#6Yv3cj873B<~$?>%;*|Bo%T zxF|0rPVR^E@QGiTJb}<5gRk4x$neO#enI$62)OEq_C?toC4nwrBM5snY-aT4u$jM1 zd`3BU_x3aDqzN9>0laTju?ID>XJ%&7Sk!6AUn_7sT+rCW#6;!Z7UZYV1welsGlVjO zStCLkr3@X6!y_Zt!4XY67MXdI$7mqyTH_FtvT0BSha^(bYAZyRQB_rKAIaiDXGZeH z0JJdqzIVyQ_k2Z<@2+?2jh_OHpIyA+EHeJkYb#u`22cj(0Y4OOD3lEu7%nsq-b%y# zVL1p-x;9V*0=#->de83NTF?o0?NBX472+{f8(?M}h6#>6_y=c(^qnOW*Nybyaq4iV zZEG_G$!4SncN%=emBgn%K{1qhTA55ihH5@&rJ9EVNx&US3e*)c@dt%Wq`YP!S{b3f zIq4FLS&EeLV%DM%;k%g~T5iYDv4~E2NZtACwQvP@z)XE3g({G5w&MnVS?g%PRGS7r z3@!$|kU*!klVYjN;Z|A(FNAk3isGi{K$wo$)4nwXNKY#*DEJ?iB)B9$&L2?EL^B@H zivIUf%N&GLGEz_UNABwy)369Wt>@hCJ$tTLWX7U0sn!54-sT@U;6?IyQ#)+#=I3|r zNCLS%w1`iC;M8vPMT|%gjy08)Ngd_E!PH%k+*0&>wNX$by(?D6Y|tByqMc#y zt+(DVDFmQ4tBVI2ds)jQGZ9?tGv`Rg*q9(W*=u{}Fx)W`7#h=Nj2?WIpR`b&TuH34 zTr9{gfd*i-)Vn5miz4`ZcERYlIDS+px1A}LJPgr`O!ocr3`tNs)@c2wXN^uTjSd~Y z&+twimtjU|a1lR3Y<%Yz^py(&gjOH)J!62ndhaSsJt1~Th%x7WbPHh8gm5nkElRo9 z2Y2BG$oD<7rr}>7IT*mo)_}DH0)GGgqtGVqV8k#Au;LQoSHO;1J_aeLJzy0=v`D2p zUf48UZ}5J6S8ISxk)5?8*)ooz(hSI(lJP1)V|nO&^eYRdqE;Y&O$*@fHRYzk#bU$4 z!qGX^(}Ct`15}#3fpEq$&Akn^Myq#Y&at?AYrB0#K1G~BQT%EVwve5i`0yAS%5v4^ zkIBX$c$db_#&n}aP%uH>@p_|!{`BTrGb zETcud$(JPAJp~F%fOQc5U>$k{zfUBhT6<{@cFnp7(C#5)Lo7wb|4yIT_>u147wxJF zsDkq{tCE;P--tCGya6}HQy#p*A%w+@jEszR?)6zI)#0=M_^?QTe)~(g?>vLQTH^+_ zVHo!adh}J3I6I-M1lja;u&!MZ(te=)7)=?;AuoWWA5Vglfnh1e*9sQoUuz>uf^ipF zk556_-@dK~v}F*;`=$yr4Aedu(`qGrnmiB{hRexa(?}>o`WtNTyn%bHo0^lOr8qy# zYgnjt5k?9;VP@6lh9~*uS7%^GeCOQ!f9?bc$?D*N+QdX zb^)ObK40Qo;HmY~w}#NWUt^W(;vuq91`?RSgo@yr>&i<4_kuEA#K6etxNajS7nd09 zopmp|MerlPa9c*yB!Ok7r!tda!UHtJpBe8X=i962VdILDDo!Oca#GF%K4csJeW)sS z0j1G>a`??T$P#b{Mi1{wjlC^_UK2=gV`W-a*fXP8@+6z~@OzNj6C9xj%F*8!gTrwP zK81}2@PyXjG-f!=eZT_y(M40#(T0mgM+efBFY3Zsia9}d+nJk&?p#O~`99B4A|fZR z`qft9c3sAymXvy`KSl}0v1CL{rL?An2Oug?L4^DaSeg3J3Q=hlql6FVBY(Jz6``3E zZFiGFG$ckw#;ctxjiO^l)#Kicyio`2B>h2(;rUhN=gRBrCieme6q~jxT0+MD9_Wfv z`%ixm1VvUALQTmt-FiTaL*exYV;jcd0sTlo&(-wuD(<+3#9IMf%In>|g8rw{=qAY+ zK9A(MI}W*a1GFQf$;IT_Emnfp@6S4hoRu_#frN7;&`l2LtNgp9$(S z1qsz*OuMdbzk7(izOHWVF$+qF^SAHYV_!c4fbW!>Tc`Ep3JSM+-xT4uUt~i!uY(z- z3WW|WGYJY3uyv^{Ieie_zaWHguqJ#0gyS~`$bYR_93bG52%_}2s-BX$c?25*27C_? z#8WT#wa;EqVchs>!0zu!hoJs^1L2Jxe91V-6tcGlA%tMEym#@whCz)F|?DF#EGs1?Xy3L#y73+^akS$XHx)EFq+cHwOUJu>K4ZvlL%Yv^-O z-}~B1-}{;yPKxZZrf`Ue$CAA@6i7kJb?En`9))wMc!+Q{;MirE<=?wk?7JU@sXtC` z^}obz-~=`b44~2pm`+bIj7_oZ#oVcof)$_ux^pv+B}6_F9U|%b1KZ>!WE+{4mHvHH z?&Mi<;z=rFg9)(k?q?5^Q~TF_fZ8#L{z0VOr~wJhIf}LBTx&QuVk-j~@Q^dx9i5$H zV6%ZHH0HAlf;vZw&xL#?`xYX1>Jt52otQs2V!5HFeY^8N*LN6!*WX0hQF39&4Sr$! zNIUeUyqTdV*Lf||8m!Zp9Fm_uS0Dck+pbPb4Yw)h50ZIQ04>8^I{_8G*&Vo{MFmL} zKALXpoC7u=NKoH>4x=1j{1}ClkUc<$9_8!Oc}i+Nz~TuO7GTf_0M%fZJKHe)JpEw! z)m4BaiTgW@_OWstSr!0J1?x(8V(l|Xw;_Y|Npz=#w-Z`Iu(eG?4eGn`M75&n92mwP zgXVV4Xa^gzs&8XP=r5x(I2rP@8*lC$dSCe8 z)ViHAKu&}(&nrMS>OdS~hk<~Q3ECiGAI%!X^$1zR61a)qQfS1|oGx4Hz2ef`@&BSA zF_oNI!42HwiOW?Ku#92bv>Ulhho4zFYuy&EVUSqDPN5ZOggD2zU%u z<~i91gXQ2>i66v+uau z50XM z-xwjA*2erW%nfmZ*G@{H%k~}FKo#u`IaT_ZRDOBcg?*t zM8EdwRzj}=c)Jfx+g-p<@j?X|S9}0QdU}%Jt z`)t@?PAqzUzp|^-GL*3Kr{w8Zkhp4E49B^V+VXrEJ3ZI#Dh;_2CtedpDtJ@NVE^;` zKhdH?GX6Vtt0Hn~lzc~2w%I(6z@?Q!_K+ungS-LlO#yyx_`Ge*ssrXvwcieJ=*^O! zfdu^nKWiBEVqIQoSOe6=bcmOrVKd-$+Cr62GLHAB!VD40^;)|La;#AO%c zD&DHvA@Jy*p-;J5zvHYRjjj`B?B~x!+S=8xF?-Y=f#L=?-uA0)#>yO|0JHnhRfgH@ zq|oA53U(Q#^`F)AF46*q&`Jf+nT}h~>F2=aA`+qIQMu8FQ1#H;;Pr-0jQ}hCzdpE+ zm7+N5$a4wntH%N)Zu?o8?-R0PHUQ$*W=&#hEwQu|DXg>tb?y6Q^oX_UP@B1Y$bl3& zoex!;sFOI_r19dGQyzC~d)w{>qx#0m_KP`gqebffo#MwBGCI1s-2l*EEk}BF^rw0W z!*MKx3WBTa zf=zynkhFiK$fq}UPAUCAzP>uFs(o8qmY^Ugp`swth)AfkN>81HyP?1_HJh)szMt2qmb zoWkzoPltt}8_Vuh4)X(iGIY_T{wF zd9T$ZBjkUuY+C~^2^Bsvzx{jIB26Zd?_+)<)3Eacu66>b4y3l`w3vaKjGZWZlJ68y ztN<3lYrDIsfSV-{N~w6)oR|3?9}oNJ1?u9(i-7XIkv|(!20@EyTEcf248<^SGM(N2 z=t#Ev%~vc$y>Bc@{c{83eH!2NTOu1U3Uo9PdbYLop7@xreb!6d`s^Sl?0rbl%1EBH zoJNUX2V+e}z3@l?Oq|J7@dBWjL%hFWY*h{w)G3b)Qe?5;0T5ctB*Pp!MiSXkXn+SI zr)Mq|C+q6y40td6c>oi(z0oetfZaB>`RgmeMGimDi51pm4*aBiNKIsL9GEd)F7F3U z=)Vd^$cw<>K0!=eyaNBW)V^-rKlj1dKM$6?oO%X74MBP12fCoUF+F=|@t|`W2(qs$ zD~EF1Uh5-|HIFpup8nJHsBdQw_lpku;x6Etjgbj@WJw=f6^m5%le_q_zC zTWyTX5v!%U*27o1z>8I?Mqba*1u>PQ(qF@tHVA(GXR1V^W0+kecP+3Xb-J7!?iR39 z*d}W~0!#1}g2h_CfLdX=G-NDQ6#+``0Z=+#gMS2F>xs^%0|3& z>;O3=`r<`&#M^rxze{K(DamsANEnbRU{+fyv>WWO_IRznlW#@MDdO(3!8cl#n#YeS z73Edh?_rn6W*v(96I*P2g#vxKnjcbB;D1*>>mL{x0iy}apPIJDi9$}zIcL@mJ$qnY zL*k4qZ2zxzs+Un}=U`zwIb4DLef|W@F&M<|AidQ-;ZjV!r?()$_C2TD&B9bUd$H{% zRrlH-@DL>~a~3UEVf9RnKF9KIkC+9A=1P@5^fXUoF8`HL@wxKwNfz1;pM-L%dcx0L z!{?u3y^iTxAF_`bMGhjLg3bZ(&--T*fBNx{n7!p4 zEEy%-e)sQZkO7<&QHx-+(^)Ceh=>94t;o#mpd>z#ZNgu@lhX2VBD0|-^RvKxhVAm@(2$T* zS?cY!her-0xNR`I~>3 zSXChy7#R981mIku^`LTTIzmwWGC_0VnAy@^=XK`oe_^P`)t43vLljp}U8IVjMX z8tCPoF1>ngd4tJ~o1OiJ_b&`No5TBjX|a!;S3V0=u5`<3hf~{zko+>(GOg)*yt+Wa zfET>*=h+VZv))bn7f$2cJLTb>gngRypczDTJrMr&p#ReDDIQT=HR2zJ)~owzG8<2N zkuZlq+hE^-#pF|6X#OP9Uxd{9e!$ljx^jnqSIn-R(s+fRZ}8QQYTeQL2ondHG$)~3 z3QBB+)9QIoHv5ze1{XZHq(x)4qVFa}#W5GXk5KG4r8d#WfDfUy+!Wjiz{!~nVd8{B zcK1ZXcIF<@3RAX+u+n$jDNa`Sv35PvId1Elo5jreA@NnB>clVQ#Trso7N7q)THvri zmk|gh#7_(qS!EREmwZp_=AanouVK&c>Jlp$hv~JJrs2!QqsMVfhA)c+P1Pz~4|U^N z*&RFc2Gw+E9WhO|DKUY;)}jMyQ^cc*+QQ{u>`&2OyN$R0r}V{(6V@foucAL65+laW zUi)%OzkZNa{%_s3j1m|0uxiI6dY0AmXK(lWn~RHt|CHMBWXAY<)h2n|DOmZMXJ&9e zqA2#S*yEvkC=I7iTD?rUqhs)->Rm4!JlOu7yKLpt#qyfwS#kuo>C*rUOLekrG%8MH z#Zhd%w-Mc?t)e+O9MtLv{EdhO5DqfH@u%LOv5~CZL0M7;VBHorLWNfX1B=yrT39*! z^sW)m8(zl)Rhy-|;y=9@VF9{P;{pp8AE)^%d$ydkd_VD`fTglj$*qeCF+UnXziGw+?7YtSP*fKCx1f|d*?a08BsZqMri>&JJPisaS^8p>1u_T~u1Z<8D-Xix8bC&Fz+M-cR0`y$v5 zHR}1aS`a2o0{u{j4eH|*l(vN0mxk`<_#z`O3{viY;QU`FryypU@NyJXk{;CCm+PAX%9-$8K zh^p)XCo2TtY4)lcj)QtF2TtmUQzUH?(2f%&ihB*0-G_*aMloSRK_%Qn*tA}HrLZ)2 z8&g*&kv4U7#b^0` z+=0HsB&HGVEUu@d|3fEGwfRGhyb{cL;)d<&FdkdGpyL?e5*kjS3MyA#WcM?7ZM4~X zMtoRkm%C_Cw>;RkVxb?Xw_c)9c~xDIhes~@rE-K6=$R6tLzMfyisY1sEy9GWAKi3* zs<1$p%t#s}+anfCyViIu34}L_PyST$I{9vriyPj zseCX=1V+Z>g^?|p+Xr4HA!M9~{RX`VDye!pr|P4N#k1F96?%FHuL72C-(-UpR zdXgOHkoI!KKEk6W-4?fXx4TL{`w3XKt_08U5% z=T)M&f#QgRbr#|`?|lgT<#646+sj>JS(f=Z2&tlcbfiv4oO9I`cJCLC6j-;DBZhSV>I+J{f(OG-WP)HtWLhFW6WL8zF6u`gk3aI@98rgI=7Hy zI>JFIe#1pzjeOz#9k-gLXSZf_gc;R%O&AT`F^CAl+PLYY&r>j3L5gnNKNz`EkF%)n z#&)aWcoqJxkF#raP;jEGr&5db?H;>BC7`W53b{n#K;=pQ37jrfgwsW+B@e~cYrnuo zAV$~%y5X)drey%jA}TYaXP8(n+k}~R70mxUG~C{N=A~WZe7S6J;(1d_8x6yS6>jDZ zC)TIuY2g26kX+b*DSF9=j4bYh2@Lytc{sXE}5h;;z|5^A~!H8g4xRi zBnK~z1a>TYLcd+C`uXF}nGDG*LoP+&Wn@%i*reJr?unnve9ff!OnNzF`*8nT>*Ib; z%vYpztbBLT>U=8)MTL)8g6~1R8U7vt1R$Dn)XM?s%@0U#X!zAZXPCE~Rt&r#rP|qb zc~B%fKLXZG8tp^EHCDUd%5Ql~-j>z>oIiJNHlw&mAv#Dg3=ChCjTQ=x_ais<;%ujb zZ+Td0-QBGtv((^`e}cVTyw}!bsiu(bY4RX?uYQPzDv4t2`;4yUtcj29fJ#-SfJedL zlXd2;XIvjp^-C!Ymm6qLr>WjLfB7;BQ%DTxx;)5y07aA39nN|8P7Q#Ux_hJq|25h2 zMlZsU29(3@n`7oGm{;G9y;{IlvDTPLzCyqJY)_HR^PvQ|{s@Wlu*)5oe!E<3 z_0Y>cO(#Kr?D?wWgl1sl2BB;=amreo#InTAX#1DFG1+BZ?Ut3N{(O64P-rCYE+H65 za@i{P>XDW9ueJTxQCwgL%zrLc&_1oB9yZy9-T%^Tz#0Asp~WcJN_`n@E+#RdB&r(0 z9k@dYhk8sUKZIQ7?SyneX1V4tB3)xl%|v4ddaEzJ6y1o0v0YURyPz*x1yf(T$XWdA z+nY(gd)gu;->GP6SK7EcJa&yn!fCv?J)}14@d{#sPE;0D|17nU#xFslp}e%K71uZ~ zQY=^}UZsCmzd0SSMcC?1zEGl0iwdK-eED*FW@jsSS~N5?$lj4Ghe!FhcxXoyonm%^ zCWItT@Ytz#QRy*Xiq`SFp05I8HUXhRJys%|xLamQgWm4mlGxQrgsNvK1~Q8K#itV8 z3mM4X)UxtzN>JEWCmhr~EB83Ye7n3qV8Q!Wck2nSMcoJKHJm(R*Ivf<%sY8)l1}VR z1WDZ}b$(B?{0yzU6HPc>U1iWuUl7&nBA#32>7ZA^zbd^M(a9Y#aWK||kFc8u>`_Q4 zlC8(AF0_~DpE%IqUpy3F)Hb5Pege{x&*tRhgarkWuyJslDHUGYJaWM$C7%JXC(+BF zeq4yAdY{eDO9Qv@$sV%^E$$a_d`_oXMQ3qLzw|*QMD^WwT=(W(3@xG7<2`dxnp71ZCRG@@|=Ar2nM(H@|@&MBQZIYjmdAw+ED< zAD$0rw%l-b9!}V{p6SY2DfQYdU1^sj?N9yl2oLWuOlAvvUHys##*+7MMr}SGnTvn; zjRGe09X-yAqGDzi?YhWmkPHXg+>QK0xR>6)7K*-QgOvx8_hdrZkCM{8tvZ*hY9>*& z*g5c+M+p4b>STjQ6)7;Bzt1AS^WUZM?TqS8|CN;$?<2k^B-bc?rxYM=%5eokpPL}= z1MznE&~JvsAAbxip!2B-mCbh0!?;8tJ!@+y>SR5B4 zP)dLd7Pw<<3k;VHRR!BZ29Pad)i2Bpn51{^e3TaU>az_9Nn|c<{VIQAx>{w=G%uE} zF6b=7*=C?Wk!j$q`^o9+CmEaZ?8+-1f7*OVdR!vPrmwHrYpMCVKHK{m{FQXCr0)ii zNn%#qt5zaX_M|-b#_333pI-n_h!9?+KUuDH;K@x63ZbJ#a#Iu=ULcOdUeA1v>{BkZ z>>)JA!P4H*!SLlJT})5UU1U~UqFnh}2yJ9^$*%9}htR0eaJK1JoL*ye;bmS@*cQj^ zQ|^PplR>t>Pk88F6Zx>aHj5N!t3=>tWR6|n1!qvY{SG?02M^M=spW7Jb{q#6=rxxC zg9~!C?XJPXEEv?KPbq$1OfWB*Gu970GqNO;AZKik&nl40;tLsctlRypxE-&W|r_B=UyfiKC^A=OgL$kRh+IMw!Z&9 z&z9Kl_0&fXF}igEZlRA0`e`!=4d045TP5O+O3oVr6&SbX{iMQ;R^g32BdFf}xhTUz z|H}XU`}Z6i(w*esvxRUQkEfV?=->RfkH|e9oA~gk()6_Wl*Tg-jQfy2c#~hhq!S zw6P(su$InQ=GM@G2H(Ad6kd{NKsqLcCLXCamwJ&)l|UOtn@bnNwYmB!#=kHAbvpny zZV>QN%)&<`8*6gg9GRnmWygWeX>9}fTd;Bow^ZztIEl1VysGQjOAtvG>qb_Tgb+3^N*+t}u7NQno1_T$|6t9B%VIIeIa% zd%K&O`@%HSoPapddaQNGYD$9RC2*Sn|F0<1tE^_>cOU%MfHrKq-raWHfx`i1qnY^7 zLr}%j{@vY;p*7BkKF>u-Zuh*Do|3Px8~OKNFN?5=-ZV8~p(92E*k&-JcT!svIBe1Sz;)Gk|4S?_qoFVcT!&y}-Ldo9(=~WJ=FDKQ zeTL8koz7Q9yQVI(tOskPa=z5L=F?M=-xr4Vh3@QYll_`I9X2C836uAjkBtBbswK>zXyg4er2g5x~|$t z837c)e}|*AL*Ey&aG-pJPfuk%L8@_#K$wA$Cf|ZPKYo#z)0d*qVsS3~w3Fxk=VV!$ zB4fLco{lur)+tgP6BQ=Zx>xJfbQ0?o!7*}O=fA|rx{MyFh>!>M0N*5S|HGDkX)7{dg}JbV>4TdS#X+IHd{bxjT3g`tokP9 z^$1_(uRN$|MBup1kZ}~ZmiWmKeH|#nZuybY(RK{)jUE>dg(#ctBJo`wVB3ge0{ksC z1W{uMwCAZIACy=d{M)&|3>&}Koz*=sULJ0xK0>+u`ZZ%O(`r=ip$ez*qSzCyttFrB z#sEsBhwnfXGAB)D;2js9$mSdE{_Rk1yk?$RN6eldO#HE{{Yt6sV%{yPnfFw%FD@q& z)N4qnuaL@3FqfO?SxU%m+5@T)YhVcC!0^aNE>$|~rYBN_u47|6kdp~~i%)=G)V&hh zk$k17i%qn5H8ooh+90eT=4<3~=FKwn5&-ct;w!wne{O5z)s-BZ=};-n#B3tfX6nHS z;aj%8RkT@@eW2^10Y(Q*EpJ5mdLqbW2oQ2on9|N@mmKD8<(xISWyFZ z;kVRDvJ^dH$KlKNryUYy6WPcXTWvb6pqYJN3n+^;m`R`a_XhJd(P5TnQ~?Y>7rYFz z6-+<4I5!cEa9`Y^oblLMN0@Hg1hno`3~pOv&!v^t=bb;cjTq`6(iXTjf??#~K<6TFDVMstah@VQ>J8K zBOw#~_`qvp0blIRj@}+tl9KQ~F`FvQGnFwY5Wc_izS)$}*Mry>Uv}%e;}XrKCPnUu#JC%OTK^1c z#`BnMb1g2)hTr(^R*n4Dn*{M&p6En<^PjupCccMfZ9`sd#O!9vQTC%*7EfGND@1s= zS~X7C6F1ZzmM_T3q{pcW+q2^oWOvBaO3|O)U>K#rY(H+!$VU^+TfDH%JBngS4mjBpEF!UF#9t~hvw2cZM z&ze|R{V}n~B-A@2EIb2wK4~^|AxJZ}%u(xbVOeB1=;Ghj`tXp%os>)d-f?Paw_eg- zzZe#G|G_Va!n3FZzdw#ZO3v`+=H}Rqz(&Xy2!cPw*nN(WJU5n#<#%-9hkMtUHU^ol zdF+xiq0_V_PP>h#<=^%8?HRt#B6qKiUl zN(=ZzHV`i1KbT`SN?4|mnw>2RlDuckf(wb_?l{W+;gJX{OiI0$4MXw!JW=d5maP!) zB1rbI>v_`PXq!LZqoeFqQxiGTuJV46uRz+~;tQq2Oyhz2r0|~=N1ZOAZy^-~?wbpo z)&n1|D>K5|U_X2tm(Zb7m2HCK(zTyatjdX@NWNaO+ixnj*}PIc5sHdKvjYMQ*pM_M zq(^{RKos-)8N>Cz3Ih>__C7RG)vNHhIE#-2c&AGu)EQ906p$6C_Cznpn;jn#zc}Oj zEx`8LIMnWQPzOTSpoiI^oYeRDXkc`Np>{Cg+O33!t9&DeYs0^!7VL{&gVF)+0A^5c z2RN^O_(ufdM96zdRU+m~d&)9m0cr7r8FgvK?l&3A<{Z6h-8_#hmOPs)wf{L7O1+uy zLI(iDRCDmlAqfr=%Wy%8`Q%Ha;j$_!E=n~xZIQRP009J*nV)7&z~;ie@=+3u z9|YPz>{myUk}Q5?1c2j8Q&)}#QLJ6#Bd~jCyo64bYB0|^kI9DgNZ(^OssVs?fJP>} zLOvUPh!V>r1gdH+e6^PR@*x@U zX0a6QAOEV{$%eaAREUARDGRi;pzE|kkNmT4i--=A;G9Eh=TWcl<=1Aq6#yudq`iW7 znnA;!5tR?If^~cv(znR3;iCv-r@pU%TF>`zQ)X*G`lgT@;=rj)E(k<&q*VRM5a_F6 z`pgsejXppUBf5QE8H|MS{^9B!CyvDcjcg;Y8w{Rwn*kKN0(|;BCyvOA_=>)14L1nO zBq37Hr8VM$dyc@8ZcX{k_{xfJTg@YGT~p4|CQ+3e>-V?6?alvi{C!Ez&7S3i{M&(!Xm(NC3^CB$nna?Sz)5kr5zF; zF=VB`N6CfdB@ZAg`!VRX^^0N!GFp3|0IG=mzjsjw;t{84MJ|ILE#!`-`MJM`k_1^h zIsh^9N%q{aK;&Xm-xon^-6Xm>!~`rE8$!M=uNPF;!ho=iczA&ZxCL~^#$c5RJ?L#O zg8PZDsLnyko#~V5qXYobpVQ}th`KL2lpH}bg20xjCck!+B|l!1*(56KXhr1ihKiOd z2ak-|*S>F@N0aNnZBh1Vxl72a+|ee~wrDf{l+0Z|UPQ6o?9y6uJ5i96Zb8iS$^HkI zxIL4t8$Dy^N@&7UI7jsJxJ0!a_983QZeOuI7t^eeUeVmpy0!f{@(9uF{3o1=7Wych zb>{RmF$@4A5$yRew|4#Rn8(XIoLQ*qrkaLI!6vjyX`sceC+HU=(Gb2psjqk?h|r7)GWC)EBhW8NXYLKBTdl|7eb$HFX%+tSNr}{g`3m+UNU2)y7#9 z&Wcf|*oJE+CB1#u@7~94*Hm)UFgBo{kcJEJ^*@9_^a#w~zjx;j3)Jo3rq7Gw)}Ox> zCjKUceekEzzxQ0KG9DaI6Jzu!;4-V$g?0XlSI!f(}z-nsn#6roh_j7zhk?>stT^gB>-?_xDuuWo&Oa=X6fc zK^q6VR>M%yGs$!n$oEB9?O z6G!+z58avHb@^=@qb(dlz5B$Lm1!LE1%~#n|I9G*CLuo?b?3+CPtKL~cM*+z;!_Ko_^>Ba zkKmog)9wrKWT)@2J4pxlm0HD&`LpP8MuMT=S;-i|Z#nQk8i~H4aZUbN?gaH>uMa z`TkxtxclbcfAnz}ay4CtJZEGa4%Q)Ypj-#B-M~=z*J_VlV?EfZDL@c(4wJqWhXFXhY#=q0b{ZUYO50 z@Ch&Ac~l^AXGk<48y8oI6013!Xz*S!?)b{dB5Ytx{^k$IDI7f=dB8DZvTNkkRGRc; zY!GS3$TFMfu1Ovda;Mzm6+Q9ex`@PN@r+w?# z-tw`JRP<_ETIP>jum}6dbXed~k{AxwFGIuXIj2aWFGW90a0*hT5JwC!Kv4uI3i3so zAes^#MbL)^3iFcY zEKho3&Yp9T&D)Hxn#?l(vRs7O>9^LHscPh8?IH z#BM$U(ySB+F-)&R@$zH9^sw3hcQ%Ltly}>X%kmAOHJQK9+Di0SVNZV#pD@-xCeAcb z89Af^ihd=Ed zPgh-jL1$>ZWvQ@Jyk7F-4v)yz)$in%wLV@YFFsWt2~Y*s`wBWd3gr}r9i$L+y#;T6 zv6Y4CW^EDb;3h>*&U#k-DhK{i9Dl$r19H(q5-Eicp$DuTJ!Ap&c77jC=YV=G@{@jh zqF1eCr|%{1GNt{S6wo^xzkWu!G&-W}Oo%zJoW+E$o924yz>EY0Bo#LJeLlP)z1v`^_mRju0iIIhO~w3* zZjRS>c%SGj_Ga~!LWmQ6Z&sNO#wW#s38qx!3Xm+T89);26p^q#Nq zTB<7~;}PKyw;OuH5@{u`0{)cgto0R*LjA8U{7G_2CZQ2*pSp-gaVm+q0{OLEW#QK% zRk|d3v-T|t_J3phqnu!0{Dc0L84(_w8CM(1l%MEic>9@GXa0Uk#Bc#$QP9J0D&+!v zOuO;i{*ga+MG`bQC^mkm z%4HRZu-ncksEz9~Fs}d@>74wGJoIWKQ(q?YBt;}_bbbtT#FMdC& z2$yW)jjL2&jxYcxsScN3IDOh0pK}p4Tpqf5~HYAPO&(j12_r*$ zt~Srxft3{ps{~l^xb=*#wT8D)X5Bbda2k0FzjCFrRH!RQQ^pwB=jTRVd~zR6aeJVe z(2k=)bwiLhKHCALwbBKk$xINAUuMyM>?}aCBb@W_ z^)YodkJiF+#!j9jbY1$+Oy0agqfEhblo^PH(sZGZ!G$+?QF(^R19uZHRinc8_yw*tdRVwY@VyotO{mi%PC=A{zXb@uWrBRRQ;5+LSaUH=D^u$(*uC6X-X z&7N0*Jv73E0Fmn8uwV8e;|@cHKl6S4j08*KVY~MCL;dFtU1l{jjYZ6Y-c>(=DUo74 zuN+W1tiN32Q3Od+M_CR(NSC!gn1_ME?7%SPSw_RG|BXS=oOC|1OKz73shjypLPAK_ z?s^w?@^@vwzL^^Oqqyryfg`RKscM$C$6WZHXH001Y&#>S~i*?_uoHcBK zqS`li-Uek!#PeHUfgJNVXyICZQ)ZvSY>@*keJjpNhS~!IjIRD-tC*=xxZh;6lrt=Y z4>;Nxk@W(PB6!D}kU~J_+;4zsg;#_YqP+uPNRFHdiZVZ(!4W0Jpr3AMhXCM1Y~s%6Jr=Xfq`LSv%$g2 zxoxoB2p+-ebyx`D_JeA{5vofwEWdmODd^LsXq5OR`S8JBz*LTm{=OQ>df*Akj4&DJ zOI22pt0D;jK?*~5u@ct*H0gN9k@Hr!3bC>+Zi6PqmlftOcRNO~V%R-LM0`&|E24#% zjzSN2s(|quZc=NP>-}$gcKx8L7u^YbeFZRK&fD)n_dxy$mBIA%G~$!f1iaP6L>kEO z{ZPz#MUtN8-)%s(^(xh2qFf4UtT&8zjR-zK_n<3J^j}Fdl_XEZYu(iZ;B2%XpcmH|PwW=7}xw z;Dku2l?$56j7i9A`h`vf-%$9JOo-YUQQm{3YTOV~f-qBrWE|ud&2*6S=m96XRw~!b zd&7tUPBe}#3!ZRPh29E+N5Os%d+1kj*ld}9fS(n7DFbGN;Ie=4z?yQu*7xr_h`@(X zUKa7aG15sm%_46&{{9N_C^+{`wR9P(-E~0_F3yqDYt_--vP6F95Iwrq_kwAF*Z>Rc z5dHA3(^h!0a+HSmWYFN$st zZ&tG+rkq>H*DbJX#S6XT?zG5HI}JZgOu-V-xBvUo`0qlNY~u+Bk6eP*BZ%ctI{S|B zF36~jesT`{MGdl#xX}3gK*YC+^rK##0g4pLvE)0r_8}D&&+sex@j@8lz)zI+WnF|@ zzN@L>CO$PYx=_leuME))+Z996nV&2sWbhJ@rS&8BeeY0wN0~pQLqW?R|vkxFQM^bnpP?p=foVe1}@;sHiA)9i18Ppcd8Bq z3h16fqm+6db@oe(&pp@oX?j5RKeHxy9O963YoW580NWn1k4(Ot`tC*$EB*tvKiRk6 zXYhY%jsiY+lD3kH3 z(XjkjJ2RDds(*BLn!v~`JSK(}RNV-CW~Fa1D%_VChS#rv@w@*B%}Dz}RoeG~06|0HB)?zC7ybuamfgahavC*h1IsipTBR znC{Q!?N+Dn^$o=N`y7k?N{g{5p7{&4Up1I44p0(XI`Q? za#W)B5+0W0*4XX-_SrfMA4hU@YK8Z~yezJI@HfEYsc(SqfIzq_tE-5UJOU33zc>Wd zVTo~q16eeZt0XojeKVB-WhxVJ+kjrG@PTP$tgZuZAKTn5dPWo|?IPjJ>Nr88Lyg_g z7Vi67X^o-sTbW;F#>*F1intEgJ^u)fy0{DC0b}9YN_Ct4hoxs|vO_z6Ncok@g~vF2 z3k&*$pL2)mQ=s#Wn*qz?{o4Bxd$XLHLH(PcD<4O^G-Ngf?{MTd8?qV=K5!H7Teyg4>%bK*@kl^ngCG?kJG_Dq z8vMx}di7nXRNj%(lUH0c!?ni#h0MnnQ38a8Ykn6@n+83)yx)U6eHS$|9!0TiAMV;6 zrGOe+k6Z20X^iXHSn$bGOyE~Sf}%UTiB23A4$5R(zz7ns0Kh|5zhiZw273_tZIT%} zOnvWB|MomVoNXIDFZ|9Dj=ysI2;r=`;G%PuDewVUaUd?z?;lO8%l>`mzHm7t$I2YT zc)JjQVS3)DFuA(4zY~~7l%yX?7&ywk8AcNU3bDHO1fHRf32papNu*i|ho;l69WOu9 zT{Vg(>voe+P}9F^xnMKz$W$CpCWZP}~SdAig4RYw%k}Cb;>G z^>T_!&}~PEM47-ALkIw(U1MkP@iu4w^@b zre>D>MzvWM@6Www%#m~vZz3rj(t5YU`BJm4`bcH!K9{K>w+r$ALQASI@6;Br*C1e6G6miNLU?pa)01BDpGKil6$Rw_eVBeDdFuB;aefQ z$f7h%Ir52oLt7oEA_PeQ02o2+#eT?0##}k^Y&Dd^V+r<%%GBF?7hlV!{%{P#j+92x zgZ^)G%nEUbFf8xqD36`BFl1N&Rzwr|9~Z(ExXOL!$nCep3XQ%ZbSQ9v_zEhn`Rov+ z1H`x!w0Z{sQ&%3A8OZNjGUOtdc{&eTADH?Dfb{=`Shwikf_XI1`S)&*+V| z#?!C+z3_4Il3*JD$;WkP%t3L+VNk7SQ@JcNE@KiKJriiHCnTQ1g1W*RFfa;zFockazv_ae|D=%1GTaf_X`P<)T z<+LZKy*;kS498vGFX8-|jS-^8(dTaAWmxEGy_6gr)qEu&<1 zfW4IGGIcmTgF6@Zn1|0gf?F$~*A!sJS30*3MRe00O?_!^DcJ`LBGX9r5I7|^S2)c| z*^7&hQDoQDNXedGV1~u*)Aws9tuyO8e%DluoM{J|Xg}@m z5nzJ3R8993Q!ig7V%Z4yPChxJ@q1LR@1!&DT$8XZZwX(+__zS49~nAV&x`FYxb?vg)%Yc!FV@S z?G{Ag8GlQ>@dIqMWV)#W18r;eozoZj220pw>)4g~Jkqvx#NTuqM$4MSF3}NFUE1TT zEEYw&?sNZ`$&le|Pn@mE*E#nYODk96i z5Y&*v(CxlJoyaKu8t{zazCcd0%VVFlt%qV^m<%p*{DOn(p{hd-u489sJje<$el zeJ>Y+fhAK?j@TzOu5>yqEs-J$O@9UhDYZYeOeJF)+ApBTqJf3I{d3XN%$TX8mXN1C z?eXRU63C4N#3O@Ah}k%6)153tmo=rrig&t0z{N2TU`V%(xp`qciVgQec+>kMLHN*5 z4|j0yS*A~&ZLu7<<$;t7oPkH?uzp2e%{e5VKo!Z2n)RC={p4c;r<7BOlx;q2 z8VyK%f0&q6vkEV!7?_S~f1JQ-95aBbXh7&0lhB~Q_tMA2Covcamy$d>v8%@cC{iHn%lyL*NDAJ! zf1x@E0Q%TcXNjzC0EhwuYFRh~=5muO4l6VB4D=`|)dg*~7+_Zs6AYACv%5!FLh_-^ zA|KNLT**?K$Jr6LH54=A3Y4IPFN@zP^wB_kitd`BHx1Ze&wZoT1;&J*2aITfFStQD znq*&J*=SLGZ>FsV0_ra8LW1FIAOd!O3ost+rv4?}hf;{)iUPJvXN590x=WD^lFHJH zU!KIT#ifVT7!RY zRNM_Q%8LO&L7Q!xPeJPD&7199or{V>)C(H@HJ93NMeT)N55%_HB+d4qb5=2V#inoeX8dL^w(C>F2vijR+gXWPwR2foAf0ps2*iD2&-;nnC$PYb3?e?bo(pG z;*janixs(v+H3WeRctCmN~6F7FI2w$QP-yYvwPkJcOFBS{I7J}q6;{dZr*WbtzxbY zLM==yPpx?YIDgi0f!CZxHQ@FjX5fKAJ^orvJ<^t)RuN%vPv3&~5@nX`CgXXqnj(-Z zkuOm@32i>Uf7vUJ1ELE=N}Jy~kVWy(O1Rz66x`r{`P$3QlH6wO zc1|tn>vhG`HIW5`(Mlc_#-a$#zq`0eu9?H+T6Vfk(^M%#RQ{(9F7EX0IKG8yEq>w5D7a1`gl(^4?tZ|hk?i2FfMyK?AT&g3^YXSP? z1CHHPVK_@T5Jw@WhhIY(96F@WX&3YpD%FZ7_=u5fYnD%ECgg(q5?#JyKf$U@#c*nm zB0fewW8hR5EU2tAyCb2iLNz*KE?H+L_N(ZKpdWyPpv_heSzvjYpqJr ztehM(r2yv^j!FjBqZE|@}Su%YaIYL5*@kW6M(wWuYxyh;h z%r621gB6c~O->^pETo7Qu8$m}>vOrfwXMHHV`DE{>TAj=C={K_%E*ufATY1@-~y7) z3qH}vnR)R1jrFaxdCQYab$2m`yE~$5Bv5p(YqLsB4BBJSqi~> z27%iddBa`eV7*xDXyCDaXS)Eqb9KDW?N1Ubl8^Vnyn}JH{N9koG2&-DC5HXlbvZtc z=}Z8;K1xjbaRNi392d~ISx*uQA>_PQ20@PuB(&n?vl@SuJ+x=&Yr>DSMlmpq@?oG# zcp}F>9P6KOkdZrUe7We7+rvoWXC@b?hUgP zHZ+=tJwJsv{SNEV^vKtQ;XjZsd#f)G} z$boS%KXQ;aP`q=`ZRykTV2_=VRfGc#nBrUK5DkMT!17%Y$F7Rs-E8$v7hWinT(h<1 zj4|-U-TOT^F#Mi7ohi-pr6aUcp~Z`xD&kQHwqMZwXK(d;X~?@V+W)l94>FcgAlp8S zO77^FIS#};aF}POTJG?ARk(LA8Q3>VJe|r@N1Wm?6q;@9;qRMk<5rqIc3C+tM^mNq z7(e_Ijc0jZlY_wWn5?-0OqpKWj#R&!qqP2u>S!V3e__5y;1je*u;#<6@&(TQto{S0BYu%j|Gpcgz!*_wJr{$1~b6X` z!>TKhqrGACD6gG)cEn?)k;9?{o%#v2bH8BtT6>yG5c!iXLwPQ#TCK;G`@*^zjIW&M zmdhM!Um zb|+wRk&r{++iSHyBiI8Mrp{Zb#~3@DQ=R9AU4ArQ%iobB3C}k2z z!GZE+t5n73PL~|dtZF5DD&5uDn)I;dYhzb$`4M>qe|`9UMB|c^No4z74T^*^?*BAZ z1e@p@=asE?<>HNx_m3m992VRxhkjHFgU{;xLhP@@0ItD5hUYl%F0d8_oETvA@tTy0 z1?2a)?*(!(WT~ucP;-seOh|haPf?H{C-_cskN~I>9gc!=s#bv1;HQBHUJnU)b$y3} zx>ukTX@YbPDIeoCvzls^WRH!0e|*^n=dNJeeb{0A+}2Yy9^n4fSmT2)%RAgX%@<2` zi8nU;5M`G33FPLPCq2&(pa2v*QyMFOF=ncM{ltZd=z};a7IhB{*{2ufYmGzU>7SJE zd!4}txE{r=gu5YOU<&k(B%Nb8$krQeh{r95?|lC%>Lj_=N9R1_f?VbZDaj>>2q7hg zqEqS~9HQW4+ZyZx!-?|(#BFCbDzH02aXQ(90BB?pM4ZO+P4`(i+fiM5#C}=mwxak`?YET_D_pX&CK!scsU8LlxSSA4nj(MykVPRc(ahIIlmzM#$L2g1}j zEH_$7PVd|^mOJ%$*aZd;716`jp#DAVVLoKtwdYb{sYd>^5w=0`W?21L+4Rz3>;Fs$7Dl&OU>ds7|1G+ z!B$w+=;$XNEB#XQ4vDn@`~7@r9(sts9qH>)0iS!R^Vp>7F)Z&Zg=}>4p zd>7sPTHv|PK3 zFM%kL-q1K)R`ffO{wv_VkQw2%om&1Ty!aK+#Gqtes~*Mt^54`*q350%M~Y-~7{|4b zSnwI9{XS_wYs`;2v1R6%eN|S1y`7b#4Wfu1+T7jE#~j!3BcWnU0#b!@D^{9$fPeNo zBuD`srE;(;j_q_sVTDJwL+k-Yb!+VGrCwTw7bYNx{sp(!+ttj<{+FuNvr5}`F{4h+{c zM=n%!g^Kl|Z>DkqQaba)e)u{fXkp#iO+Pl730P>-4>S>qnd21y;gv(E4c&5R4zki7 za3b|}$NIB%xhp55Wg*GMDF&%3p;itdSZn$LsW$#g?qpAP|952YGh|ZPQzPKDRZrKf zY2X3>MbQt5{Cl_mmFeYI7_~7oK;2lZ{Imc3TSMiYd#=9%Sc4d>UTi|8r40g-`P-G(y+;Dx_1TPKKVZ>^efEpRZIDrUa(FkK_dY&Ws3o_24b~4cfE709G5(J~Tf6 zI*=>YEg32m$?E+Z_p09zO;s#Ixamg`UYD5Lx9vk#n_+>>DkN$f+7ULy zsQgU_i_XFR2v#5QwX5K50sJ?}#3{e#V5gDy^t#o2$&Wemcxj0if^&NGFrtotafOVB z9`6(ZM!oJOXEL+-PAKY(x5=ky}_kRD-I4$T)=3cBJYT7<|v)K{BV zma*^n_un`E;Y)?1b{O(ABW%J)74jAzzd+bZ%WO+f`MvP6+=KS0CvHW{*44mu?AZzo zBB%`k!KG9h8v$T+3!lWO%iziKGbd++GfWBeuLHj5|Lrdi8-|2OF^iC z4d3G?mKfQ~3g|VU;18(NfQ4)%@D|_F@}r2iuDYlhgf>8A%4Er)&FR%?x04d(FsXcd zM-SR1sF8U#x}&5eR0=;@r>oUqJ54m#8h4Qk%`gDYL+V?Oj*gQcX`%42oo;gVN#%lkMo-T{Jy znXydAB*`NxDv$41bw2oedF|J>A=9nV7If6V$gf%rdq0ULy{fnGK~U%BC8X;`x?pNn zm`pZq+k-WPlv=Hql9|V^zg!s{#)9S`;Qd_b`Am1s^gF5Nl8@chz}?mTq8n2u?euqQ zYoMlsSZo25CXfn{)V;?0ZRpLpqVF%bA|?!wKyHMvn!f`>Z=1myx{9A5U+OqBz_*+I zW$oC9;f!6xLK*6%iojp2sr}l#3SVD(?HM5>bf^De>$?M~Zr`|bvZXjgp*nF$W;ThA znVFGfgzP;-Ws{0Z_6{c@Wk&W)Mky<0ixk-_A{p=XJv`6T?|t9rkDgV|_k8dBzV7S# zT%XV9k{@B4&N_M)_UZAiYZMR*}htvBOY>o5# zM=k(PkZ(X&`%)JO>*cOL^};IMr&ue$ha9!Z_=AdN;5B#)`iT9<%ub-F(Vgs3A2MU0 zkIe?aa#1xXdk9ESXb8o-qyDoWD^gtMXY{`vqAEBZq-DowWe`mO=2`So;-pBRR0@pFDp1j7? zYqIm?Eu>{KdxD7DW3;{5z!!Y}d$N&1l8Dn)ZtrVR_jhz4b(<=zJBfPlQ+GQ)E{-XF znr;=+N|9P&y6|m7DVRhIEl|{8fIWGP%|3&Wcp3~XEB&+GnxzxwuVa}4TQVWh@C}5t z_NWZf#McP@Z5K@8fvfP$7J(1ft>{;l!xrRj49_^FcfBFw<;PxMLpNfLSPr1+`xU%{#U-6Sn z5Y;zdn%a=2)P=As%_e!r>P6=P_VXKE;TZsnzrJ{*ZF?hE*t;2A8Q&Za=koya_QgPW z#f>j6#`_37sK8zTx)W`+e0}g~y8Z=XmA(blfZ(mHPrIsR90pzq>UklE23WZ9GUy31 zp^cM_z@SgzI*XJ-H)Tg_QZ9_gHA%9&p!)9~avgt7`EG07Uf=h!##B$b*T&l2-qu)1 z^?+9)JopCKSq{vjFq9{3*4@C=SJkm^xYY4BKHZB%xZDp=kLFv)&bpJ|thHk9D$sne ztzLQS`Y7hD=1lfNHR2|@!kv^U&D~}JN{b#F&(KmDa?Wd3!d>_f7{y9_?p{D>01xe; zGCp|gRb}o&ePMGIPtVfdQF{VK%r%$-hZdF5hB2A)7w~|eHPe}GypG|kk=aA&qEH=< z5*FS8!Tlp|PUU=`8`G{RE8u4%Ap|JQ3)F-*^Tx_KRU-LV=@(%&t38H_qzw@BdaE*2 zbR;M0n+x4WGdeR3P)S_S*Z zVx>OtZrn|Tb?C@bHHrpotC3Ln_#{4%c0cKXGut%z-0b;6UaI_r^E|{?SeGuCF4xES zb%Sl-78k<#yUKIMx}D|eTD-B>b6{6Cd83kK#sJ)_5h#QaE}B4Sov4u+5N6GF2+Bwb zp#qBrJ;$p)OHDnV+00h;2o+0V2C+-qBXwq94)#gq`z-7@Ae;!LvTL+Am`W7^0N9nw zYs_nfm$x&E#>?>(oa3cqpnngwvP{R<`b6k7AG>n^UCq23c0wM*tBx$rwAzjA$bXEd z0##IzSi558g;KxxpWTR87sd<)j_qP`3paoDTeJ0$9&Wja2ls!!m8U1(J(0VIg{Hkz z?eB>`kLItu=HrVL>E54-K^DkYIhk(P(%>soFJErMMLM>nw4?%euv$>J+J8fsv zn%RC$_p;tCd+Bec!bzbrs@mF74_PEWmY$?LW6GSVMH`5I;%x`w-W{H+<(gR0#iY-T>)icD9I>nBgYbD8Fdr=%{>|Mnw! z=~I6gA^kC3!6GP(BBAgH2zKSS9_@;PU5mD>s-bY*;QzkoBTZAN0F{^Fk>|jDPe1Ll zzG(Uz3`p3a^Tn>jnzZ-|5qva0um4UoRcamG$%7WND1CHE>+bG*4cJ1;isj<8Ej7dl z|0uNDs@KOJz{ndrf4Sq?wA_c(%vcVZLW$gyec|B|Q^yN#w*x|(r_h|VLj{mSr6wjP za|5f2!jJaC?vBCL>q4Y)7|#%dWcw}-VgV4&nr!RDx57LXDpatmpht?CoB(7}uVl-QGP?%QdduPP|ZPE=BbUn!l!0xq2^UrGI~?`*v3S!i85J zeZf~jvIDux@=CV`GYS|PWE%ZVOWuJ`?wvYgYa4p5W=iuWBZ>H*aV?|oS;rkwEQmyg zP+A9bBY~j;WR79)`KlLXr+}kT&y`=jtkP9*lTWYd=WLbtERbwJmN}asuBJ?|m*ceh`d8O&+TFg5F;Z<;bE+nRr zV^5CpG2bfZ^YxKsqvdB|WI1!)jQ_DPQY6VE3NJ*SMQiF&WdEKs%iD9=Z#v>l*+O2oKW9@R0%-@w_U?S?D$XV|{LPbf5N->)S+|zJ~ zO!?a3mAThM_oy8Di<;mRJ6Ty;N|csa-KCiO21zn2)0vkr7&#G0K}+Lt0Te<{<&6T- z`Lc|pec#7K{(ol zT9}h3Un{-LzHC?71ZdJA;$M!SDHu&dT>OjQOA_kXioiOVXod9B)82ar40bC`w#F`o zt9!s4i1P5sGkoq;wh>$izJ>*2cXyV2eHFK`A>#j7R z6Vb;{=u=;CuI7=jlw{J8(8n@0fLJI7@1uvL zNF0)Q(1>`KP)-nj!PTIca&r}&`DT`Lj888eKl62*K=I5yiL||PjjDRMo%Ne{e^|gX zP%$okau+;8Jf@1%7*8J*KnMX^YrOR(3_dZRC+GP1WrYdVDe?9oN0;}(3XpFvv zRDx#reb(y+!jUtue~UB}VY*@1hTJ<283qc&XF;w19g{J&Q3&LvibGH%+Dm>Bt7ba$ zwHZO<#U7w1O-7W;_QPo%wgd2>wyk}p8>)OKw{C0tch;> zB=z)Ak5?Ot25vz^5&e}L7mfd08o1%#Li`K;{@tQ0z*5DLsDMPRoLAEfMt8$B6C3pd z|B0Y5qc-r#EK*YLV4NXK3qFL!9s>~m@*MZVRiRwH|MM{L830?=pkHnKMXx)jl}07d z@C37tvj2~gEzlV}CwzsX<$=GA6%e3J_9CuEpZS`F3kC1UF3fRWVx><%Nyia`cQ|YZ z5$3H-w9FNP_QG+n^zhclA{Yb-GaU8aaE)>8ZgD&ENwVS%p)9~oqT=E>kXEVd-M20A zmMY<&gihQ~B>P$UDrUseL)c`G@{H^m*f>_~F& z)$3tb{eF*wF5uV~tgGnWZfI1)oVMcaMxO23QyjoY^4)_|ZMm@ZTA}~wn49u~@MFg= zR zK5kq@a7`+rvk*Xco}YfpLCfZogg9WI<0|yu@w2D42tWAp^_!2DqJBDhte0zNX~F)0 zqi%M@*!b-f&xS*<`OL5PMO!V*SH&3rqsw6MC@>y+i9u|E9E)j>5WMxbzSDH_Hg;#_y6HGQfcXo*m-DNyQqxK4IS%koy28zKqZop?cs0PLT1@ zINon(;`_zV=Ou31>YaMp?tH`1l32BH_AYOu&aQL}R;{rnfRr~`K`2B!{nY5EfKWYR z6=KSWw?N{KI~4lmVJA$XCMq`un`ECx+=NQ!Gz39gT{*`Ag&e4u8(=t1(|5TZ%cXWbGY! zi225d!$I+@e!ucZ^k7tAopZ?;5?+FlWxvKVM4wd;g1eqlgnBWKf zZ4aQZD16cG(IYxU@z{6vz1(dxMDbFGV!Y}Sh|B|oE|P47{AMln5eazVoi>30Oz3;q zL=gXjX%fD9Iye64@GGdOb>PZ*Iw+p^nR}Ou_kSI>Rb%FP3ak2Hzlr!g6;xw^Zfn)k zDiu4k#Q@J;9c5t>7RSoNcM$>Y90(+Cq+$Rvl;iVo6-e-)PrXXv3WG1Nve!q~<|px; zWtJoIZD(C9W)PUAS7#fg2?XMnseK>_zY69{Bw@`)cEm%46V1@MH0 z=k@gu$wYK7-=1+bn%BGaOs6dgAv%5>Ji9Ju8KW#2O zz%dj4SlDyLE)sjfs7tQ0%!U$73VqlLE#9H^%UzxYR1B?D4Zf-THz(cZ9_n_U`pS_Bk zE60P4S3>5OUqKm`y@>LP$Pwel%z*71%K%d|od`KykF0{_W#n~QIn z(X|sVfsuXWeN95aZvw}TMj{X=gSN6KR!uA#l5KLeb*p^wrCkhKxQM4*#n^rBX{mUa zhYI_8_HZ`v{T)KDQCtdI@FZWfDLHok6J+6!AcSSKVL|~Xj{*4{pbL2K$dc~7omGqJ9e;%o}lMOaxEm{`Gvh}XUe!>=g z3Jz;QkQpSMLj)+3bemSn%E|&_zvpQKfz}?fU6W}723nz$Q7ob3EwZ}ZqmNGj-mj?H z9&u7mw)PPnp>vkbrm3TY-T0hmC{_UsN_I9jwzJgT_fL_mH-3!nZpG8!aBP&oE_TFC zUV06@dm@s+a)yM8Z`lq~o`Tsj%C|DBbsPOp$pnhih@qG)dZBrx3~o!tHC|0^rG<*e0Rg=v!qLRz59@CT8HDwDZKT$j~!lWG$d@wzn zUut_`N$MTP*S@2f=H%iUqwCMPem~;JjlCJR?%6mtMisHXSfpk<^6;j^k2VG=+4@^3 zK==1ICPv+huRZr|&FWKOj8Sg!YJufrkmBH0~9w-rkt`rW0h^l2iY1O#AnI&|;6Jx2+E2$z=KJTJy0RL*Vfj1)d#%EphAL zYq-fA^BaZDPpvbO{$gZxRpeD3KaRDm>Xm)7HoNH=H!hSbH(pF)8=}E|f0fnprfZ{n z2au*TV4LrW*e6kkJ`500V_Bqq#AnY28R7jwrf~240ndcpX+Q@V#n*ELaE$af&+Kd5~hJEXZ?xfHPJ@lD3CY9mem*!Qz00Xm%Hlkd2Gm-6Gxw!gp^WCNSI z>%K&2TVkc)h878^ZBMy;x%DH|Piyx;EHZYMG%Y~$)4Uh3Ro*LCUGMCefk*~oF)YpPl0k2jSzf$&@V!HyIKOfJeGCPE z2cJ2(G09zn3$4g|&FNihYZRYRB|Zpum0Vc(L2#&?C=&UN89V705aNKqhsH+vqk$IS?TGp$RI9BZWi->c=?l;Ib zf!gTx+2=)quSPEAQT2s*6ZzUqgZqM`PDCRJwpi94?L+PXCt8en1Fz6{t{?he%!Mcr zRE0-veb_WbF0+p61>UuaJVPeG_jv0N95U0>8;)4j`E6x@WZn3L+tcPN(^MJdZeKi4 z_ub&Yu|D&?o)|r-Zg8r&QSs@u3S>qlAsfcwlMwI1)qzdlVI*xjNsgp3h`e^g!mS*^ zI1o{p3;#DC%n< zfDeB;dZg|i2~)B{Lxw=HGLm%!^b#Xt0)%{U_j8T+4InkI4bV6;cYq0#;IC*_f&Ey% z`Od3fPT?9vO}PGAH9ow)Ok0Dscoy-<8(J9L5dj{lDnNy{8I|Ky=;;30A@PHyztHqH zE$5ThtGjoFHMxyTBf?3d<4}u$2Cl@@ODhc}s3%*VqXS>N5JvAPK)71Pep_BM&rOXC zHG4TTFr(~5RYgh(92U{woI9^TwDT&*sg;#>u0s4fRfN%bQM-S<0FHR7DJYGOabStI}>lU4-|yPR>QTfb^(o`y$Yj*g7I{?^hWlc z@cbh_Y%;7YlI;Q$5qd%y?&v!Y(OKk($8BIAd4vS3=)AFWEQX?>?g?V!Ad5M*|}N^F=IhE3Ooj{-rjTuc#@!&rn6=5S+YV^g&D6z#&bfA0(~SuAhM3W+ zcwz*@rM3o|%_dKwaJv&rc6N;O@3=la*G07e`Fsdm5WHAp_k|WKIsChm!4n$~#Q)|n zhwGu$AtLfkskGz_7}J9;5M!1RCfT2bI%i@z#E%E2xZ59(1DyTnAd}ix6Oa^u6(yX@ zkcY^Lye#mVmVtzs7W`~kgUWT_tF+T~p2**5T!i~mA&vD*t#1|ddd?O+T_F!7CGSg7 zXqZLq9zo^N1}c8xq6@hOB`OwkQL=-l~ ztLy~=*f!IQHb4w^)rK2sQjUlx(V$NMT$&bKL!6=;$JsPl=})&KHP0;LB#3C2ife(< z@bRVjg+I)AMPfU+yS4TQ$3x(DB-%3n5k$oo0UVN!BQ~a{C*cZ7T`p%DX0u;YaHtN? z?LWm+K`UU)^(Ye8n{T90$5}#h{A$Ss;D$AFunrqy-}C$akv(0<{FrYpdC6LlQ};1| z`2XC|R}pbn^J_2yQU-?#L=*z%o}u z3zRjgx2gS!+63KzHe!DTO!PqDW>~;nB!ici`vf#?LKMD1fi2IeT48{H1EP$qY!K4i zePIKzE22U#zdYLaoNH;g<)O{#)e;#Q0GBI2Mfrs&Qt-JnFdlyS>usW?Xi(bWb)}si zb@q3RoO?V1!o7okiQ0Z%ilE?q)8${DqL?~e#$&HAz2_XD#h40$h9fZ5?h6F3$js6g z_dAr;`1jo9Mn#E^lX(n2>@tBij{>eYtyjmVGJhNpUQ1Xow|0piecEENAmR#aZ;Q5+ zucFtVURx02gf+oFQ7ntV$5!6K4YpOwOEtxRWeBzjB((oYz~D%#>8cCI!ZcJl8FO ze?rXJZ2tV??&lJ}?|jX$hzarv9neZ@YPoUhvhgE$%&2Fe7~eFPlp)8U^h3m(*4q8< z+$wmGb}=9tp`@W=>u{S&<9~RWgxgH~3Lf^g?vJ-vaNqh$r&sCze0HR+F6j=buzWfI zrWP?F!F(ROFdU5}5bzt@Q-QsRX-3^9r54=I{*26E1T)zjF@8z3)zL&+ncZ84GWBWRsX`+q!Xd&=vO6`8u(Fsh#GCPhod;lGtPW1-&Geg#kV{8{vx5p?Ol$|u z;U&qzql$}B@7~cghXJrpZ%|`{11cYwk%9gF`j8(66sZ?ykNe8vWl%{RJLw0XH(zO^ zw4#qErH(4ky+l>fgls3USp<6EtGl8A)^(*3{qxod`GZS7a)R^P0d#mXV8!MKj!+bb zIk~y%d`;xplw=3lG-VI(;k@98*&D&jT# z;xhNqb2kg$E8=bt>e}7lgt%;ALdV9&*7sj)1oFjx>yG2*SMD7= zW&x~sD4q!Hw|^dmjLHJK{x#hgXjk1q`=c&WMx0rth(Rp%34tcS8~K_GLtWRAE-cO& z54s(1Hy}^wgYxe2xmzEb2cEa8qw0Q}6+jok)V%^?mZPf5_h6(1ulGQ0IR6H9Xr7;m z*HmWn*`l6*=-s=YU*Cn2@>)5w@vLqzTD_s`(&5N<2?1OK3uho2lAzsXad`%H!Te(} z#QtBD%6o0st7I%4O+TvGft+#pCIu=~rX1!CA?Fgyqw-6`f#XCY+RD zBTSo{&6!>lMEOyMhKQE-^hfV#V}_e+I|-6tk`ULQ(r;V$k0)#Ei9KEI?`!Jme+9M_g4;t2JeZjIM! zkaJ_w-!Gnq4l%6-gUm;v(p{lrbd#T+M~58|V4V5p2NEn+ulCq>eMs3H7u55=$)1T z+P@ka$htQs)azTPjL&qzAPS#uHEdQrYyh_dYV2;`p3rjA9@iwbfM|$_8LJ-}55knqt z2_d!^ShIR?HJcaQhS5~J?|=}bD0%R?Y0!c#1&_r6;QFZ7EzDR6^DYrXnrY7EkMOPa zKoI-QEx;Hbe70aAbGwad`6#GpTvNJC?n1mm4qrN3y;0p{`E?x#U#5XzQ_@n+xeAJo z0m$CX%gaJXN))QX^`0H7D`{THD>YmZVO)g)(9x+bndvmLGEx*4TXb5T|Gm+z;a4It-a z+&aTxYxz7@F)1$AHvRntdq;KM2?{0@IX1o?%mp1`u7^`6q!gteK79C&y7ua??TW<* zFk+uPIh{<*`;xeNABD3HoTx&TSgu5n+GlDoW{gz4kw(X zY_?`}cvfEapK&G8Y0({buig4(IARaIa3?R=hq@JRmW-IyNbzLUMJ+%&R8 zv}6Za-g*qZ@c09>3=^mCz>^MIVBcNl5@pCvooPAYKRcs_WEo}(s0<&B+F$nrkkX*p zUJ63f!8-psaPMw8^|4^)9S!Cybv%wjBWRBwXQqk-sk0|mAmcXE!<`;l4Za1rm3eu* zd!FIyaxEsbge?3AYfo1WiKODgy}9A)0+S}^>%D^j+cNuK_$ExY^&H(M}Yj3X%j zAPcrORt(uhouvHO0g-<&h=eK^)J!D$DIV$A!kbHGH?}?2!D4&c)I0@|A!Jj^uCt z2PZ+<*BDq2>f+%`tpMb|1Vg}PyB?lvcDKck7^Zu4)nQsfbE7CLO4z-_zn5}${BFB+ zi9F)%rR;SEF7NuoSFW0Rq1dC;_1SG+a^rsrU7t`hAp^4*_2<|$Qo6s-)ZGBolf&32 zr7mA(na|yHF+0FRaY3ub%VRA?ePk;7B(6cSiCE<(x_VdHO~Z^B3pC%tGeW5Oh60&y zA*9h2#$b2fPokpvh)q;u;N!xhjk7&?AKMZ4QTeu_%-LUAm-k!$SoitfsLZ@Icf)hc ze~IDPMgDm6V^;DPMuAEG=w?8$qAoB)CJ#hBo#4htaczi62nluP}rN!@>P zCM19cuA|{TyIt_6bsYezaJG4lm?xKiXpCP1n)_J(j>6QLK(s=aIWm$HHgp5@<>hZm z^#hKN&BlSWN392z}!WbF%8 zwQ^V?QF`@UyZN~N1%}A#5BIO@D=I2B9=ZaYT6^$?X$*fuM0pC22^DG=e}g#U9Ol-2 z1v*!Hrwa~$k(uC_5M*@S)Kd-G3e+MHXvOsp?zB^9zU~+(p1xUU` zr-~H6lPKZkjnDERA+VOQ56Y~t<5B}Usmgf}aG^O_x4<~D{HzDu5^gxcIy!}EXR7oA zWk&r_Ll+G>JtwXB?GD0Td`)84o9~F&z#HBiYov%DGtxNIX(o5=LsHGJp1WJM?VD3W zNxE4UU$>JbV-8~kZZ?wwUQzYJ(m|!*F0s& zW)V9l{#{hEz(Ai7qm`%jPSf*EWfNu*dbO3$v{*ejw@{#67*v`|-C~d#1)~Cmz9jX( zDkmJ~I7#J=h54CZ;0Wy7t=5s6I#UZ_ya2w`F!1__eSfd)5MW-($bKm({_1PZLl3W%8j= zdm-2s>V+|hu)1L_Ux@pxyU71)yGX^44_W$==Klp)OpdM7a(`W<`vSkid|qy233;RN zCr$adYXS0JUT4Qe-6V{NRlcL%I3Sn2D&FV!a?cYvva}|sEFB>hE&BfA0QFVGT%hh& zT{j?%&H@YM#D^in=A?r3ZeQRK$%=c$+KJ+HMsU}*NlZ+vaITLEp>UA!8QSnG`ciuQ z_qO6x;$hXn3@RqQ%#TmVL^yF~^((8Q<}GVP=#-26_9rY!lym^|H~YcQBAI`sAk`P# zI(k4&xL>s2siq)B2o%HKXw;u%(|9IBi7WDK3)=k&T!+>1&Pon4HeCAgS}@T z82_@OIiD0Aqzr}|j~=YW#4Ctebbf{88P@UVJ*CQk(L+S`i+j@a-EW81udn;w423rO zR<^5zC<;sIKR_PCS$)h9ib69g&Z@E^XIOKE0D&a-w;o)bvKX#ymEGsoi|4o8M@D1R z%^=tM1%mkGBHx_n?nOHb6t%I5I1D3lr~*xq&RaxUK&n~()e1MioR{Z5pvZ)F&&=0( zHm8nQ)p!?nQ3G8*y5-1PNzaB2%h;KOKXv;;=S5l%S6;pFmdyHgAr<`vczj#r@yBkR zzqyF#&KWzVt`Yt@-)Qj9+r89m_h!e22539Ycs(2dUm$>N%#{U~`;KST7V`p>-mCmM z=+w`&aJCEz6ua!08R$`z&_q&aJRk)AQLKVyg*W&o_*ixVJIaC4_~w(T5lto(2^^wy zyml@!^MoFE4HQS7kj|iT-*Mfc6?YrUFgj;`yKUPe*_$aoI1!#w1D> zv3=|Ay=$)-epo|b==^y=mDfn{yYEYxS#o-7e6W}u@`c`3&y0KmO;A6yQ-_FPhgkq* z5dPtHA2+hxNs;gnHDEJc4r|@swt| zjh_QR7NMs*GnDD)-x65ef+`_Nu_`@KOF#X-p(|Hl&$HR0F+O>UFgb6Q_72A$tM@q}bX$v6;Z zC~c7Le7$#K12$MbQmD^?VjXi^KH=hi#J$P_h}aRDDCm)Qh^9g%HUO@kcHl$ZE}C|T zoL(Nkc!P+t=td86$wkRugESMlti=W(#wL+MPYE&!s>+pehZ{IF{X4No`oP6j5 zd6GoY^EhrsudI&A6=~^5DtLLH$EUo28sEfL2xtF_-TNIIXxaVRc`J-MN#SyV6U(QI zAZ0;RoNbqWw5JTqX5IyN!!@IUmQi~lF?ym~U&Q?%gbfysIL5`|8jPp4d-?Lym|C5N zDytq@8Ki0S^#Aa#<$u{#rF-j2{?l_vAZva@dI#JgOzLVOH)*>|&1{9(Ua_mj!APE_ z=sZj;SSAgxBA{@VHuL|+XQx1jq59#+rC5TT5}+N$Ss{~tW&@1-`(V=dENGxxAxhtw z$F7{Dh*6qEJX>-202Is>e+A0^!AB>~r#ezeWhhSNIbeOrW$-%WGeum;zQ!F#8CALq zNUi3+TD*VFXQ5_o_C9w$oeoQ^>rNi z_=nNCOu_q6We0n45HFK1r{kJc8@G~owuc9j^f@v#a>ey5q1fqHMq?e`=J+GZ52Jv^ zB)(c(!x}_5tup=slMNtga_cO8)~%x)92Xx?PM3fy=%D)$2nEXB(0BT+)15Bm8HiLt z3hD@>b9*4Akw3=q?Z2KW+@~}oq|{6nz*}-PoT~Z^4ql97$MtFo_wa;4A7IyHefmKS zlBC)BzI>PngAdkS73}v)&eMC@pbk9F&imTZp9W7LSQjprVlrtKSS^;7Sub>-DpGgf zb~290_yXJ7zVZ=dDD;8dMX8-qhg(T=38hv>b{HS-6e$5u!Sy#lh{{6!^6*FXp3Oqib@ZYaMlBg}@}a z@$}VRMd5rFcYW3mpSl%DC}K4C$;&u3-{Zd4Fan3FXnuqW1;+LX|AXHWyHUbSnHHn# zpk#RkE(rtA()?Pf#~!PhrhPksd6JT|q6~F^UpU>=v5QH!4qef(W0E~9JGBNtu9ySzM-h@Y|Li!wK=s(> z^NUy`Q0WSMw6CP)N5u?=#0x2$2k45ASjT$_kcVHE;ho(bh_Bk!6{#-CTeFR)|Ja#K z5~1B}wNA6o@5iFIHYdcS`Jc)gk2BE+=GJEg3G=@pW|yE$KRj?2=4EoZ$35zN)Hv|> zv8E|NK{swScBrrVmeBLk2VdnmR08A$G!yvz`i6s^;d;&@Fz7jp-n`ubANUByTs&c@QZBS%iqDnGeBJrrNtR@ME)>4k?hRp zMplD(DF$DBUKs@ZfkIHc4Z;a?_}Xyi$wDyiU-twKV@nMEU1zT(9raAQ8iR4={hDg~ z*>UL!cscQh(790zrRmgz!E@*p?D!%)wxorG2F3h4FoApIvi1^LtZ`@Ss>vm3rL zYd7_`bnGvcICNTuiVBH{eEyt|l!$o{Fp-WCSlj*av2<$?F;)-OYIz4Fz8(I`5xPT+rkD*I!_hX!ZS9f)X`KbWH{V0WLHZAG=QX4mlE#5`l zF*RfUpEMaoWMr*hVi(JO{YA_Wq%wsQZONxzzkT2w0{LJO%sSXOn2?(41es`U$I{s+ zY0R0HS48`OT-i8&hMx0D?ZRLg|AqUvq;BF@R;*Jzbe{-XHM5haDDDdkrs))swVc$Y zI4QDacmwgDbYhQ*tudVO3XIxV(>PRMC&`5R4GN;jG@AEF9U)5@!>QHas}Fp_u*{4M zdN+QDySR0bY^}f6uH)pkkzu^ie(vXokexA>BWIpa-JrawDKAV!H^EnV%T^ZPWqV*n zmjQabZeW=^Z3FMtRGa9D$q&RBIggjWbF5tQWGY1O#)UPb$fN z!)VGsD2;$D3o^AH%` z|LsUhp3V~cE0;JlL}Jgfw|NFmQNBvgw>JXajOW)oj2!Z$p(yIJ?YbY=Y=-4CRumtn zh$Eu_B#5QAR=OR=Z+Ndvnu71%#Yd|s>q%4L9c>oaBwQBq928VTq`S6)Y7T>?Z6v`EHz5Z;g=0PLr#Z#;R~jt9fmb8@qP_(-I0ImZ zY@T~>sXGOdk@98sBh4KWKfP2G|ARy+5t;Gp$9jmefU_vT&RoQ%vwrRrU~5uRd8b;C z=!nDP1c}waz<=n*QV|H7v*^A4C;h=;bOJ%H_os-6^N1u6jz1X{`o#sHuoLYm_E00d zf@c_nZ|@o^1al+DW`nzoki7zfsAGK2Ub+$65|)dS!X2LN7smU>DkFjzrY^hNEDA{tHaV z20(o|{AA|Sb8|TJ{H4s%O;W~>7$s43qVr`Zg~UkbI#p9<211%+Z}XX3IZ#dpwcI=5 zH>sklmL@$64i>uK9|73bgS1`YESExZrU#(hgX)e=&xix7PCtdNA!3k!w=lgrF1~!# z$O?c0rwgE&VcZ3S_U!le~aA-*D%M41d?T)E@>$ z{sCU$w3n@akYn?4nJTfMcrq0QYgxl0i%_ZG-=lj#UI6-&(<}IJ7KyP|R~W+7y5imj zv^_JpvGTzIg!8-aGzEiEF5*OHlo%0lqn`A?XGK0!8dcd23E1JX9!U2cprP>FA#&(J zvgV+x!Y9Uy?ukCXs4KG~Qn@5wFbBs^)< zoZXu2Wcw=;j~U<+B@chfTVSnhPyc|H^8WR3MnK`k&v(Z$kp~j7)oI5B|AX!$j7DGO zp89jqGOg(p;e?LS!}T0CMM3ttRcA|0yMytWpW89}hUP6%i-~6ZZNKN&jhMU2-8wBl zs2vCdns+~JOq+$eom%yOwq{@~Y|X7Ik2aBBJtS3y6)l6dY|>6ad?ltkTZ?VxW99<{ zpFpYv>oi}_$nds<|6L?Vn7{=hPId??pSZN*(h5D6p&POFt5Ls;QA*%Kw%&~rf*0&ErpL!b9c`R|hr&=%4zx@JgeJEFwp+C$w1vFpjT-6$FxiD8Wb-Zi~Un|SC!A-_1^ATb)Yo?79l?O`~U^KHxpdf zCNdBd!N-@*A5nxjBfv`&8W1`}nu|UG&Q$VF4-yF)<^Lj(K5l%Qejh$7*R!%VYF52B zUMHxljzl{5TiwH{#={s*R@V+*Hp1;lt_~m7S*=H)LzaWD2$=(9KKXtVh?onIlZWd9 z5=h{{1dfp>BnVpGcN{9Gb@_Wea2PYx`K>99Hg4Muz{->IOR)CI-~~Lj@e%Ct5`oO9 zuO8()M681Sqp|NBA=Qn5mg^=95{v{mG@r@_S6eLOA$#ewhu zDwQt$jY%U;9WE1z)&ro(8Jdq(m$ej&dO20q3sr>g!I|Cy4Moys7I_$&hvED{Na~ch z0RD@bb{EovK0g_euQD<;)nn>oQ?C(;iVwKZAQcciNYm*E!+LqBm8m{c+o2fmhlTyO ztWbv#2SRc^s1nCBReBRX-T^xICmoLM?68odC(bN^qcX#b0&|hP7{I`@S;5YHnuD5>Q`^G^D>F;XmbJ zU>io61QPD}Uid{gRON~W@)py1@&0M8i%@xE=#riPB;Cx2%03)k$&ZAqDS&hEBDv`O&{_WVoJm1EJSE z2&vS!!5@&CCPY}O#f}3=?& zj7!}08*2<@`AJ9{f(aRrsMC?lcZp-Ke@4 z&u27%B#ZVjtFNMx1m(e;uo;v=quSN;BXuJnqRoRlNEaHuWe5HL&0z?eqKk&}@{1U$ z#rpkO*Cv;+d_6etnKe$1`1m8bKtW{KD*&^Q1W1a&Dw*&~|>@N?;*DW%-6lj58_1E5o zAu2!#{uN)h*;KtCmSkMz>G>4hMc;4sf2rYpVZZo39CJ(6Ta zArsy%p@9;_@d=?jEL8uz_=q_rbhf?^>f1#E<_)&GpW)csz&0-g+6<$gwZmT~IIvS1 zvvEL(b@=`^GXDlbZGq_2tK-L}%S?oR>17pFU;@|mh=g?`63o+qWEPoi9p?(>_8%$1 zg82htDV3x5GMy@J@^eo7!c<6xf+^e!5e3L_=&J#Zpb-1fb6GzOQqJ#H$GHFc*6`|= zI2Rw7Y&J}P&iPT9j|ql`Y|HmE;Jp5>JL*#kt0wDnjq|sWECHN5}jP5Kka1B37kzG>!`vWH&Zd2I@+6cr_c12rPQKVn-mMx!-_=>OBF| z4<>>b8hg|RdKem14#OYYIw8v*fEZTP_5-F~V4u~$zD+g;dx4Ih0$>!1{!^L{Jes|If1b>o#zuNXKrgASm(KK>}b1s@(6fABpa zW|$#1)OymAE6DJ2fFdC{%tBh{>V3}bd&t7n5^TmhOPsTmkfh>0 z%I_e0zzUvvS}T1>o`b_M!DGnFrI;gOSPR|RO^aACBCV|6{jtMGgslD#Th|?rb^HBu zM+s%55Fw-NS!Ca2Wn@*zOwqEkvPUVSj70V(K(8AeU){}!BG|Hiz|=O!x^*WYS$!8hSu4%R1!;)){l~Gm%|wZu zEo<<odLYv<^!?o}N1 z{8sk6`Z4UOY>;H6GZAY zNkO=nIc}s(cL9ZrIj~h7hCYx-1H|LP#9pBw_mhnE`yqLKAcR&y?e_LcWwhnu3ki^R z34tu`1Kp&D3oDi>sccf52p)|rUhEkhb-q`u?UCtL} z(u~w3=!y^BWhoHC;BUkpwt#I=aC=a`?F%qebwR4~ zwrSW=n1~o7_SY_i`YyC)0C;x=K)UR9i!TB1ef_Fp4BJ~6cR*Okw(;-~N(i=ef#O|Y ziCT4TFb9CKgFElzEN%%UoQ9*A?VLp*&bKkav*IDDWzRUL(xz{#s>O!`FyL{x z8N$|OFEqvoU?Ndmy8yD*i&^?2s1KnUDNs|6#)fT7S$WXDrUH6mKHxc3aIj438A1b) z3P15qHapoM=-XpAbW&7kkSFvhi_UL)bW}6Q7J1^%bJ1u*`Nz4JD}S#bY|=iqjPEeL z>?RszMqF_ry#yj{wB@6WtHZ!{HAcIJ!2R0OdzjFXukkaz_JY=sRPnUy4s#uv>`sy+ z)|MPlkXnDto^j=QbfBQwXX?Jo^p5>_EW3ecSUMGmF=Tl=?aeQle)psJ`yh4mQNnQxwrm@ zZ79Cv#-!k#WBG8bbT}svXCw0}fU`b;)VSRI)XgQ%SOHF$WcQ@Nn4ni={BZ11T+^wc_0}?3X{aM5S}v)W!Z0tG{?K#g3z`GVDy4r#7c9^1g=3SRsv@5eZq)SO zP&-m=OENRzdl;v7rvii9P%hEXsjF_8*Pni z^Q4IseztZx%3Ntmw5r}Ja*9BoGok2}s_?A+6|IhzPy@}5laRU$-xUvGRg_^p3mb8# zWJVdN76pizaQ=lg)X4Wumn>4_c}P zC+|L>uRzOICDU;nj0Yw#EU)Xq#cq)2zz(DX_G*nW0H=2>$C@+nDHRCTJN`Ph8FdNJ zC@v$80OH|h(d-Eo`3~9H$*?!-{cpe#-9>9{ zPuMHMYo*Xvv_R=e=_aJ>2%+R%oIXUCqCIH$a zMos}-T(g@8$GBtt=|K{$erHQ5ZMhz)E@m=ii1^h_9SOX+kVC;}B`UQS_oFm{QaI1l z&6M$^M)2*KZf&fgOWtU!Im+8}wILu9a$s_DbyefA4)vo$061I~dk}ZAS?&`$oUuN} zcoZ@><;OUsWJJauQUm2h1U1S|Z@vgefYo zzkU10G*tofA(!ElES;q44Lr5@yBpJ`OtYcW%K z6pv#2h{}l)Pb#*={%2JwBn9APan?Mz(?h!;hR>+2ySS z3ZrAxJ>nORwgOMHr^Rv-)Kp=-Mv~LDA9s=Y%HeHEL<1pSxi;g(TgjbGTdiGBw$E|g z^1g{b!E~?9d3kb7b&p$H-^lQ%@Vy2p#09`nAS&UCG&2cRxfY#+J9uG<3J{C0k3O?p zEjf!uc~BDHwMrkjcP5(XyC2(L>JHXjVJp&?6b-Md(hU{@U)zi0jb8Xx&o6T)da&l6w z(sAPlB+s9LuWD>nv6fN}IpK8DRmj<1f>Zm&!hs4O6nAVVgq%H zQ{BbQ>&sKO&_IDna0@wQ8m;m^g|?JKEsb$+K8#6ehgqj6Ctb6FHsmD@(s(wPqx-$C z9-hUpeqek2S&9HRUmiG-(iDwSdlyl{<4cPNMFrI41~dnFRXu>`@I7V6juL!w)a#5) z??i~$rT}%*pcM#t;qIE!2TRg|Kb!J@pVDsv@$s*u)T^Bw5XzElK|tngno(};;;j3I znCRR^r~P5NzH!l1XpnyCelqDrWn5s@H$7f-xb4a5oa?gj zWQ5_!^2Wf^Tj}cP3_4B>tgB(f#SI`D^R-9@`lOu5qW9Rm-F89Ax%wT=v!Fi-iwW^+ zcv8ciPFSN+cUd;00er3x4%xjgU5Fuq+zbLnRK7mKCjt&D91;enD46+Q~=KY*R)wp$gGIElb9Z(@HqM zCeE6Z(tHJjYt#~tc~-3;W|pLe^SyW?Tr&L~;LfC?8WDQf$ia-57hOjp4y&ohbhnB)TG&kqJef36Ym3XeEEv# z19TaqX2y_cOeOlz=Ry!2(lLynG3@&k#yO&NnbM5G{9p+dlHN)1j>$)Cor;ZVF)icI zY98xaE-?Jofb7w-qNnU=miglth~g|GPS?J{RbjaZ)h(G1*JIppmAWjlE#_(QFAw`dqr#hi=TTKUMeBdL^js7}ExdqqbtXxy#7PusQ6 zbZ-QVm`45Vln@HQQSv1qq)mVP0b!=Zz76z9mFq3pu3h&<6Z^P9q<0I#^?v*2gb7}q zS5@Jes$NtaUlcecy z!;i1Hw=;Q7igPsOC6&Avj5I2$I>LJ|MX6x4%(1V-j?I)Yv09$GvE#y90JtB&N`2~u zVk|!=wm2X{0yn{u40P!dQ(45jN=5}?q=z1OuhM$QH8}xaQ~yf~Aa{L7z`D=l-m_Xl zSw-wAfBSnCFrAEtP^Lp0=C)sj)H)w3dhLF^g0@i99v-X&P)a z2w+%}Yz_+Kt78rA2t~s(T6sYw z)`gm90liSJmfW$(0cik7!{>)~$ zZaV1(2uSo}yI{OoJ8Ze060ic#FtGW^YAISNg{Cb>$6Xf%?j&&twTR7g8pV7tnQ3eZZM8%EpiVv2k(T)k;>=xPC`Xw} zf?5FO{dWTAJ5T)me6_HZ8_ud;M1Y_6)+WpVMdyw*#idaR5;D6QaWlX@+fA)Xr%NVO zA{pu3S1+%KnbJq&8@z_FW_0+pX>k8>SM?N=*mTbokIg{_n8aLI9I}hZ6L~+5r09Ib z>{X@&0FYu>Mc@E>WXlNh-m;Y?Mdwk`p@uK5XpmA*`-NB4zzxx74}{CCnTmimjNGAy zzTE^0_=fry&K@B+``V%lywi}*P){NMf&F7_x;tR5<8fFB-B-Ly6KU6-Uz~k|uQZpD zORKa{>bhp5RaFfRK{yPjTE1wUnX1TEPX9LOF$=CYCegXfd3=}cIO*RBOyTQjUfEG8 z_wHC9m{oo+>Z_cbsmrfmhGq1}a99X~MRD71f)gWcn{6MnyX6fx=D%Y3fx}RC@r!+= zlKbe2X4ns{$i1dvgso2XQFl9A(F&N(gE|j!-*lZh_(%~hc{u%>isw{ zd3$rF$YVZobtOl-|kOEL{L?sZxnvm??JOT2I-vPic>wW{lgP{?%iuS>EWB zKEH)q+Y_sMRfY-;`fYXu7&v^iBS1F6UKnZlc?X86ay9Uv;S0^msx)JOr;zD+U5tX} z^+sGW1xL7nLnLP=3>ABVvG}9}!M1dl7e#T`tDjp*9Kb;D+Q;R%T6~B(fmgU!)p+NE z{h)^0EMnz=HscD!=3FRZo*3`*U`e@h4x6qOHg=3o^@c9=;|>KH43`9f_P!+KU>)Oa zu#~tncg|yFaWPUrWk~xbQ`^xUD`__RwXg+8n0v%bzZ%@$d-4kZaR53W#gdhvE*DD#)(@YS^c@bb@)g7jqlVF4QE{(5fQ+Z# z=>bz~pYWf=r!c^J5!E!Jd5p~g?xzS8)3yMlyQ3CTOuG44wI3=$I~s|_nP4RcMDD;> zyn68aukp}OnN(ux$Xa2jrm!cXN4~sO9AE~p8Ng2Bg*uUp&{2BY^)L_2{GZ!QDj%u8GSe1{!BQehXaQoGrlXKpNp~?Pl`6ucem<$ zAs~BQC5MVAH|EBB)B>qa^Nf4jNEN3hwe>AI?Y!`v$@a@&nED!m;U&O+kZ2P6Vja{+ z@p_cx@sc$yzydZfapK|HuZ`L96mXhWIKr+1c|#y9daly(qJFy0(#kk&>I(Pt0}Da! zi_Co^Nh;mY1t|bLP5%x*fU&4I)?*X4{2^m(#^rSvoLE-9a;BzLG-3`fp@A*Y+4Ft% zpXBT^rFyzQfJG$|94<)OY!jM*I4$h$?Y9usA`>J`y$UN?ReRmC%lq#V=WfN#REFFQ z-2o)5U211dt#7i+vh<7alvLst;;?~S3ocdqkEEpK)G0y&m!nf=-Za~A0M+coakmX;4 z%$U!>Q~j0q%5$|Lml|@i4|>MXTXvyV*@_=}$^?>Cp3^3fV^mDDGa|q=7m}6LA7SiT?}ZJz57rsqhH@=Z zduJ88tag#)-$*4SQctw_XACLa4wCpbD6zddxC}FVS}amdyfJhdK9m8)NLuM-G->H) zhr#PKxg$(mdkIu-9(5Vrwm7g_Ss|KqN2SrMxgpH~Ve@ull=JKs{<2&QCp-_Mw)COb zs|OjeOxyJ|66d(kNjTvua0H!%ov8h>L1O*WpwJw%{uL)!`^9AB{X?ydBO>obl z77M_bD1CVtSmZVf=veNua$lfrK4|gexN0td4qZr-0v(mF1qLrY2n(OQ&zK~yV@hmI z*E-=cS3|W{SaV}`FT4j_-5=bJA(h&Eh1k$3xz-GBi;u_d+}xtiG$-SzP4paup6!r7 zj$sTX`}bVN@fAw~%^4`ir_S_UxL~7(_l@Xv!%PoRXhKaq2oC4&)Q{daL5XR^NSFpX zZ!^A+Ht}+rxPl5)k=MV4ONg;Xgjg zQyGH?XoWtbK3#F8;ERrqR5b?S0|a!RLI1@RIVICU6Phf|%@_Rc%cFS)Qt??&<>Z%^ zY~}MHb+!E#6=*{xBL4fqpr<2y7Td;x4DleK*h(m>sR^6LJ*&y~q(7prs~Dy;*_Lgz zd4R>wC9CTaa915h_=BZMvq|Vq2fvK;;&a8pryq_7Zv|=<$hrPpWsE}jnB5GEa>zz4 z%Qotw?t${q_1Dnq;VJcwYfU^xW{KBwe3>*@-HF;%L?a8ue=$<}a+uof66b4~_~S&G&>Yk{2g{I>gC5u%tmn!UMCg!{ub8VLbHgUG`71 z;`!F6$NGYB80;3+b9Qg#+N6qt9((%A@haSMhmWEdP}Uh+$@-<{} z2o$enXa?#*-RQPO6f^s^J7H<@o0jo|hk&2!K~Gr!h;e|17tLepp!FYp@z$mxgg(ti z+w)Z624~zt^D!`vOmmUHEyY8vUTSAkKRoZ}F8@`5-7fXqDC=Hs<%kBaXOxzD(Yr+5=k5;v+dF9UG{l0=;{c8+H3|`p&3W zxk~JP8k)qo_6#Jc?<^~~9JDRvBe^lrN^*|L+>|UQA@QVxGyDh0)2-i7BfA{-(NO?y z9dr+2R;V)KAC5o2tr{!ZB3uRsL>DN$UE^(|)rCkw(c6rZ$)gpG?#=I5!ekiQdCLa= zU~PE1@DWoEKEPx;BTpJ}_s$Mg(CwSHTqrbpy@L3x4uEuzvhZW=mpTKv%4lj!D23KA z*=83^Ww(GAgm@tX8}1*&`V*ZWk|1KF>DTe=fuDH;NHnP>=659e$Z z2i{z*)OO=y^~3cIfb&d=`y19dvJ=e-QF|c|03cSq<0OSuGeJ<9d?GLyovDX1lmTF( z=bRG*g-V~#9j-ZhPqX-dDapQk_HrK7ZvPd;0lU=3>MoyOp9M_B+EfUWH_tl#frbXg z@j}k#8i#WRBb3#HM*a18yg(ckluQV(NA}`A{Bk>6y*FfD=?nIc&vf90n#znV9pY*% zx_t$BK~ZDMhqy)X(THyt%10{Njue*A(lp4_-O{htY_1U@*iKt~4^%Z9yD4a*@|P2J zqDolcI;Gv#+pHCUu)7yIvYy62Sx@Am>vP|*xNYw@h@Lj?mB9aC=?DS49Dk9;4ivan zH{nP3vYO@aLoPw}@LY0>1QGezLLs}jZ*m1ksrJ&LIt>VuD(_B;CLK6pEq~E;b}NTY zo@EJtFHo7O_!0&1z1|$E2#E0I#4{yUZzUk8hDl%V+g1SaSWP*VIL}QK(U{>d)yYrG z_v}a!t&q938!6qH0zB5Wy)hx1dp!sK6bL{UB*fd@m6ye6Q<>Y{cyp zh{#6O$aihdsdp5{)55JB!$0pnh;)Ex3zTmvvm+EFx#@h$zA&vK@PRL;)+8LfZj}@Q z8QtV7*!RUJ+!6Fpa@ifkOvTQ*hC87WvbvO^VbWgYEg9ND9aV(cU!57C^!^l*v?~Gf zkqusxPPJVpq)3kc9ljWiyr44yEw?qxS|Z3a^ic1k6*nLXP&3pN`gF~w0tZTa8(@Xs zEsetro~hpQuH-K5IyY0=hA(#c5XpahkV&MSalQ-2#p{+X1ey&=ya@?}u?nX6jUwkc zz5(59cr@Y%xbuG&HqvF4e?&d7K}ULUeQg8A-HntugYx&$Ist6 z`6~1ciaS*2zS-R?hsBf?!ql%MlZ-^^dJN2=8W*orF5KvBeeiD zU@J}HVRPyZLf4Rf4&r9#c9F`8uc+1b zC2+k|z?n_iJJ%6Oi^@qsW~8S}LXZaoVn)Tm{-6r*tI@m6K<$gN*h(XPL3R|yPU2u4 zu=ul|>FtSg9#5B)wFwhCOfC03k^T^5Nv{OMH0?t&)EHBaxIIe>V6w9-nsyUGeE#eg?k*hBRjA;1z@J>WLmFYSWr z)A)rb^;z#+2S?T6bBjvVDJngONahX)DaM+`MJJ-68T? z{V7LkV%5QNfTP5sgRJ)MJDrG)LA*gAJ4l2_4gos!>99_S=NX=F!PXpwwZNHtM%7VL(RK zV;$>da2`EI3*~uw%m=6-a|DO}?>(Gyts-F~xrW(! z0pNzG`urbt3Xw_g|sVn+JSXQ5L=* zO~643iOVeGqC^e>M9DlTapzo@M{&($LkQ<@Cq5!f1@7pBHkO8wl8uZ@r^;gxHAh0| ziTu^qh{`iqY5*%i1m=nhy9L#+zX7M*ZW{u1%9KM_#WDvOSTvxIO7$|aiIFIxq12Fr zDoJwuAse@c7r4EzUu?Qx)_n;!M2M&&CbipLAmU%jmTd(2MD>Ay9Z1(+5%OR%2+hLW zgZ0)3oYlua_sRLv$=9{YwjJbozs}GENBl*jLIE`hcD$xH)F15G0s5GEVLh;=Ty^(t zhK~rlEqoE~LN0tfbnIzoc#qb4l%Qy^p80RCGTgL@1|uI&nt!#z2|R`JUM}O^2dk>6B^ux34nBw|dKp_e0?{Vfd?XqEPfyq1b09K!bBZ#@Z0F zeK)`(c218`cm+#WShy5Kt;;Yc!soornT^V^lxUS?`d`|{U*Qm)T+dKV>exCeh^aY& zmG}Fe_XBnHuv|p5tJk>V4z2$*$i_zCpASg{0oAdoOc(=P$;Af!;_qRCGZe>X6I$qQ2haYG&;Z{qWc-btmY(1)?r0}6h!^E6vS5=)}_hp^9I(R8S`6i zK0vS_WS7CLvD(F&ua#qYKW-JbKKm;k!AC+Sm5qVE(5Z6Z9=8c9R+9S$!fJ24J(7kV z=WBc=xrr(|9P1t4yg#gVCM1gKb6p5P97G2gE{F)b#KB-^;y&l_;QxR8F)v_t$zK0D z3FJ}mVFIoKHBj=NTBQ9HA9!l`QHXoQ?Ds*;ODr9F#6Bkicz))m>Xdi{vdG+M%H%`v zv5P=8Pnrz0_&Y5`d(bzk3UrDuK_`WbFw>U2b_1OEoe)ls-!&g_d8eQL=JNhiQ2g_g ziKa35_@gc10^lyv-tu=Shytf@?nFOAgcd95Uaf)N55?yGRpMd#rJzHdg{X1=hv@KUWbqO@`Xo3P7X^JUcamX zMC7!1j3{m`{ICBBM(EGlz8pxJn2y0|#d5ym1X?x*aPvtMUmO4XHvT+>d2&dH85j@4 z%aA1?4E1H>6+;-Mzd^$J9EQicf3aoI68z8Cs^gTHo$yXwZ>6TD(y|J<(t$b+%fAnH zr)W3o@g22?(|mdXFo;Z9zwUT7Nf0?8E$CAo0|YM!8CUJffE=s9Z4Sp01-!O+NBQX5 z6Wb6>Z2NrUtD}m^-$*T5edu(MuCG{0} z#)tDkzf?wmG(+`|>z}0j+j0bbzwva+<%HdM6kbdKVnLw?Pm}<_5j{`uwmaG9eO4lI z2BuygP(k(UD^NMrd}vo9)xV1IpHC1hACUPFXLgy%Ln_{L&oA>I2G%#9*Ij%iI%vy< zwG)1398jABMTol1I|lC?@Zb}u@!1MBNIuY^yCp32yvu^fD1}`xcYb7`S7PJeI!D~s zBr*Luo3E%r9%E|s68dWA*WXH`({2;&SN3I6yP3RHTYudc~SNP07Y+k?a{9f0?S&0H4*B@`mi0a3LL$7xtvgVpxIz6*gU zNA+d^M$ScA7Z4bk_{$(Gz;c*hg-~HyN!KDPhNzjHrh?*pM9fA~0Fdb6IEA?K$AM17 zhNV!odlL=;O!)r)nN`~)mozdt*cuHK*wz>s!#HaM&YS*eRJEb+>a4a;Zt+%-Gg8-!`>|u2C1XdTAGnKL1tn z;r20OBtBuVVoKf@9dbo|JOU-~nX3h*+!^}k+BVEX`#W&Il%S4DCdxmA%f-(!T7$1= z>D+r-3&;*HzBtd$3DzPR3@e~sj5aKJ;|7hzpOmb};QW@DvMPllbLS2)j91M+ zxun_u4hTcSoM4$1ICbg_9z|id%|rHvw_S!aH^F$RWWtB)Bw2)mW-U?cHc(1C-jPa8 z9=>sONlSR;5J}RdcxdV5gGY4533p18q=aC2+9ekGNh$eTAPD%5xpp`Cn;ulW22R6a z6^ua;W1}h-%itmL7|T2SzYH+sg6A&3s}c*3XuYZrHY{B=*xQm{`SzrN$4iKSmxWAm zZaHAd1v?L?(*(;%q-7)^6`!jC*9FW;uSsjw3N#c_DmWQUVEzsdpLA{8_P1-X%mk{VWuX6HZ|h;7mD6RU zEK2I9Si&)pfDl>CD=Dh&rP{$sdHtE^VbkXg>%9fYhza?4@w(4Ftorgx0r}4Xg4HB+ zh5C28^PzA%kOrSsKS)KE*ws&k5k8$EQgZc2|&zcEJI!TwkPGF_`vKN zeZPzvuRsYb=C$>-yeS2=nu{R36LXq>{t4SJb+yNL2RP1yX6&|afiZUrsNfFq&{X?w z>C1V>yAx_JtLFWi##3O=v|P2Dw20(@p|g;wdc*#;wOvoZUvItW1Xmvi$I3w8 z0R~BP)K?&;Z>(quosxzkD=qQx%OFc>dXKcex>aky6Qb@aBO}~T{m3NxP9UOPl}fN> z$XlvTaD0$v75WysAGD?PJVi3`_Lr|gSdCiDhtF(8cqEW!QgXR38NCs_$+46;d9?Rh zpZwoG-?)e#%!1*l)djVO@FfgO$k1~^6?_VHn7vD3k~k!f*|z2bp|7tl%Db1pHSojF z1xQZ#5-=o@l0@Da;L_PGgiTddvVZc#>^ZL~?M3h=N`T@z0|$HJ;;lDP7!JS}$;~wq ze~dYDM3TRR?#I_J2k1V*L2eFBTOMl0LW}$XNNKy51+UegbUQ}a`r7T4CcW20-Eke{ z$sAn{K3ZCQa?;Tl@v)L4B}nJor?ldy;Z z>5yx)&<{b;YV(6jtVT9WX0#u!d8SFxcaeMgc958i1#WKEk5n)5Z(uc8&1`%l*^Y#n zx%n;2`Oye|Z>IaAME?lP*Ge|F*p(oTl+-)}F6QRLmHUfSrXIcw3-@@72DswR4tdnRzMO~0ozqCe^0eERbTrbfAn#Ed zJQuc$Sj8kAwS00$^v2aJo;g(lv6G;6YQXS-tn-6xbm`3qTi z<xv2M7&tY#UO!n2p33AX!M7MmxMotP{R--pLx{LZSF$OlB7x$J0~y*p()ZtKo~!&x7f{>8FIDY&R&4 z|9SWDWe%}ed={Aa7T3dvp~!JfPN>dWxN`!7zemA1NMczLdJblZVYMN&G8FeiUOa+7 zHNcm*>$tKPUFV`6V?3S-oS!|dj~Tvxomn0_CK|yjG6#q0wfK4JBr}rH0w;!~5FPm| z+D~;PSx9}peZAgTynoFlalt)%A8z^mzH#gY{PEosjj3RvK&W`$)OzV&6(4Q_CoPYZ zIN4Jj8|J6SHPMPSp2hcO+4J?{7komJGhP56nU%W(7}^AF`{)N4u=TO@AJhOkS=($( zoI@b>+|JG#{mV+euklh+x8y&w%|ZBF{PtXvp0tnu%KNJpZ~~92U+;Va4tB0i9a$dYDc&91O zy-D|a>iRLjt98&BEyL?PvpZ@XQSpO>xJRbh-yFYf2Px%wVD|5>HohAVBeAc# zNt*mAYJfFg&^EZBX#5=#vzf7iKolvecA@9(Iid+SV|Um$|9i#kecr33gNd6`+k;Xm z;?-n*JKHlml0A0KsvUDMso?m=C)*KG=Y{oG?+#>q37&;E&Ygx7qmAgwwdj)|Gh56s zg5l4GWvAiMx#{j=vAV)_XbzYlQf@y4%44vG58N+tI{sFT{(IjZkmy}`pg>i(vksV z65Cpk+Ob`SQL=GJ!fk&10f;27-U;g1U$L0XyHv^wIzQ#g6_?6zCPs4U2ia~@w{F1D zpSsosap*ZU8Ep?6EtgKO69_DpUG^Mx>Sv9OA?N zzBvy!5J8{a41dkXW7TJ|hSxpkL)VLk|9$`@>7Jg|!Skgez^)0WL#>eJ!V%+7B zb>4t{tfLJn`YbpLExMk9Jx$xY?6)sObc zJq34wYl4j3z=9nE+LRh_D`XC@Qj0m5!|xy_0hT zgEULz!t{%Ze9+b>eYzImOWGyZz*Pq-<7SxI@%Rf}H>RgS7QX6rjAu}GL3i*CzF!~w z@0bk(RX(Y?Pus?SGPCBg;><^3`3!G^(*xw%%uOs`P4f1(%C9@%)Bf6D^djuv%ive! zeJ8^x8CD4nBM009Sa}YidmJstdNUn3-S2tw%6k$#zur8NC-A3R6l5WzRM8Lrb+do2 z2@R`ff67}lkyToP&pP@~SZ90Y87xbqAouTw^!xABZM+B-!J|d|)-bG?7#KF7HGlXP z{hvGb3iSrT^Z)+J1U1YOo?p?c@^T5_USz1*pN{-;C*+~y5(}^B z2muR<;je|GRDWL!UpEA~2VK4synnv_?;qCL85tYZPKU$V|M?f8@{k~$Jd=0~_nE&x z<@eFbmhI^&>r^ZM>CeSG^TOtF;k@=gFUeSk2*!AFfEv84bp_VrRlk5EKKp;KSFgkH z@UJJnX*&P=U;e%_LX!JcmUO$HRNx_~jf%pe zGBf{mr+g{|@Miz~*$KOcdibM60U;G%%ATo;* zwZB;c8nNhtWiVb+j0e-DW)$ms9R~wW0_BOatru)jZZsyzjln-#I$LlaEn4opmG@&C zBD+1f!zgf`GSK^1+F%?(2*`2%88v1$azQ1wf3ES8F1(;H1+^~t^#&OX|HEqFWrl9A z2JM^Xl%l0$9a92*CX;`wqYz#!3xa#fD{>Z)XMSp!zu9r z?}JS+ORpJBlA6I1xWgo~P5)mnBdw$gL8Kl*kP>cOn0c}NXQ7Y?;vMt5EYx434Dlq9 zOb48V)`NCdgAf794hkwE^S8)wiHQZMy55WBGj6;{bj&W9NWt1Fx|Jujk!QZ)Bei+C z6B@b&J>wp(XxEomH>(QgJ8QoNocOQn;9w!c^8?CaDm1Q5cjWsDEcEU>r*i&zDDMog ziY7&syBE=)m16tF`qs{^uMP$^M_!AIOi_t!8V;QM^fcRbnDYi$T(Lh*JpCi$N=eMY zJRVsjcYzeLJk+9aone3Kc8R= zjMAPii1DKm=fT77*MB!oBlyh1|BbnS8?HI6s0zySc$4A)HfT?qyz70ha!`Y(WHjld zWp~ko5l}go7kGS2OZ>W86ZI0Mm|!QU*_uVpEdLyEwbXZQ5W;U+1kx}==3B{Asb8l` z?>w5=SuFG?0N{S8$~sII+}`qiTH*I)@SVrVP@G|%sep^1K8}I0&DUF-!O=GryoK$@ zme3jmDWISE4!Ap%(tW*CEt=*8=#)u?$ko1Q`=Onq2>dS7)&~*pi|MIxv7yymCFG z@}}dt$+FR;hnieH{2tqzDI-IBd5Ze)QX1Ve08`^waD^|K6biUYwx&W6fT3KnAdc2? zU@3edW%l3ed5Zn~!?9KOnrX`nK*|`3djy$=zjwcv=03u+p*K&Td;mAmaRSm26F_>bU%boonHE;6&+WYK{}MDSj`&-!myr!<+&R%n~u+R$!&e) zUyuv!ez6^4@%zJn?ijuZjFWm&$9(ubCoB8kksekpkr(-y+gdBo(cR@Wz#PmQFbDXp z(BvWv!H%EmgY@hOeNZgor8EJbuL+oxO-XVOqi|n;%ok$cY1Ih6#CKC3041fCSxMYy zF_HIYE56|4U-tX3{gqG<5LM@fuQf$DQ6*yI+-L7G*p=ETs2%FI`NUm*sg;@Z?8!^# zu7Hz3hXp#-KvvZ<#cdni{i5s1QFLE_g_JEyBv-gp;p*fJ+L&gLn#7B{ zCdNkd^v9=BDp zlK@>Cm-Phgj73#3bXwBFiPg&{;)8B`o!k1m--#3}*Fjo#3;~!FoP~PG#is=9pQGVT zoehxMYL=R^=6bsur4j`*KvPr-cuRPcXSI?F%vNsrXTRY>BaMJkS#Q~xW&l9Hz5_zq zdV~gnZF_DmC`3o;>h|VZPuv9KUym6c6SgvwPhD%}) z{+r;9Mnms03YV-xm>$@d1keqMm>2oGtXfeO^wvtxGtzG=>@o&nD7(?!qzb%neVen( zHqgf$1E-a*cPVoQ;o+*nm|%@dd1k7I=~wHtD>OYif~_hSo0Rhlgf3YQf(7Qs&LXH2 z?Ydf_5El@WyjCAW>1Tnvpx;XnpOBKhfsL^d4w)hDZ*u6nxmjkxb08(6T-a<^AZZb* zcQ+(Pc9V)X$dosrRE|UimhJ8ZTk!k>B!!XhM$>aU*xkvXcIMS{c(%Z6^1U4vQp9vm z!*$+WyG~=z%1WPymXsYh>put684=>McG?CRK4UyDXB3zPZA&#b<>>H2B`=t5K0 z?;*2_bYnXuS>)Uxz1RM<5S>xPS(DR&C6cgbjH!rS0buzuO)c$y~gdP=+C5DZluIq&k_*H``XnXWr)*S-TfTZ5CBj9B4XbhLd8g%NI zr?paYfwM!oQ~CKC0sV`DEie*QC6!oI?*v?Sd1C>D@u{o+G*K>EbxlFNuUkaUoFE&B zV4E|%wHRYIdP(Tyo#`I6wuaYV3{YO1z=Wo7tN75_C_dGEWP0+P=-BfE5)Uh5b{ZMB zG?rTiuzp6>^9()QcsAhbo4h)nwF#y(E)J`AiFp+HneXGU+CPC2-yfH6qF|Nz0@b-r zX0@Htw7CCnOh#aG*e`CZ>%u!|RO`o|?dt&;E*?l&Ux*7Lzvi1Axq^v_``0=Lb z;3L7Nna%o{=dMq`_g*x5;J#RpSx+m9Mh~>bHCOv!X}Ost?J~QT?g%}p&Jw<(fR?wI z7ooK4n6gpby4zrY@PX28;qh5GOq&ZUmNL0=+;G`KjU@c$uP}~&XyEnQTIrLjnGe&z zXIYm6as~V=8JPVLl z7z!eItv_u3b2%D}+xxcx-RmWxII3I51WU!sfDO&%GizQ4l3pVF(=PQABH-0#7TA7{ z;Lo?9#ou$r7={6N%=aOr${Fr*&){JYmkkSDGD|xd3QH}Mn@r0a6&_>IfmEK8>K`yP zQ7wkrnMZHOsz`4XofiK*6B2#K?Mw+c(heM&f{1t2(B)^UCeshelM3=+_TQU=(r0Ht z{%{2foFtDW0b8^K{MSKOpg7wGM6D|1A-*=>G!&K`*MK+>f;hb>@mK_}8#85FFpA>- z5+@;c)NQem-HdZu-?Di4=^~VD$KB?i#G8w1)xgOaZ6e~Ya|w-y{qn-M;{8ne0)_JV z7GAAG8`%}>;a&7yw$l3zl}3?JJNlq#)Q1Y)j0RZ}$Mcm1|08k{%3+-LsBliRqvclb0rIkA?eO z1*0!q0ccGLGRTh=CZ9!vOby2%xa1~l;X(_XRb~v|9<3|^jP(S>lp&G}kzeg}G?RI+ zg!MhEoGIK~Ul)=WdsmUYt)cz7oo&N@t1R%o9@T_ z>PT}ApyeZu;ZKgb(XxF<92EO?^CXX+{@0r;6WvwMx1-Ubzox`!mbJdgGfn%|HU`~GGb zC2ejsX9gnDi_#(w%Lg0@`+mlpoX{_s2PG(O!z)2E1C8NLZIVM4z8eZ+NwU%N0wAAp z%^O=O3#?dXeoH8|`i2x&vE5foii>DOD1Ap8@HKK1R7PlPPs^$gKsc*EP_ui*+J9k? z6GH;6+`_u4}CC1?JNsB$Q2Znq*cS5VhU;RvXc4{sN6>()MahL3?lt!17 z>?#B{5i%o*mm`1=Dx46pT9Rm@6D7r zH4kz5%Q-*YJutSqVR2C>O2jPR*QWb+EvyC+Rxv61&e{__9&l`!O8doc4xK>Ag6hQB zC$ESOriyvB$oYSgqk*PT%Kr)NM)ux@e@`SIhzkwci(2 zf{)YiXicM#Y@m1ErFvP z0ec!^7c&xk0#LDhIQTSx3Ar7NCVo!|KgqfPA$-6*(wF|l$NB(U6NkslLE-`vdS$5# zP4PK(+1%qUph)a(TqcB3g)~woLjHuU-Wr=EHGO**60{sNpGYnDdF)JnfUugUTPgNc zwsk1CZfaUoSarB0?aZGC{Pz!OaVV>DUhz|NmBA)Czk8_w|CQ}Lmt;a{~F4KV$fBf3N1kYDhghQ>F$EdS2!`F!4PM+_WB<9}bC-W2!JY z`>1FcIt0qly3M?A=qz^e@+yGqrm3|m-{1`V-0PFWOut?`PeV@lp|7x~h1S02^Cb_rL+Kyo>A|_EIQsJ~?S>bQnaY zR(jXkGqdunlKk;|PnZ<@3%HPVjTec%M2Fmiy>}(bhBG%b`B9 zQ8aRjNy73PM%%WLJ2CGo1}<_H@^{PYd;HH^xPgb~_mo~T05(fiFwu~*MRn@eD<8ez zaI8`61YiTx@>w&C2o?K(Nw*&A9`-<{TR zO5$kH#5^n8k(S1`jiC|Y7q=KU*2fuE>bjbqNaJIjwdUhLRRmtJ8n+Cy^=7$b`usIQ z!2jMuXeoJJ=AH!^T3G?TJyyr$icaNGyEyo@Es77}8mGY%e8b+&ins1sa9aH1gu*t_ zY<=X8{P_r_AfrBrgNJYGr?yTObXmqOJ9a2C?i7Cx@40Swu4QG*iY{%u{F~JO`#y99 zuZyaHl%%~Oo8>9{kTm57%8Lo{O>S;MbmA?wW)&JHnE`~v{|y|J+D1gK?X_lAJ#Ik-;< z=I7^!N?G}M@5r1n>Uvo^8gk9eg5>;a z?fk;RL0D!h=6M}wW+L!lKH2`YF@uVcyaPjmtac)aR6no3yhtu6m9jBt+EM^4GYAG8lR|OT5s%;AO&#$Bw((Sq0lAdvlq5ihzXVQ zoXM(RzcP0xx{MUThFgi9%LmoO8yDTqi>3Pncm=j#`>Z5RW_P_?vIrV(I}(PDA8mPZ zJHPnw2pVS6s*^9W$2YuLUP!)O|DX4%OoVcpQyX%Q$_|RpaH)(U!F;gn_Q$O^<|^W@ z0Y0zhuo8DE0_s4V*36z76LJ)ngF*ryKhH`9V9(QwFLfTfuQ$h=)xweZA=D#EGJ7KJ zSzw*emBao;LLR3X5`7%gDqsxMB|_%Plx-Ku==Z>^o#+%`S*mr(lW34!{6Q}ft0gN{ zQmXK1aAtdY#%yp6THVQDQG}932SVlQ$vt4GVTVj?b7y*5+SYWad30Vec5OknkOJUj zn$T1Ji8p{kJ!O)8viGK_QD0Zv|Fw7QaWQRcD%bR&^pdEiD)03Lf6g_C@ zp%Ho9gyLu;i6&i&96G0m&P;kp&wF~{QeuRN9_A*mu1X<_|$Fa@3zB>A9?PeVs%pw?0xzonkk9WQQ1 z0#ooGJIJc+=d}kLKG3da7Y({do*{fz;H7pb+Ws?p!#n@@GCN)gGD9hFXC}rPS;vn1 zOJ+%L0jgoM9Li>|cwYjdo>k@Yx&%$v+4da6VAi4YJ9YF`YXh=be7(yWwC!>~gJ1I( zgDlyA%%_^FP0wb%n%s14MtkO~=7d--i)&Fk<#?-={+l*1U%{oEN{vy{YAb+%aK6uj% zb#Xi@7em%Y>KD)`7fn8?bCXnAz3STE9OEwNU!QF(KMCPXH=^QY28FID(H-PU3Lo#J^1}UNNp&>S z2$1CiH<$-*epoy+v@<`&`LAK16#siRxfi6+EDv`ZOIX{maar1CekqVKd`h6ZbZflr z{d#fLBeH%%?aI2~dd?ZRSFlAz1A=7g1}CcC570h>P|JFj{!`IhNb3r}G3{jFJgw^e zUtzm&wCk?R>)y)msYJ(&-%5Y~i7j9xwgLYGI6mVyo>}*vMLJn6KbX?aK>7w~oBrDI zaTmHn<9b@zQuWTO|=eW4Q+Rac0x^)K_RNvVmlxuUu2%~_tZ$?h#>ZC`5Ft&jP{ z4jnpiC^In7lh~)j%4hOE#mw2AUiyn4yP;CdDv24YbxcVF8?}4yjU_RouyqPgG3IXW z0{wE!!N5q19W>?9a)xS0$(Q=`HV3IT03qHBzdU+uv>~Y5JLl|qce-sE3a-%B)On>k z@F`}1cVyj(!hwq5I$L$@=o3HP+Wdn>hln{ooIeUi2S>G<^7%u(!qelg*=M%7czs1~ z`H&B^t)O_v#gUw<<2A6&TON*{MZS^zW9gfNy%8J_A*`+UT+kWZ zQ9-Gjz7;~J+2B91h@$X5==xdsDS)DQd<|5j%&o|DU~z+gK=$^$Pf&`+2}IZ2s?xhw z7~C$vhAW&Frf#{SxTm5ZW4*F7J)E&!A|8V;mSS&}tJ%|j-SwYSK1+E#o`Yb6N2Hd|`wEf4}Wys`(1e+yl$nCdc_e_O|nCQgn zd};)8<9;hY&!3Po?9Xigh4#^Nl?o9F)!2n$Pt(fg+mOHgHd1>Ps7J`58>=zK$a>38 zq5Fx#s7KL8EUy}(A=NsJ3!q*?IP4rYQ~|DCy-!{5PTyf%JVRciV`5$-(RrsGrwoO< z^`INA8X$CjQR_M4K8ESj%$;SNijZ84ga?~gT-%Y=vnJ+S;-eKba7*wygi zg`Aq!qxd^vx7gZgL#E*cxhml&gbgU(04R5^`a>Lc{BWVP!?rT9I%{n&cvt@v9EGN~ z(LcKj-r!SHpOi?>eHyp(c% z2BvmZSP?ZhodGc|+m`O&Kdy@m;_)|rx_AfKU# zHykuHKWEVN&jUC{MF70I0@eRw!lmWRvet;nCq6eZaeB-%V@!|pGFZ|>xW!L`3#5BR znAKDP&}1qHNF@D?3I0a-m&60t1Y%wq|8W=jPYB3KNEKjBq=JLZZlNb0iy(<>LE|J( zz)|kh%+=DmjHaZ+(#34!2k3skv2hMSkqSRG1JS zAq;yN5d$%>V>G$hd}pZuOv1)#xd2g+-lQI6b^rbhl(f{287FxV??TZ*DBb`O*Lv}7+8oRMl-$Z!osa-l9Z}Kh47IvOb9>f1PiAQW4YO| zk;n&`VLTn(L=D_xsyJq=7;muH792I_-J1lNXq*$#?F-IX{t~%V8swz;kV+6D7eHvH z6XU&9Q!un_V6h(&noPvTSq|pqpD#BHGu$Mh74|@P1?YU9Wm}1jMAV$30i#bhkH9Uc zVptHdRXl){HBRHsu5lvoh`X=1htU<|TZ#V_nFXZ;0Ft3o3Z7)>lu_sROqT!4X2)pD z-}8p~2c6F7Zoa^T%CbzTP!6dI&RRWLVIvzd%ayuI-<4&(42v3?4Q8SY-%qXa9}UhB z@Aj~+$s=-xwEbY99y?wlQ;k4<$IdCmb2ilWNjJQbsgQn4JHJ*Uqe{pE@dr*W3?3Bg zRr@_8@|$CkzzieD@uX}>2o4ScqqE7PVr%L4{`=s`x*yssk&-|#g2^m^rzQP?g>+}b z8sM*Mt`a(o#5$&W13cXEc?lygssJbbV43gNEyX=SIR3;A1dI!&ae73^_TeK~>`(Fa z=S+kHqp9G(IIU1+mcpeu0b-LEIVXgKLaBnKtU4%>#YWIFtq|Zz*7MPm?&Rr$rR=iY zDE$CT1_M5)yS__D983ZX$VgKGrX5&TvJT&Ct{3rug7~w`Hb4-T&im0 QHVS^uKf2lH+cEb23HeGl2><{9 literal 0 HcmV?d00001 diff --git a/book/2_potential_fields/labs/week4/week4_exercises.md b/book/2_potential_fields/labs/week4/week4_exercises.md index 2e39f0c..4015b0a 100644 --- a/book/2_potential_fields/labs/week4/week4_exercises.md +++ b/book/2_potential_fields/labs/week4/week4_exercises.md @@ -184,3 +184,110 @@ display({"text/html": ''}, raw=True) ``` + + +## 3. Explore Earth's dipole field + +Far from a compact current system, its magnetic field is that of a dipole (W4L2, slides 14–15). Earth's main field is modelled as a dipole at Earth's centre. As in the lecture, let $\hat m=\hat z$, let $\theta$ be the angle measured from $\hat m$, and work in the $x$–$z$ plane with $\hat r=\sin\theta\,\hat x+\cos\theta\,\hat z$ (slide 22). The field is +```{math} +\vec B = B_*\left(\frac{R}{r}\right)^3\left[3(\hat m\cdot\hat r)\,\hat r-\hat m\right], +\qquad B_*=\frac{\mu_0|\vec m|}{4\pi R^3}. +``` +For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (called $B_0$ in the teachbook section *Earth as a Magnetic Dipole*). For the present polarity, $\hat m$ points toward the **southern** end of the dipole axis: $\theta=0$ is the southern end, $\theta=\pi$ the northern end, and $\theta=\pi/2$ the dipole equator. + +Parts (a)–(d) of this exercise are question 3 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). + +(e) Repeat part (b) of the quiz for a general $\theta$ at $r=a$. +1. Write $\hat z=\cos\theta\,\hat r-\sin\theta\,\hat\theta$, with $\hat\theta=\cos\theta\,\hat x-\sin\theta\,\hat z$ pointing along the ground toward the northern end of the axis. Show that the field has a radial component $B_r=2B_*\cos\theta$ and a horizontal component $B_\theta=B_*\sin\theta$. +2. Use the dipole latitude $\lambda_m=\theta-\pi/2$ (positive in the northern hemisphere) to show that the angle $I$ below the horizontal satisfies $\tan I=2\tan\lambda_m$. Check it against quiz part (b). +3. A navigator measures $I=70^\circ$. What is the dipole latitude? Near which latitudes does a small error in $I$ matter least? +### Check your answers with Python + +Fill in the blanks (`___`) and run the cell to check your numbers for parts (a)–(d) of the quiz and part (e). + +```{code-cell} ipython3 +:tags: [skip-execution] + +import numpy as np + +B_star = 29.7e-6 # B_* for Earth [T] +a = 6371e3 # R = a, Earth's reference radius [m] +m_hat = np.array([0.0, 1.0]) # (x, z): m_hat = z_hat, toward the SOUTHERN end of the axis + +def B_dipole(theta, r): + """Dipole field (Bx, Bz) [T] at polar angle theta (from m_hat) and distance r [m].""" + r_hat = np.array([np.sin(theta), np.cos(theta)]) + return ___ # B_* (a/r)^3 [3 (m.r) r - m] + +def below_horizontal(theta, r): + """Angle [deg] between B and the local horizontal, positive when B points into the ground.""" + r_hat = np.array([np.sin(theta), np.cos(theta)]) + B = B_dipole(theta, r) + B_radial = ___ # component of B along r_hat (positive = out of the ground) + return np.degrees(np.arcsin(-B_radial / np.linalg.norm(B))) + +# (a), (b): at the surface +for name, th in [("southern end", 0.0), ("dipole equator", np.pi/2), + ("northern end", np.pi), ("45 deg N", 3*np.pi/4)]: + B = B_dipole(th, a) + Bx, Bz = np.round(B / B_star, 2) + 0.0 # + 0.0 avoids printing -0.00 + I = round(below_horizontal(th, a), 1) + 0.0 + print(f"{name:15s} B/B* = ({Bx:+.2f}, {Bz:+.2f}), " + f"|B| = {np.linalg.norm(B)*1e6:5.1f} uT, below horizontal = {I:+6.1f} deg") + +# (c): Swarm at 450 km altitude above 45 deg N +r_swarm = ___ +print(f"(c) |B| at Swarm altitude = {np.linalg.norm(B_dipole(3*np.pi/4, r_swarm))*1e6:.1f} uT," + f" below horizontal = {below_horizontal(3*np.pi/4, r_swarm):.1f} deg") + +# (d): distance at which the field has dropped to 1% of its surface value +r_1pct = ___ +print(f"(d) r = {r_1pct/a:.2f} a = {r_1pct/1e3:.0f} km") + +# (e): dipole latitude for a measured angle I = 70 deg, from tan I = 2 tan(lambda_m) +lam_nav = ___ # [rad] +print(f"(e) I = 70 deg -> lambda_m = {np.degrees(lam_nav):.1f} deg N") + +# self-check +assert np.isclose(np.linalg.norm(B_dipole(np.pi/2, a)), B_star) +assert np.isclose(np.linalg.norm(B_dipole(3*np.pi/4, a)), 47.0e-6, rtol=1e-3) +assert np.isclose(below_horizontal(3*np.pi/4, a), 63.43, atol=0.01) +assert np.isclose(np.linalg.norm(B_dipole(3*np.pi/4, r_swarm)), 38.3e-6, rtol=2e-3) +assert np.isclose(np.linalg.norm(B_dipole(np.pi, r_1pct)) / np.linalg.norm(B_dipole(np.pi, a)), 0.01) +assert np.isclose(np.degrees(lam_nav), 53.95, atol=0.01) +print("Self-check passed.") +``` + +The explorer below draws the dipole field lines in the $x$–$z$ plane, oriented as in the lecture ($\hat m=\hat z$ up the page, so the southern end of Earth's axis is at the top). Choose a probe point with $\theta$ and $r/a$. At the probe, the blue, red and black arrows show the head-to-tail construction of the bracket $3(\hat m\cdot\hat r)\hat r-\hat m$. The dashed line is the local horizontal. The lower-left panel shows $|\vec B|$ along the radial line through the probe on log–log axes. The lower-right panel shows the angle below the horizontal and $|\vec B|/B_*$ at the surface as functions of $\theta$. + +1. At $r/a=1$, set $\theta=0^\circ$, $90^\circ$, $180^\circ$ and $135^\circ$. Check your answers to quiz parts (a) and (b). +2. Press *Swarm altitude*. Which numbers change, and which stay the same? Do the arrows at the probe change? (W4L2, slide 15) +3. In the lower-left panel, why is the curve a straight line? Read off where it crosses the $1\%$ line and compare with quiz part (d). By what factor does $|\vec B|$ drop between $r/a=1$ and $2$? (W4L2, slide 18) +4. In the lower-right panel, where is the field vertical, where is it horizontal, and where is $|\vec B|$ largest and smallest? Where does the angle change fastest with $\theta$? Relate this to part (e). +```{code-cell} ipython3 +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("earth_dipole_lab.html"), + Path("book/2_potential_fields/labs/week4/earth_dipole_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("earth_dipole_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` + \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md index 5416ea4..414a08d 100644 --- a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md @@ -179,3 +179,135 @@ display({"text/html": ''}, raw=True) ``` + +## 3. Explore Earth's dipole field + +Far from a compact current system, its magnetic field is that of a dipole (W4L2, slides 14–15). Earth's main field is modelled as a dipole at Earth's centre. As in the lecture, let $\hat m=\hat z$, let $\theta$ be the angle measured from $\hat m$, and work in the $x$–$z$ plane with $\hat r=\sin\theta\,\hat x+\cos\theta\,\hat z$ (slide 22). The field is +```{math} +\vec B = B_*\left(\frac{R}{r}\right)^3\left[3(\hat m\cdot\hat r)\,\hat r-\hat m\right], +\qquad B_*=\frac{\mu_0|\vec m|}{4\pi R^3}. +``` +For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (called $B_0$ in the teachbook section *Earth as a Magnetic Dipole*). For the present polarity, $\hat m$ points toward the **southern** end of the dipole axis: $\theta=0$ is the southern end, $\theta=\pi$ the northern end, and $\theta=\pi/2$ the dipole equator. + +Parts (a)–(d) of this exercise are question 3 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). + +(e) Repeat part (b) of the quiz for a general $\theta$ at $r=a$. +1. Write $\hat z=\cos\theta\,\hat r-\sin\theta\,\hat\theta$, with $\hat\theta=\cos\theta\,\hat x-\sin\theta\,\hat z$ pointing along the ground toward the northern end of the axis. Show that the field has a radial component $B_r=2B_*\cos\theta$ and a horizontal component $B_\theta=B_*\sin\theta$. +2. Use the dipole latitude $\lambda_m=\theta-\pi/2$ (positive in the northern hemisphere) to show that the angle $I$ below the horizontal satisfies $\tan I=2\tan\lambda_m$. Check it against quiz part (b). +3. A navigator measures $I=70^\circ$. What is the dipole latitude? Near which latitudes does a small error in $I$ matter least? +**(e) 1.** From slide 17, at $r=a$: $\vec B/B_*=3\cos\theta\,\hat r-\hat z$. Check the given decomposition: +```{math} +\cos\theta\,\hat r-\sin\theta\,\hat\theta +=\cos\theta(\sin\theta\,\hat x+\cos\theta\,\hat z)-\sin\theta(\cos\theta\,\hat x-\sin\theta\,\hat z)=\hat z. +``` +Substituting it gives +```{math} +\frac{\vec B}{B_*}=3\cos\theta\,\hat r-\cos\theta\,\hat r+\sin\theta\,\hat\theta +=2\cos\theta\,\hat r+\sin\theta\,\hat\theta, +``` +so $\boxed{B_r=2B_*\cos\theta}$ and $\boxed{B_\theta=B_*\sin\theta}$. These are the components given in the teachbook section *Earth as a Magnetic Dipole* (with $B_0=B_*$). + +**(e) 2.** With $\theta=\lambda_m+\pi/2$: $\cos\theta=-\sin\lambda_m$ and $\sin\theta=\cos\lambda_m$. The downward and northward components are +```{math} +B_\mathrm{down}=-B_r=2B_*\sin\lambda_m,\qquad B_\theta=B_*\cos\lambda_m, +``` +so +```{math} +\tan I=\frac{B_\mathrm{down}}{B_\theta}=\boxed{2\tan\lambda_m}. +``` +This relation appears in the optional teachbook box *Connect to magnetic inclination*. At $\lambda_m=45^\circ$: $\tan I=2$, so $I=63.4^\circ$, as in quiz part (b). + +**(e) 3.** $\lambda_m=\arctan\left(\tfrac12\tan70^\circ\right)=\arctan(1.37)=\boxed{53.9^\circ\ \mathrm{N}}$. This is a dipole latitude. The real axis is tilted and the real field has non-dipole parts, so it is not the geographic latitude (teachbook). In the lower-right panel of the explorer, the angle changes fastest with $\theta$ near the equator, where its slope is 2. There a $1^\circ$ error in $I$ shifts the latitude by only $0.5^\circ$. Near the poles the slope drops to $0.5$, and the same error shifts the latitude by $2^\circ$. + +**Explorer questions** + +1. The status line shows the quiz values: bracket $(0,2)$ and $59.4\ \mu\mathrm{T}$ out of the ground at $0^\circ$; $(0,-1)$ and $29.7\ \mu\mathrm{T}$ horizontal at $90^\circ$; $(0,2)$ and $59.4\ \mu\mathrm{T}$ into the ground at $180^\circ$; $(-1.50,0.50)$, $47.0\ \mu\mathrm{T}$ and $63.4^\circ$ below the horizontal at $135^\circ$. +2. At Swarm altitude, $(a/r)^3$ drops to $0.816$, so $|\vec B|$ and $B_r$ fall to $38.3\ \mu\mathrm{T}$ and $-34.3\ \mu\mathrm{T}$. The bracket, the arrows and the angle below the horizontal ($63.4^\circ$) do not change: the bracket depends only on directions (W4L2, slide 15). +3. $|\vec B|\propto r^{-3}$, so $\log|\vec B|=\text{const}-3\log r$: a straight line with slope $-3$. It crosses the $1\%$ line at $r/a\approx4.6$, as in quiz part (d). From $r/a=1$ to $2$, $|\vec B|$ drops by a factor of $8$ (W4L2, slide 18). +4. The field is vertical at $\theta=0^\circ$ and $180^\circ$ (angle $\mp90^\circ$) and horizontal at $\theta=90^\circ$. $|\vec B|$ is largest at the poles ($2B_*$) and smallest at the equator ($B_*$). The angle changes fastest near $\theta=90^\circ$, which is why the dip is the most sensitive latitude indicator near the dipole equator (part (e) 3). +### Check your answers with Python + +```{code-cell} ipython3 +import numpy as np + +B_star = 29.7e-6 # B_* for Earth [T] +a = 6371e3 # R = a, Earth's reference radius [m] +m_hat = np.array([0.0, 1.0]) # (x, z): m_hat = z_hat, toward the SOUTHERN end of the axis + +def B_dipole(theta, r): + """Dipole field (Bx, Bz) [T] at polar angle theta (from m_hat) and distance r [m].""" + r_hat = np.array([np.sin(theta), np.cos(theta)]) + return B_star * (a / r)**3 * (3 * np.dot(m_hat, r_hat) * r_hat - m_hat) + +def below_horizontal(theta, r): + """Angle [deg] between B and the local horizontal, positive when B points into the ground.""" + r_hat = np.array([np.sin(theta), np.cos(theta)]) + B = B_dipole(theta, r) + B_radial = np.dot(B, r_hat) # component of B along r_hat (positive = out of the ground) + return np.degrees(np.arcsin(-B_radial / np.linalg.norm(B))) + +# (a), (b): at the surface +for name, th in [("southern end", 0.0), ("dipole equator", np.pi/2), + ("northern end", np.pi), ("45 deg N", 3*np.pi/4)]: + B = B_dipole(th, a) + Bx, Bz = np.round(B / B_star, 2) + 0.0 # + 0.0 avoids printing -0.00 + I = round(below_horizontal(th, a), 1) + 0.0 + print(f"{name:15s} B/B* = ({Bx:+.2f}, {Bz:+.2f}), " + f"|B| = {np.linalg.norm(B)*1e6:5.1f} uT, below horizontal = {I:+6.1f} deg") + +# (c): Swarm at 450 km altitude above 45 deg N +r_swarm = a + 450e3 +print(f"(c) |B| at Swarm altitude = {np.linalg.norm(B_dipole(3*np.pi/4, r_swarm))*1e6:.1f} uT," + f" below horizontal = {below_horizontal(3*np.pi/4, r_swarm):.1f} deg") + +# (d): distance at which the field has dropped to 1% of its surface value +r_1pct = a * 100**(1/3) +print(f"(d) r = {r_1pct/a:.2f} a = {r_1pct/1e3:.0f} km") + +# (e): dipole latitude for a measured angle I = 70 deg, from tan I = 2 tan(lambda_m) +lam_nav = np.arctan(np.tan(np.radians(70)) / 2) # [rad] +print(f"(e) I = 70 deg -> lambda_m = {np.degrees(lam_nav):.1f} deg N") + +# self-check +assert np.isclose(np.linalg.norm(B_dipole(np.pi/2, a)), B_star) +assert np.isclose(np.linalg.norm(B_dipole(3*np.pi/4, a)), 47.0e-6, rtol=1e-3) +assert np.isclose(below_horizontal(3*np.pi/4, a), 63.43, atol=0.01) +assert np.isclose(np.linalg.norm(B_dipole(3*np.pi/4, r_swarm)), 38.3e-6, rtol=2e-3) +assert np.isclose(np.linalg.norm(B_dipole(np.pi, r_1pct)) / np.linalg.norm(B_dipole(np.pi, a)), 0.01) +assert np.isclose(np.degrees(lam_nav), 53.95, atol=0.01) +print("Self-check passed.") +``` + +The explorer below draws the dipole field lines in the $x$–$z$ plane, oriented as in the lecture ($\hat m=\hat z$ up the page, so the southern end of Earth's axis is at the top). Choose a probe point with $\theta$ and $r/a$. At the probe, the blue, red and black arrows show the head-to-tail construction of the bracket $3(\hat m\cdot\hat r)\hat r-\hat m$. The dashed line is the local horizontal. The lower-left panel shows $|\vec B|$ along the radial line through the probe on log–log axes. The lower-right panel shows the angle below the horizontal and $|\vec B|/B_*$ at the surface as functions of $\theta$. + +1. At $r/a=1$, set $\theta=0^\circ$, $90^\circ$, $180^\circ$ and $135^\circ$. Check your answers to quiz parts (a) and (b). +2. Press *Swarm altitude*. Which numbers change, and which stay the same? Do the arrows at the probe change? (W4L2, slide 15) +3. In the lower-left panel, why is the curve a straight line? Read off where it crosses the $1\%$ line and compare with quiz part (d). By what factor does $|\vec B|$ drop between $r/a=1$ and $2$? (W4L2, slide 18) +4. In the lower-right panel, where is the field vertical, where is it horizontal, and where is $|\vec B|$ largest and smallest? Where does the angle change fastest with $\theta$? Relate this to part (e). +```{code-cell} ipython3 +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("earth_dipole_lab.html"), + Path("book/2_potential_fields/labs/week4/earth_dipole_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("earth_dipole_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` + \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_exersizes.md b/book/2_potential_fields/labs/week4/week4_exersizes.md deleted file mode 100644 index 6ae2458..0000000 --- a/book/2_potential_fields/labs/week4/week4_exersizes.md +++ /dev/null @@ -1,192 +0,0 @@ ---- -jupytext: - text_representation: - extension: .md - format_name: myst - format_version: 0.13 -kernelspec: - display_name: Python 3 (ipykernel) - language: python - name: python3 ---- - -# Lab 4: Electrostatic and Magnetic Fields - -## 1. Explore a spherical capacitor - -Two concentric conducting shells with free space between them, an **inner shell** of radius $R_E=6370\ \text{km}$ (the Earth) held at $V=0$, and an **outer shell** of radius $R_I$ (the ionosphere) held at $V=V_o$, is the same setup as the Earth-ionosphere model in the {doc}`week 4 quiz `. Between the shells, the potential takes the form - -```{math} -V(r) = A + \frac{B}{r}, \qquad R_E \le r \le R_I, -``` - -with $A$ and $B$ fixed entirely by the two boundary conditions $V(R_E)=0$ and $V(R_I)=V_o$. Inside the inner shell $V=0$ (it is a conductor), and outside the outer shell $V=V_o$ with $\vec E = 0$ (the shells enclose zero net charge together). - -Use the sliders below to change the outer radius $R_I$ (km) and the outer voltage $V_o$ (kV, 0 to 200), and watch $V(r)$ and $E(r)=-dV/dr$ update. **The radial axis in the plots is not to scale**: the gap between the shells (tens to thousands of km) is stretched for readability against Earth's 6370 km radius. - -```{code-cell} ipython3 -:tags: [remove-input, remove-output] - -import numpy as np - -def solve_coefficients(r_inner, r_outer, v_outer): - """Solve A, B given V(r_inner) = 0 and V(r_outer) = v_outer.""" - b = v_outer / (1.0 / r_outer - 1.0 / r_inner) - a = -b / r_inner - return a, b - -def potential(r, r_inner, r_outer, v_outer): - a, b = solve_coefficients(r_inner, r_outer, v_outer) - r = np.asarray(r, float) - v = np.full_like(r, v_outer, dtype=float) - between = (r >= r_inner) & (r <= r_outer) - v[between] = a + b / r[between] - v[r < r_inner] = 0.0 - return v - -def field(r, r_inner, r_outer, v_outer): - """E(r) = -dV/dr = B / r**2 between the shells, else zero.""" - _, b = solve_coefficients(r_inner, r_outer, v_outer) - r = np.asarray(r, float) - e = np.zeros_like(r, dtype=float) - between = (r >= r_inner) & (r <= r_outer) - e[between] = b / r[between] ** 2 - return e - -# Boundary conditions and the field-potential relation, checked at an example (r_i, r_o, V_o). -r_i, r_o, v_o = 6370.0, 6470.0, 1.0e5 -np.testing.assert_allclose(potential(r_i, r_i, r_o, v_o), 0.0, atol=1e-9) -np.testing.assert_allclose(potential(r_o, r_i, r_o, v_o), v_o) -r_mid = 0.5 * (r_i + r_o) -eps = 1e-3 -numeric_e = -(potential(r_mid + eps, r_i, r_o, v_o) - potential(r_mid - eps, r_i, r_o, v_o)) / (2 * eps) -np.testing.assert_allclose(numeric_e, field(r_mid, r_i, r_o, v_o), rtol=1e-6) -print("Boundary conditions and E = -dV/dr checks passed.") -``` - -```{code-cell} ipython3 -:tags: [remove-input] - -# The HTML contains all controls and drawing code, with no external dependencies. -# An iframe keeps the explorer independent of the page styles. -import html as html_module -from pathlib import Path -from IPython.display import display - -for _candidate in ( - Path("spherical_capacitor_lab.html"), - Path("book/2_potential_fields/labs/week4/spherical_capacitor_lab.html"), -): - if _candidate.exists(): - explorer_html = _candidate.read_text() - break -else: - from pyodide.http import pyfetch - _r = await pyfetch("spherical_capacitor_lab.html") - explorer_html = (await _r.bytes()).decode() - -display({"text/html": ''}, raw=True) -``` - -### Explore, predict, explain - -1. **Reproduce the quiz numbers.** Set $R_I = 6470$ km (100 km altitude) and $V_o = 100$ kV, matching the week 4 quiz. Read off $A$ and $B$, and compare them to the closed-form expressions you derived by hand. Then check the field at 50 km altitude (probe $r=6420$ km) against your answer to part (e). -2. **Move the outer shell farther away.** Keep $V_o$ fixed and increase $R_I$. Does $|B|$ grow or shrink? Explain why the field between the shells changes even though $V_o$ has not. -3. **Increase $V_o$ toward 200 kV.** What happens to the field magnitude at a fixed altitude? Is the relationship linear? -4. **Move the probe outside $R_I$ and inside $R_E$.** Confirm that $V$ is constant and $E=0$ in both regions, consistent with each shell being an equipotential conductor. - -## 2. Charges in the fair-weather field - -On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): -```{math} -\vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. -``` -Cosmic rays continuously ionise the air, producing free electrons and positive ions such as $\mathrm{N_2^+}$. Wind also lifts charged mineral dust from deserts into the atmosphere. Use $e = 1.602\cdot 10^{-19}\ \mathrm{C}$, $g = 9.81\ \mathrm{m/s^2}$ and $1\ \mathrm{eV} = 1.602\cdot 10^{-19}\ \mathrm{J}$ (the energy an elementary charge gains across $1\ \mathrm{V}$). - -(a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the electric potential $V$ at $z = 2\ \mathrm{m}$, given the reference $V(0) = 0$ ? - -(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. - -(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? - -(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? - -(e) In the undisturbed fair-weather field, the potential difference between $z=0$ and $z=2\ \mathrm{m}$ is $200\ \mathrm{V}$. Now consider a person standing on the ground, approximated as a conductor connected to the ground. Would there be a $200\ \mathrm{V}$ potential difference between their feet and head? Sketch the equipotentials around the person and explain your reasoning. *Hint:* you are a conductor connected to the ground (W4L1, slide 14). - -### Check your answers with Python - -Fill in the blanks (`___`) and run the cell to check your numbers for (a), (b) and (d). - -```{code-cell} ipython3 -:tags: [skip-execution] - -import numpy as np - -e = 1.602e-19 # elementary charge [C] -E0 = 100.0 # fair-weather field strength [V/m] -g = 9.81 # gravitational acceleration [m/s^2] - -def V_fair(z): - """Fair-weather potential above flat ground, V(0) = 0.""" - return ___ - -# (b), (c): move each particle from z = 0 to z = 10 m -dV = V_fair(10.0) - V_fair(0.0) -for name, q in [("electron", -e), ("N2+ ion ", +e)]: - dU = ___ # change in potential energy [J] - W = ___ # work done by the field [J] - Fz = ___ # z-component of F = qE, with E = -E0 z_hat [N] - print(f"{name}: dV = {dV:.0f} V, dU = {dU:+.2e} J = {dU/e:+.0f} eV, " - f"W_field = {W:+.2e} J, F_z = {Fz:+.1e} N") - -# (d): dust grain levitated by the fair-weather field -a_d, rho_d = 1e-6, 2650.0 # radius [m], density [kg/m^3] -m_d = ___ # mass of the grain [kg] -q_d = ___ # charge magnitude for |qE| = mg [C] -print(f"m = {m_d:.2e} kg, |q| = {q_d:.2e} C = {q_d/e:.0f} excess electrons") - -# self-check -assert np.isclose(V_fair(2.0), 200.0), "V(2 m) should be 200 V" -assert np.isclose(q_d / e, 6.8e3, rtol=0.02), "check the mass or the force balance" -print("Self-check passed.") -``` - -The explorer below shows the fair-weather field over flat ground. You can add a grounded conducting hemisphere of radius $a$, a crude model of a person, a tree or a small hill. Its potential is -```{math} -V(\vec{r}) = E_0 z\left(1 - \frac{a^3}{r^3}\right), \qquad z \geq 0,\ r \geq a. -``` -The upper panel shows the field strength $|\vec{E}|/E_0$ in colour, the equipotentials in white (every $E_0\cdot 1\ \mathrm{m}$), the field lines in grey, and the force $\vec{F} = q\vec{E}$ on the test charge as an arrow. The lower panel shows $V(z)$ and $U(z)/e$ along the vertical line through the test charge. - -1. With $a = 0$, move the test charge up and down. Check your answers to (a) and (b). -2. Switch between the electron and the ion. Which quantities change, and which stay the same? (W4L1, slide 9) -3. Set $a = 1\ \mathrm{m}$. Where do the equipotentials crowd together? Read $|\vec{E}|$ just above the top of the object and near its base. Use this to check your sketch for (e). - -```{code-cell} ipython3 -:tags: [remove-input] - -# The HTML contains all controls and drawing code, with no external dependencies. -# An iframe keeps the explorer independent of the page styles. -import html as html_module -from pathlib import Path -from IPython.display import display - -for _candidate in ( - Path("fair_weather_lab.html"), - Path("book/2_potential_fields/labs/week4/fair_weather_lab.html"), -): - if _candidate.exists(): - explorer_html = _candidate.read_text() - break -else: - from pyodide.http import pyfetch - _r = await pyfetch("fair_weather_lab.html") - explorer_html = (await _r.bytes()).decode() - -display({"text/html": ''}, raw=True) -``` diff --git a/book/2_potential_fields/labs/week4/week4_quiz.md b/book/2_potential_fields/labs/week4/week4_quiz.md index c056c6b..e3a88fd 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz.md +++ b/book/2_potential_fields/labs/week4/week4_quiz.md @@ -1,7 +1,7 @@ # Quiz Week 4 -## 1. +## 1. Earth-ionosphere system The Earth-ionosphere system can be modeled in a simple way by assuming the Earth to be a perfectly conducting sphere of radius $R_E$, surrounded by a thin, perfectly conducting spherical shell with radius $R_I = R_E + 100\ \text{km}$, with free space between them. The surface of the Earth has a potential $\Phi(r=R_E)=0\ \text{V}$, and the ionosphere has potential $\Phi(r=R_I)=V_I$. ```{figure} figures/simple_ionosphere.png @@ -25,7 +25,7 @@ Find expressions for $A$ and $B$, and write the expression for the potential in (e) What is the strength of the field at 50 km altitude, and in which direction is it pointing? -## 2. +## 2. The fair-weather field On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): ```{math} \vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. @@ -39,3 +39,25 @@ Cosmic rays continuously ionise the air, producing free electrons and positive i (c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? (d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? + +## 3. Earth's magnetic field +Far from a compact current system, its magnetic field is that of a dipole (W4L2, slides 14–15). Earth's main field is modelled as a dipole at Earth's centre. As in the lecture, let $\hat m=\hat z$, let $\theta$ be the angle measured from $\hat m$, and work in the $x$–$z$ plane with $\hat r=\sin\theta\,\hat x+\cos\theta\,\hat z$ (slide 22). The field is +```{math} +\vec B = B_*\left(\frac{R}{r}\right)^3\left[3(\hat m\cdot\hat r)\,\hat r-\hat m\right], +\qquad B_*=\frac{\mu_0|\vec m|}{4\pi R^3}. +``` +For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (called $B_0$ in the teachbook section *Earth as a Magnetic Dipole*). For the present polarity, $\hat m$ points toward the **southern** end of the dipole axis: $\theta=0$ is the southern end, $\theta=\pi$ the northern end, and $\theta=\pi/2$ the dipole equator. + +```{figure} figures/earth_dipole_setup.png +:width: 45% + +Geometry of the dipole model, as in W4L2, slides 17 and 22: $\hat m=\hat z$ points up the page, $\theta$ is measured from $\hat m$, and the grey arrows show $\hat r$ at the points used in (a) and (b). The dashed circle is Earth's surface, $r=a$. +``` + +(a) At the surface, $r=a$, find $\vec B/B_*$ at $\theta=0$, $\pi/2$ and $\pi$, and give $|\vec B|$ in $\mu\mathrm{T}$. At each point, determine whether $\vec B$ points into the Earth, out of the Earth or is tangent to the Earth's surface. In which hemisphere does the field enter Earth? + +(b) At $r=a$ and $\theta=3\pi/4$ (dipole latitude $45^\circ$ N), construct $\vec B/B_*$ head to tail from $3(\hat m\cdot\hat r)\hat r$ and $-\hat m$ (W4L2, slide 16). Find $|\vec B|$ in $\mu\mathrm{T}$ and the angle between $\vec B$ and the local horizontal. *Hint:* use $\vec B\cdot\hat r=|\vec B|\cos\alpha$, where $\alpha$ is the angle between $\vec B$ and $\hat r$. + +(c) ESA's Swarm satellites measure the Earth's magnetic field at about $450\ \mathrm{km}$ altitude. Consider a point directly above the locaion in (b), i.e. at the same dipole latitude. What happens to the magnitude $|\vec B|$ and direction of $\vec B$? + +(d) Above the northern end of the dipole axis, at what distance from Earth's centre has the magnetic field magnitude $|\vec B|$ decreased to $1\%$ of its value at Earth's surface ? \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md index a1f3b00..bf790cb 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md @@ -1,7 +1,7 @@ # Quiz Week 4 (Solutions) -## 1. +## 1. Earth-ionosphere system The Earth-ionosphere system can be modeled in a simple way by assuming the Earth to be a perfectly conducting sphere of radius $R_E$, surrounded by a thin, perfectly conducting spherical shell with radius $R_I = R_E + 100\ \text{km}$, with free space between them. The surface of the Earth has a potential $\Phi(r=R_E)=0\ \text{V}$, and the ionosphere has potential $\Phi(r=R_I)=V_I$. ```{figure} figures/simple_ionosphere.png @@ -81,7 +81,7 @@ A &= \frac{-(-4.12 \cdot 10^{13})}{(6370\cdot 10^3)} \\ The field points radially inward (ie. down), from high potential to low. -## 2. +## 2. The fair-weather field On a clear day, the air above flat, open ground carries a downward electric field (W4L1, slides 16–17): ```{math} \vec{E} \approx -E_0\,\hat{z}, \qquad E_0 \approx 100\ \mathrm{V/m}, \qquad V(z) = E_0 z \quad \text{with } V(0) = 0. @@ -130,3 +130,68 @@ A negative charge feels an upward force (see (c)), so it can balance gravity whe \qquad N = \frac{|q|}{e} \approx \boxed{6.8\cdot 10^{3}\ \text{electrons}}. ``` In this model, $\vec{E}$ is uniform, so the answer **does not depend on height**. The linear potential is only valid near the ground (W4L1, slide 17). In real dust storms, the field near the ground can be much stronger than $E_0$, so far less charge is needed. + +## 3. Earth's magnetic field +Far from a compact current system, its magnetic field is that of a dipole (W4L2, slides 14–15). Earth's main field is modelled as a dipole at Earth's centre. As in the lecture, let $\hat m=\hat z$, let $\theta$ be the angle measured from $\hat m$, and work in the $x$–$z$ plane with $\hat r=\sin\theta\,\hat x+\cos\theta\,\hat z$ (slide 22). The field is +```{math} +\vec B = B_*\left(\frac{R}{r}\right)^3\left[3(\hat m\cdot\hat r)\,\hat r-\hat m\right], +\qquad B_*=\frac{\mu_0|\vec m|}{4\pi R^3}. +``` +For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (called $B_0$ in the teachbook section *Earth as a Magnetic Dipole*). For the present polarity, $\hat m$ points toward the **southern** end of the dipole axis: $\theta=0$ is the southern end, $\theta=\pi$ the northern end, and $\theta=\pi/2$ the dipole equator. + +```{figure} figures/earth_dipole_setup.png +:width: 45% + +Geometry of the dipole model, as in W4L2, slides 17 and 22: $\hat m=\hat z$ points up the page, $\theta$ is measured from $\hat m$, and the grey arrows show $\hat r$ at the points used in (a) and (b). The dashed circle is Earth's surface, $r=a$. +``` + +(a) At the surface, $r=a$, find $\vec B/B_*$ at $\theta=0$, $\pi/2$ and $\pi$, and give $|\vec B|$ in $\mu\mathrm{T}$. At each point, does the field point out of the ground, into it, or along it? In which hemisphere does the field enter Earth? + +(b) At $r=a$ and $\theta=3\pi/4$ (dipole latitude $45^\circ$ N), construct $\vec B/B_*$ head to tail from $3(\hat m\cdot\hat r)\hat r$ and $-\hat m$ (W4L2, slide 16). Find $|\vec B|$ in $\mu\mathrm{T}$ and the angle between $\vec B$ and the local horizontal. *Hint:* use $\vec B\cdot\hat r=|\vec B|\cos\alpha$, where $\alpha$ is the angle between $\vec B$ and $\hat r$. + +(c) ESA's Swarm satellites measure the field at about $450\ \mathrm{km}$ altitude. What is $|\vec B|$ directly above the point in (b)? Does the direction of $\vec B$ change? + +(d) At what distance from Earth's centre, above the northern end of the axis, has $|\vec B|$ dropped to $1\%$ of its surface value? + +**(a)** At $r=a$ the factor $(R/r)^3$ equals 1. +- $\theta=0$: $\hat r=\hat z$, $\hat m\cdot\hat r=1$, so $\vec B/B_*=3\hat z-\hat z=2\hat z=2\hat r$. The field points **out of the ground**, with $|\vec B|=2B_*=\boxed{59.4\ \mu\mathrm{T}}$. +- $\theta=\pi/2$: $\hat r=\hat x$, $\hat m\cdot\hat r=0$, so $\vec B/B_*=-\hat z$. The field is **along the ground** (horizontal), pointing from the southern toward the northern end of the axis, with $|\vec B|=B_*=\boxed{29.7\ \mu\mathrm{T}}$. +- $\theta=\pi$: $\hat r=-\hat z$, $\hat m\cdot\hat r=-1$, so $\vec B/B_*=3(-1)(-\hat z)-\hat z=2\hat z=-2\hat r$. The field points **into the ground**, with $|\vec B|=\boxed{59.4\ \mu\mathrm{T}}$. +The field leaves Earth in the southern hemisphere and **enters Earth in the northern hemisphere**. The field at the poles is twice as strong as at the equator (W4L2, slide 17). + +**(b)** At $\theta=3\pi/4$: $\hat r=\tfrac{1}{\sqrt2}(\hat x-\hat z)$ and $\hat m\cdot\hat r=\cos\tfrac{3\pi}{4}=-\tfrac{1}{\sqrt2}$. Then +```{math} +3(\hat m\cdot\hat r)\hat r=-\tfrac32(\hat x-\hat z)=-\tfrac32\hat x+\tfrac32\hat z, +\qquad +\frac{\vec B}{B_*}=-\tfrac32\hat x+\tfrac32\hat z-\hat z=\boxed{-\tfrac32\hat x+\tfrac12\hat z}. +``` +This is the $\theta=3\pi/4$ arrow of the slide 22 practice. Its magnitude equals that of the slide 16 example: +```{math} +|\vec B|=B_*\sqrt{\tfrac94+\tfrac14}=1.58\,B_*=\boxed{47.0\ \mu\mathrm{T}}. +``` +For the direction, $\vec B\cdot\hat r=B_*\tfrac{1}{\sqrt2}\left(-\tfrac32-\tfrac12\right)=-\sqrt2\,B_*$, so +```{math} +\cos\alpha=\frac{-\sqrt2}{1.58}=-0.894,\qquad \alpha=153.4^\circ. +``` +$\vec B$ makes $153.4^\circ-90^\circ=\boxed{63.4^\circ}$ with the horizontal and points **into the ground** ($\vec B\cdot\hat r<0$). It is twice as steep as the $45^\circ$ radius. + +```{figure} figures/earth_dipole_vectors_solution.png +:width: 95% + +Left: $\vec B/B_*$ at the four points of (a) and (b), drawn with one arrow scale (compare W4L2, slide 17). Right: the head-to-tail construction at $\theta=3\pi/4$ (compare slide 16). The field points into the ground, $63.4^\circ$ below the local horizontal. +``` + +**(c)** The bracket depends only on directions; the distance enters only through $(R/r)^3$ (W4L2, slide 15). With $r=6371+450=6821\ \mathrm{km}$, +```{math} +|\vec B|=47.0\ \mu\mathrm{T}\times\left(\frac{6371}{6821}\right)^3=47.0\times0.815=\boxed{38.3\ \mu\mathrm{T}}. +``` +The **direction does not change**: at the same $\theta$, $\hat r$ and the bracket are the same. + +**(d)** Along the axis, $|\vec B|=2B_*(a/r)^3$, so the ratio to the surface value is $(a/r)^3$: +```{math} +\left(\frac{a}{r}\right)^3=0.01 +\quad\Longrightarrow\quad +r=100^{1/3}a=4.64\,a\approx\boxed{2.96\cdot10^{4}\ \mathrm{km}}. +``` +Each doubling of the distance reduces the field by a factor of 8 (W4L2, slide 18), and $2^{2.2}\approx4.6$. The same distance holds at every $\theta$, because the ratio depends only on $r$. + \ No newline at end of file From 02911b2b14f7aec4761d93a2400e57f952aafdb9 Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Fri, 25 Sep 2026 11:06:44 +0200 Subject: [PATCH 10/13] added ex4 - current loop as magnetic dipole --- .../labs/week4/current_loop_lab.html | 297 ++++++++++++++++++ .../labs/week4/week4_exercises.md | 102 +++++- .../labs/week4/week4_exercises_solutions.md | 121 ++++++- .../labs/week4/week4_quiz.md | 38 ++- .../labs/week4/week4_quiz_solutions.md | 122 +++++-- 5 files changed, 645 insertions(+), 35 deletions(-) create mode 100644 book/2_potential_fields/labs/week4/current_loop_lab.html diff --git a/book/2_potential_fields/labs/week4/current_loop_lab.html b/book/2_potential_fields/labs/week4/current_loop_lab.html new file mode 100644 index 0000000..251b363 --- /dev/null +++ b/book/2_potential_fields/labs/week4/current_loop_lab.html @@ -0,0 +1,297 @@ + + + + + + + + +
+
+
+
+
+
+
+
Field lines in the x–z plane: exact loop (solid) and dipole with the same moment (dashed)
+
+
+
|B| on the axis (log–log)
+
+
Dipole formula / exact field on the axis
+
+
+
+

+

The loop lies in the x–y plane and is seen edge-on: ⊗ current into the page, ⊙ current out of the page, so m = IπRL2 ẑ points up. Lengths in the upper panel are in units of RL. Exact axial field: B = μ0IRL2 / [2(RL2+z2)3/2]. Dipole formula on the axis: B = μ0m / (2πz3).

+ + + diff --git a/book/2_potential_fields/labs/week4/week4_exercises.md b/book/2_potential_fields/labs/week4/week4_exercises.md index 4015b0a..8a555ad 100644 --- a/book/2_potential_fields/labs/week4/week4_exercises.md +++ b/book/2_potential_fields/labs/week4/week4_exercises.md @@ -197,7 +197,7 @@ For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (ca Parts (a)–(d) of this exercise are question 3 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). -(e) Repeat part (b) of the quiz for a general $\theta$ at $r=a$. +(e) The quiz quotes the component form of the dipole field; here you derive it. Repeat part (b) of the quiz for a general $\theta$ at $r=a$. 1. Write $\hat z=\cos\theta\,\hat r-\sin\theta\,\hat\theta$, with $\hat\theta=\cos\theta\,\hat x-\sin\theta\,\hat z$ pointing along the ground toward the northern end of the axis. Show that the field has a radial component $B_r=2B_*\cos\theta$ and a horizontal component $B_\theta=B_*\sin\theta$. 2. Use the dipole latitude $\lambda_m=\theta-\pi/2$ (positive in the northern hemisphere) to show that the angle $I$ below the horizontal satisfies $\tan I=2\tan\lambda_m$. Check it against quiz part (b). 3. A navigator measures $I=70^\circ$. What is the dipole latitude? Near which latitudes does a small error in $I$ matter least? @@ -260,7 +260,7 @@ print("Self-check passed.") The explorer below draws the dipole field lines in the $x$–$z$ plane, oriented as in the lecture ($\hat m=\hat z$ up the page, so the southern end of Earth's axis is at the top). Choose a probe point with $\theta$ and $r/a$. At the probe, the blue, red and black arrows show the head-to-tail construction of the bracket $3(\hat m\cdot\hat r)\hat r-\hat m$. The dashed line is the local horizontal. The lower-left panel shows $|\vec B|$ along the radial line through the probe on log–log axes. The lower-right panel shows the angle below the horizontal and $|\vec B|/B_*$ at the surface as functions of $\theta$. -1. At $r/a=1$, set $\theta=0^\circ$, $90^\circ$, $180^\circ$ and $135^\circ$. Check your answers to quiz parts (a) and (b). +1. At $r/a=1$, set $\theta=0^\circ$, $90^\circ$ and $135^\circ$ to check your answers to quiz parts (a) and (b), then $180^\circ$ to see the northern end. 2. Press *Swarm altitude*. Which numbers change, and which stay the same? Do the arrows at the probe change? (W4L2, slide 15) 3. In the lower-left panel, why is the curve a straight line? Read off where it crosses the $1\%$ line and compare with quiz part (d). By what factor does $|\vec B|$ drop between $r/a=1$ and $2$? (W4L2, slide 18) 4. In the lower-right panel, where is the field vertical, where is it horizontal, and where is $|\vec B|$ largest and smallest? Where does the angle change fastest with $\theta$? Relate this to part (e). @@ -290,4 +290,100 @@ display({"text/html": ''}, raw=True) ``` - \ No newline at end of file + + +## 4. Explore a current loop and its dipole field + +Far from a compact current loop, its magnetic field is that of a dipole (W4L2, slide 14). A circular loop carrying current $I$ around an area $A$ has the magnetic moment +```{math} +\vec m = IA\,\hat n, +``` +where $\hat n$ is the normal to the loop given by the right-hand rule: curl the fingers along the current, and the thumb gives $\hat n$. Use $\mu_0 = 4\pi\cdot10^{-7}\ \mathrm{T\,m/A}$. + +Parts (a)–(d) of this exercise are question 4 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). + +(e) Return to the core loop of quiz part (b). An observer stands on Earth's surface above the northern end of the axis, at distance $z = a$ from the centre of the loop. How large is the error of the dipole formula there? How far from Earth's centre, in units of $a$, would the observer have to be for the dipole formula to be accurate to within $10\%$? What does this tell you about the single-loop picture of the geodynamo? + +### Check your answers with Python + +Fill in the blanks (`___`) and run the cell to check your numbers for parts (a)–(d) of the quiz and part (e). The last blank, `z_10`, is the height where the dipole formula becomes accurate to within $10\%$; compare it with explorer question 4. + +```{code-cell} ipython3 +:tags: [skip-execution] + +import numpy as np + +mu0 = 4e-7 * np.pi # [T m/A] +a, B_star, R_c = 6371e3, 29.7e-6, 3480e3 # Earth radius [m], B_* [T], outer-core radius [m] + +# (a), (b): Earth's moment and the equivalent core current +m_earth = ___ # from B_* = mu0 m / (4 pi a^3) [A m^2] +I_core = ___ # from m = I * pi R_c^2 [A] +print(f"(a) m = {m_earth:.2e} A m^2 (b) I = {I_core:.2e} A") + +def B_loop_axis(z, I, R): + """Exact field on the axis of a circular loop of radius R [T].""" + return mu0 * I * R**2 / (2 * (R**2 + z**2)**1.5) + +def B_dip_axis(z, m): + """Dipole formula on the axis [T].""" + return ___ + +# (c), (d): the survey loop +R_L, I_L = 50.0, 10.0 +m_L = ___ # moment of the survey loop [A m^2] +print(f"(c) m = {m_L:.3g} A m^2") +for z in (100.0, 250.0): # (d): z = 2 R_L and z = 5 R_L + B_ex, B_dp = B_loop_axis(z, I_L, R_L), B_dip_axis(z, m_L) + print(f"(d) at z = {z:.0f} m: exact {B_ex*1e9:.2f} nT, dipole {B_dp*1e9:.2f} nT, " + f"ratio {B_dp/B_ex:.2f}") +z_10 = ___ # height where B_dip / B_loop = 1.1 [m] +print(f" dipole formula within 10% beyond z = {z_10:.0f} m = {z_10/R_L:.1f} R_L") + +# (e): the core loop seen from Earth's surface on the axis +ratio_core = B_dip_axis(a, m_earth) / B_loop_axis(a, I_core, R_c) +print(f"(e) z/R_c = {a/R_c:.2f}: dipole / exact = {ratio_core:.2f}; " + f"10% needs r = {z_10/R_L * R_c / a:.2f} a") + +# self-check +assert np.isclose(m_earth, 7.68e22, rtol=2e-3) and np.isclose(I_core, 2.02e9, rtol=5e-3) +assert np.isclose(m_L, 7.854e4, rtol=1e-3) +assert np.isclose(B_dip_axis(100.0, m_L) / B_loop_axis(100.0, I_L, R_L), 1.398, atol=1e-3) +assert np.isclose(B_dp / B_ex, 1.061, atol=1e-3) # last loop value: z = 250 m +assert np.isclose(z_10, 195.2, atol=0.5) +assert np.isclose(ratio_core, 1.48, atol=0.01) +print("Self-check passed.") +``` + +The explorer below shows a circular loop seen edge-on, with its axis vertical. The upper panel compares the exact field lines of the loop (solid) with those of a point dipole with the same moment (dashed), in units of the loop radius $R_L$. The lower-left panel shows $|\vec B|$ on the axis on log–log axes, for the loop radius and current you choose. The lower-right panel shows the ratio of the dipole formula to the exact field, with a line at $10\%$. + +1. Keep $R_L = 50\ \mathrm{m}$ and $I = 10\ \mathrm{A}$ and set $z/R_L = 2$. Check your answers to quiz part (d). +2. In the upper panel, where do the solid and dashed field lines agree, and where do they differ most? What does "far from a compact loop" (W4L2, slide 14) mean in this picture? +3. Change $R_L$ and $I$. Does the curve in the lower-right panel change? Explain why. What does change in the lower-left panel? +4. Find the value of $z/R_L$ where the ratio drops to $1.1$, so that the dipole formula is accurate to within $10\%$. Compare it with your results at $2R_L$ and $5R_L$ in quiz part (d). Then set $z/R_L \approx 1.85$ to check part (e). +```{code-cell} ipython3 +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("current_loop_lab.html"), + Path("book/2_potential_fields/labs/week4/current_loop_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("current_loop_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md index 414a08d..34ab76e 100644 --- a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md @@ -191,7 +191,7 @@ For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (ca Parts (a)–(d) of this exercise are question 3 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). -(e) Repeat part (b) of the quiz for a general $\theta$ at $r=a$. +(e) The quiz quotes the component form of the dipole field; here you derive it. Repeat part (b) of the quiz for a general $\theta$ at $r=a$. 1. Write $\hat z=\cos\theta\,\hat r-\sin\theta\,\hat\theta$, with $\hat\theta=\cos\theta\,\hat x-\sin\theta\,\hat z$ pointing along the ground toward the northern end of the axis. Show that the field has a radial component $B_r=2B_*\cos\theta$ and a horizontal component $B_\theta=B_*\sin\theta$. 2. Use the dipole latitude $\lambda_m=\theta-\pi/2$ (positive in the northern hemisphere) to show that the angle $I$ below the horizontal satisfies $\tan I=2\tan\lambda_m$. Check it against quiz part (b). 3. A navigator measures $I=70^\circ$. What is the dipole latitude? Near which latitudes does a small error in $I$ matter least? @@ -219,12 +219,6 @@ This relation appears in the optional teachbook box *Connect to magnetic inclina **(e) 3.** $\lambda_m=\arctan\left(\tfrac12\tan70^\circ\right)=\arctan(1.37)=\boxed{53.9^\circ\ \mathrm{N}}$. This is a dipole latitude. The real axis is tilted and the real field has non-dipole parts, so it is not the geographic latitude (teachbook). In the lower-right panel of the explorer, the angle changes fastest with $\theta$ near the equator, where its slope is 2. There a $1^\circ$ error in $I$ shifts the latitude by only $0.5^\circ$. Near the poles the slope drops to $0.5$, and the same error shifts the latitude by $2^\circ$. -**Explorer questions** - -1. The status line shows the quiz values: bracket $(0,2)$ and $59.4\ \mu\mathrm{T}$ out of the ground at $0^\circ$; $(0,-1)$ and $29.7\ \mu\mathrm{T}$ horizontal at $90^\circ$; $(0,2)$ and $59.4\ \mu\mathrm{T}$ into the ground at $180^\circ$; $(-1.50,0.50)$, $47.0\ \mu\mathrm{T}$ and $63.4^\circ$ below the horizontal at $135^\circ$. -2. At Swarm altitude, $(a/r)^3$ drops to $0.816$, so $|\vec B|$ and $B_r$ fall to $38.3\ \mu\mathrm{T}$ and $-34.3\ \mu\mathrm{T}$. The bracket, the arrows and the angle below the horizontal ($63.4^\circ$) do not change: the bracket depends only on directions (W4L2, slide 15). -3. $|\vec B|\propto r^{-3}$, so $\log|\vec B|=\text{const}-3\log r$: a straight line with slope $-3$. It crosses the $1\%$ line at $r/a\approx4.6$, as in quiz part (d). From $r/a=1$ to $2$, $|\vec B|$ drops by a factor of $8$ (W4L2, slide 18). -4. The field is vertical at $\theta=0^\circ$ and $180^\circ$ (angle $\mp90^\circ$) and horizontal at $\theta=90^\circ$. $|\vec B|$ is largest at the poles ($2B_*$) and smallest at the equator ($B_*$). The angle changes fastest near $\theta=90^\circ$, which is why the dip is the most sensitive latitude indicator near the dipole equator (part (e) 3). ### Check your answers with Python ```{code-cell} ipython3 @@ -280,10 +274,15 @@ print("Self-check passed.") The explorer below draws the dipole field lines in the $x$–$z$ plane, oriented as in the lecture ($\hat m=\hat z$ up the page, so the southern end of Earth's axis is at the top). Choose a probe point with $\theta$ and $r/a$. At the probe, the blue, red and black arrows show the head-to-tail construction of the bracket $3(\hat m\cdot\hat r)\hat r-\hat m$. The dashed line is the local horizontal. The lower-left panel shows $|\vec B|$ along the radial line through the probe on log–log axes. The lower-right panel shows the angle below the horizontal and $|\vec B|/B_*$ at the surface as functions of $\theta$. -1. At $r/a=1$, set $\theta=0^\circ$, $90^\circ$, $180^\circ$ and $135^\circ$. Check your answers to quiz parts (a) and (b). +1. At $r/a=1$, set $\theta=0^\circ$, $90^\circ$ and $135^\circ$ to check your answers to quiz parts (a) and (b), then $180^\circ$ to see the northern end. 2. Press *Swarm altitude*. Which numbers change, and which stay the same? Do the arrows at the probe change? (W4L2, slide 15) 3. In the lower-left panel, why is the curve a straight line? Read off where it crosses the $1\%$ line and compare with quiz part (d). By what factor does $|\vec B|$ drop between $r/a=1$ and $2$? (W4L2, slide 18) 4. In the lower-right panel, where is the field vertical, where is it horizontal, and where is $|\vec B|$ largest and smallest? Where does the angle change fastest with $\theta$? Relate this to part (e). + +**1.** The status line shows the quiz values: bracket $(0,2)$ and $59.4\ \mu\mathrm{T}$ out of the ground at $0^\circ$; $(0,-1)$ and $29.7\ \mu\mathrm{T}$ horizontal at $90^\circ$; $(0,2)$ and $59.4\ \mu\mathrm{T}$ into the ground at $180^\circ$; $(-1.50,0.50)$, $47.0\ \mu\mathrm{T}$ and $63.4^\circ$ below the horizontal at $135^\circ$. +**2.** At Swarm altitude, $(a/r)^3$ drops to $0.816$, so $|\vec B|$ and $B_r$ fall to $38.3\ \mu\mathrm{T}$ and $-34.3\ \mu\mathrm{T}$. The bracket, the arrows and the angle below the horizontal ($63.4^\circ$) do not change: the bracket depends only on directions (W4L2, slide 15). +**3.** $|\vec B|\propto r^{-3}$, so $\log|\vec B|=\text{const}-3\log r$: a straight line with slope $-3$. It crosses the $1\%$ line at $r/a\approx4.6$, as in quiz part (d). From $r/a=1$ to $2$, $|\vec B|$ drops by a factor of $8$ (W4L2, slide 18). +**4.** The field is vertical at $\theta=0^\circ$ and $180^\circ$ (angle $\mp90^\circ$) and horizontal at $\theta=90^\circ$. $|\vec B|$ is largest at the poles ($2B_*$) and smallest at the equator ($B_*$). The angle changes fastest near $\theta=90^\circ$, which is why the dip is the most sensitive latitude indicator near the dipole equator (part (e) 3). ```{code-cell} ipython3 :tags: [remove-input] @@ -310,4 +309,110 @@ display({"text/html": ''}, raw=True) ``` + +## 4. Explore a current loop and its dipole field + +Far from a compact current loop, its magnetic field is that of a dipole (W4L2, slide 14). A circular loop carrying current $I$ around an area $A$ has the magnetic moment +```{math} +\vec m = IA\,\hat n, +``` +where $\hat n$ is the normal to the loop given by the right-hand rule: curl the fingers along the current, and the thumb gives $\hat n$. Use $\mu_0 = 4\pi\cdot10^{-7}\ \mathrm{T\,m/A}$. + +Parts (a)–(d) of this exercise are question 4 of the {doc}`week 4 quiz `. Work through them first; the Python cell and the explorer below let you check those answers and extend them to part (e). + +(e) Return to the core loop of quiz part (b). An observer stands on Earth's surface above the northern end of the axis, at distance $z = a$ from the centre of the loop. How large is the error of the dipole formula there? How far from Earth's centre, in units of $a$, would the observer have to be for the dipole formula to be accurate to within $10\%$? What does this tell you about the single-loop picture of the geodynamo? + +**(e)** With $z = a$ and $R_c = 3480\ \mathrm{km}$, $z/R_c = 1.83$ and +```{math} +\frac{B_\mathrm{dip}}{B_\mathrm{loop}} = \left(1+\frac{R_c^2}{a^2}\right)^{3/2} = (1+0.298)^{3/2} = \boxed{1.48}. +``` +At Earth's surface, the dipole formula would be **48% too large** for a single loop the size of the core. From explorer question 4, $10\%$ accuracy needs $z = 3.9\,R_c = 1.36\cdot10^{4}\ \mathrm{km} \approx \boxed{2.1\,a}$. + +So a single loop as large as the core would *not* look like a centred dipole at Earth's surface, yet the observed main field is dominated by its dipole part (teachbook, *Earth as a Magnetic Dipole*). The real geodynamo currents are spread through the core rather than concentrated in one loop at its edge. The single loop in quiz part (b) is therefore only an order-of-magnitude estimate of the current, not a model of its geometry. This is why the teachbook calls the dipole an *equivalent* description of the core currents. + +**Explorer questions** + +1. With $R_L=50\ \mathrm{m}$, $I=10\ \mathrm{A}$ and $z/R_L=2$, the status line gives $B_\mathrm{loop}=11.2\ \mathrm{nT}$, $B_\mathrm{dip}=15.7\ \mathrm{nT}$ and a ratio of $1.40$, as in quiz part (d). +2. A few loop radii away, the solid and dashed lines almost coincide: there the loop is "compact" compared with the distance. They differ most near the wire. The loop's field lines close around the wire, while every dipole line passes through the single point at the centre. Near the loop, its size matters; far away, only its moment $I\pi R_L^2$ does. +3. The ratio curve does not change: $B_\mathrm{dip}/B_\mathrm{loop} = (1+R_L^2/z^2)^{3/2}$ depends only on $z/R_L$. In the lower-left panel both curves shift: at a fixed $z/R_L$ the field scales as $I/R_L$, so a larger current raises the curves and a larger loop lowers them. +4. The ratio drops to $1.1$ at $z/R_L\approx3.9$ (195 m for the survey loop), between the $40\%$ error at $2R_L$ and the $6\%$ error at $5R_L$ found in quiz part (d). Solving $(1+R_L^2/z^2)^{3/2}=1.1$ gives the same value: $z = R_L/\sqrt{1.1^{2/3}-1} = 3.9\,R_L$. At $z/R_L=1.85$ it is about $1.47$, close to the $1.48$ found in part (e) for $z/R_c = 1.83$. +### Check your answers with Python + +```{code-cell} ipython3 +import numpy as np + +mu0 = 4e-7 * np.pi # [T m/A] +a, B_star, R_c = 6371e3, 29.7e-6, 3480e3 # Earth radius [m], B_* [T], outer-core radius [m] + +# (a), (b): Earth's moment and the equivalent core current +m_earth = 4 * np.pi * a**3 * B_star / mu0 # from B_* = mu0 m / (4 pi a^3) [A m^2] +I_core = m_earth / (np.pi * R_c**2) # from m = I * pi R_c^2 [A] +print(f"(a) m = {m_earth:.2e} A m^2 (b) I = {I_core:.2e} A") + +def B_loop_axis(z, I, R): + """Exact field on the axis of a circular loop of radius R [T].""" + return mu0 * I * R**2 / (2 * (R**2 + z**2)**1.5) + +def B_dip_axis(z, m): + """Dipole formula on the axis [T].""" + return mu0 * m / (2 * np.pi * z**3) + +# (c), (d): the survey loop +R_L, I_L = 50.0, 10.0 +m_L = I_L * np.pi * R_L**2 # moment of the survey loop [A m^2] +print(f"(c) m = {m_L:.3g} A m^2") +for z in (100.0, 250.0): # (d): z = 2 R_L and z = 5 R_L + B_ex, B_dp = B_loop_axis(z, I_L, R_L), B_dip_axis(z, m_L) + print(f"(d) at z = {z:.0f} m: exact {B_ex*1e9:.2f} nT, dipole {B_dp*1e9:.2f} nT, " + f"ratio {B_dp/B_ex:.2f}") +z_10 = R_L / np.sqrt(1.1**(2/3) - 1) # height where B_dip / B_loop = 1.1 [m] +print(f" dipole formula within 10% beyond z = {z_10:.0f} m = {z_10/R_L:.1f} R_L") + +# (e): the core loop seen from Earth's surface on the axis +ratio_core = B_dip_axis(a, m_earth) / B_loop_axis(a, I_core, R_c) +print(f"(e) z/R_c = {a/R_c:.2f}: dipole / exact = {ratio_core:.2f}; " + f"10% needs r = {z_10/R_L * R_c / a:.2f} a") + +# self-check +assert np.isclose(m_earth, 7.68e22, rtol=2e-3) and np.isclose(I_core, 2.02e9, rtol=5e-3) +assert np.isclose(m_L, 7.854e4, rtol=1e-3) +assert np.isclose(B_dip_axis(100.0, m_L) / B_loop_axis(100.0, I_L, R_L), 1.398, atol=1e-3) +assert np.isclose(B_dp / B_ex, 1.061, atol=1e-3) # last loop value: z = 250 m +assert np.isclose(z_10, 195.2, atol=0.5) +assert np.isclose(ratio_core, 1.48, atol=0.01) +print("Self-check passed.") +``` + +The explorer below shows a circular loop seen edge-on, with its axis vertical. The upper panel compares the exact field lines of the loop (solid) with those of a point dipole with the same moment (dashed), in units of the loop radius $R_L$. The lower-left panel shows $|\vec B|$ on the axis on log–log axes, for the loop radius and current you choose. The lower-right panel shows the ratio of the dipole formula to the exact field, with a line at $10\%$. + +1. Keep $R_L = 50\ \mathrm{m}$ and $I = 10\ \mathrm{A}$ and set $z/R_L = 2$. Check your answers to quiz part (d). +2. In the upper panel, where do the solid and dashed field lines agree, and where do they differ most? What does "far from a compact loop" (W4L2, slide 14) mean in this picture? +3. Change $R_L$ and $I$. Does the curve in the lower-right panel change? Explain why. What does change in the lower-left panel? +4. Find the value of $z/R_L$ where the ratio drops to $1.1$, so that the dipole formula is accurate to within $10\%$. Compare it with your results at $2R_L$ and $5R_L$ in quiz part (d). Then set $z/R_L \approx 1.85$ to check part (e). +```{code-cell} ipython3 +:tags: [remove-input] + +# The HTML contains all controls and drawing code, with no external dependencies. +# An iframe keeps the explorer independent of the page styles. +import html as html_module +from pathlib import Path +from IPython.display import display + +for _candidate in ( + Path("current_loop_lab.html"), + Path("book/2_potential_fields/labs/week4/current_loop_lab.html"), +): + if _candidate.exists(): + explorer_html = _candidate.read_text() + break +else: + from pyodide.http import pyfetch + _r = await pyfetch("current_loop_lab.html") + explorer_html = (await _r.bytes()).decode() + +display({"text/html": ''}, raw=True) +``` \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_quiz.md b/book/2_potential_fields/labs/week4/week4_quiz.md index e3a88fd..8939fc6 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz.md +++ b/book/2_potential_fields/labs/week4/week4_quiz.md @@ -48,16 +48,46 @@ Far from a compact current system, its magnetic field is that of a dipole (W4L2, ``` For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (called $B_0$ in the teachbook section *Earth as a Magnetic Dipole*). For the present polarity, $\hat m$ points toward the **southern** end of the dipole axis: $\theta=0$ is the southern end, $\theta=\pi$ the northern end, and $\theta=\pi/2$ the dipole equator. +Written in the local directions $\hat r$ (outward) and $\hat\theta$ (tangent to the surface, in the direction of increasing $\theta$), the same field is +```{math} +\frac{\vec B}{B_*} = \left(\frac{R}{r}\right)^3\left(2\cos\theta\,\hat r + \sin\theta\,\hat\theta\right), +\qquad\text{that is}\qquad +B_r = 2B_*\left(\frac{R}{r}\right)^3\cos\theta, +\quad +B_\theta = B_*\left(\frac{R}{r}\right)^3\sin\theta . +``` +You may use either form. + ```{figure} figures/earth_dipole_setup.png :width: 45% Geometry of the dipole model, as in W4L2, slides 17 and 22: $\hat m=\hat z$ points up the page, $\theta$ is measured from $\hat m$, and the grey arrows show $\hat r$ at the points used in (a) and (b). The dashed circle is Earth's surface, $r=a$. ``` -(a) At the surface, $r=a$, find $\vec B/B_*$ at $\theta=0$, $\pi/2$ and $\pi$, and give $|\vec B|$ in $\mu\mathrm{T}$. At each point, determine whether $\vec B$ points into the Earth, out of the Earth or is tangent to the Earth's surface. In which hemisphere does the field enter Earth? +(a) At the surface, $r=a$, find $\vec B/B_*$ at $\theta=0$ and $\pi/2$, and give $|\vec B|$ in $\mu\mathrm{T}$. At each point, determine whether $\vec B$ points into the Earth, out of the Earth or is tangent to the Earth's surface. Using $B_r\propto\cos\theta$, in which hemisphere does the field enter Earth? + +(b) At $r=a$ and $\theta=3\pi/4$ (dipole latitude $45^\circ$ N), construct $\vec B/B_*$ head to tail from $3(\hat m\cdot\hat r)\hat r$ and $-\hat m$ (W4L2, slide 16). Find $|\vec B|$ in $\mu\mathrm{T}$ and the angle between $\vec B$ and the local horizontal. *Hint:* use $\vec B\cdot\hat r=|\vec B|\cos\alpha$, where $\alpha$ is the angle between $\vec B$ and $\hat r$. The local horizontal is perpendicular to $\hat r$, so the angle between $\vec B$ and the horizontal is $|90^\circ-\alpha|$. + +(c) ESA's Swarm satellites measure the Earth's magnetic field at about $450\ \mathrm{km}$ altitude. Consider a point directly above the location in (b), i.e. at the same dipole latitude. What happens to the magnitude $|\vec B|$ and direction of $\vec B$? + +(d) Above the northern end of the dipole axis, at what distance from Earth's centre has the magnetic field magnitude $|\vec B|$ decreased to $1\%$ of its value at Earth's surface ? + +## 4. A current loop as a magnetic dipole +Far from a compact current loop, its magnetic field is that of a dipole (W4L2, slide 14). A circular loop carrying current $I$ around an area $A$ has the magnetic moment +```{math} +\vec m = IA\,\hat n, +``` +where $\hat n$ is the normal to the loop given by the right-hand rule: curl the fingers along the current, and the thumb gives $\hat n$. Use $\mu_0 = 4\pi\cdot10^{-7}\ \mathrm{T\,m/A}$. + +(a) In question 3, the magnetic field at Earth's dipole equator and surface was described by $B_*=\mu_0|\vec m|/(4\pi a^3)\approx 29.7\ \mu\mathrm{T}$, with $a=6371\ \mathrm{km}$. Find Earth's dipole moment $|\vec m|$. -(b) At $r=a$ and $\theta=3\pi/4$ (dipole latitude $45^\circ$ N), construct $\vec B/B_*$ head to tail from $3(\hat m\cdot\hat r)\hat r$ and $-\hat m$ (W4L2, slide 16). Find $|\vec B|$ in $\mu\mathrm{T}$ and the angle between $\vec B$ and the local horizontal. *Hint:* use $\vec B\cdot\hat r=|\vec B|\cos\alpha$, where $\alpha$ is the angle between $\vec B$ and $\hat r$. +(b) Earth's field is generated by electric currents in the liquid outer core (the geodynamo). As a size estimate, replace these currents by a single circular loop in the dipole's equatorial plane, with the radius of the outer core, $R_c = 3480\ \mathrm{km}$. What current $I$ is needed? Seen from above the northern end of the dipole axis, does the current circulate clockwise or counterclockwise? *Hint:* Use the right-hand rule: point your right thumb in the direction of $\hat m$, toward the southern end of Earth's dipole axis. Your curled fingers show the direction of the current. -(c) ESA's Swarm satellites measure the Earth's magnetic field at about $450\ \mathrm{km}$ altitude. Consider a point directly above the locaion in (b), i.e. at the same dipole latitude. What happens to the magnitude $|\vec B|$ and direction of $\vec B$? +(c) A geophysicist lays out a circular wire loop of radius $R_L = 50\ \mathrm{m}$ on flat ground and drives a current $I = 10\ \mathrm{A}$ through it. Find its magnetic moment. On the axis of the loop, at height $z$ above its centre, the exact field is (you do not need to derive it) +```{math} +B_\mathrm{loop}(z) = \frac{\mu_0 I R_L^2}{2\left(R_L^2+z^2\right)^{3/2}}. +``` +Starting from the exact loop field, show that when $z \gg R_L$, the field reduces to the dipole field on the axis $B_\mathrm{dip}(z)=\dfrac{\mu_0|\vec m|}{2\pi z^3}$ (corresponding to $\theta=0$ case of question 3). -(d) Above the northern end of the dipole axis, at what distance from Earth's centre has the magnetic field magnitude $|\vec B|$ decreased to $1\%$ of its value at Earth's surface ? \ No newline at end of file +(d) Find $B_\mathrm{loop}$ and $B_\mathrm{dip}$ in nT at $z = 100\ \mathrm{m}$ $(=2R_L)$ and at $z = 250\ \mathrm{m}$ $(=5R_L)$. By how many percent does the dipole formula overestimate the field at each height? Based on these results, for what approximate values of $ z/R_L $ does the dipole approximation become reasonably accurate? *Hint:* $B_\mathrm{dip}/B_\mathrm{loop} = \left(1+R_L^2/z^2\right)^{3/2}$. + \ No newline at end of file diff --git a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md index bf790cb..c91ee7b 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md @@ -1,4 +1,4 @@ -# Quiz Week 4 (Solutions) +# Quiz Week 4 ## 1. Earth-ionosphere system @@ -90,18 +90,14 @@ Cosmic rays continuously ionise the air, producing free electrons and positive i (a) Sketch the equipotentials and field lines for $0 \leq z \leq 10\ \mathrm{m}$. What is the electric potential $V$ at $z = 2\ \mathrm{m}$, given the reference $V(0) = 0$ ? -(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. - -(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? - -(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? - **(a)** The equipotentials are horizontal planes spaced evenly: every metre up adds $100\ \mathrm{V}$. The field lines are vertical, point downward and are equally spaced, so the field is uniform. At head height, ```{math} V(2\ \mathrm{m}) = E_0 z = (100)(2) = \boxed{200\ \mathrm{V}}. ``` The potential increases upward, while $\vec{E}$ points down, from high to low potential. +(b) An electron ($q=-e$) and an $\mathrm{N_2^+}$ ion ($q=+e$) are each moved from the ground to $z = 10\ \mathrm{m}$. For each, find $\Delta V$, $\Delta U$ (in J and in eV) and the work done by the field, $W_\mathrm{field}$. + **(b)** The potential difference does not depend on the test charge: ```{math} \Delta V = V(10\ \mathrm{m}) - V(0) = \boxed{1000\ \mathrm{V}}. @@ -115,11 +111,15 @@ Using $\Delta U = q\Delta V$ and $W_\mathrm{field} = -\Delta U$ (W4L1, slide 13) Moving up the electron *loses* potential energy, because the field does positive work on it. The ion *gains* potential energy, because the field works against the motion. Same $\Delta V$, opposite energies. +(c) Both particles are released from rest. Which one accelerates upward? In which direction does the resulting current flow? + **(c)** The force is $\vec{F} = q\vec{E} = q(-E_0\hat{z})$. - Electron: $\vec{F} = (-e)(-E_0\hat{z}) = +eE_0\hat{z} = +1.6\cdot 10^{-17}\ \mathrm{N}\,\hat{z}$. It **accelerates upward**, toward lower potential energy. - Ion: $\vec{F} = -eE_0\hat{z}$. It accelerates downward. Positive charge moving down and negative charge moving up both give a **downward** current. This is the small fair-weather current of the global atmospheric electrical circuit, which flows downward through fair-weather regions because air is a poor, but not perfect, insulator. Thunderstorms help maintain the potential difference between the upper atmosphere and the ground that drives it (W4L1, slide 16). +(d) A Saharan dust grain (radius $1\ \mu\mathrm{m}$, density $2650\ \mathrm{kg/m^3}$) carries a negative charge. How many excess electrons does it need for the electric force to balance gravity? Does the answer depend on its height in this model? + **(d)** The mass of the grain is ```{math} m = \tfrac{4}{3}\pi a^3 \rho = \tfrac{4}{3}\pi (10^{-6})^3 (2650) = 1.11\cdot 10^{-14}\ \mathrm{kg}. @@ -130,7 +130,6 @@ A negative charge feels an upward force (see (c)), so it can balance gravity whe \qquad N = \frac{|q|}{e} \approx \boxed{6.8\cdot 10^{3}\ \text{electrons}}. ``` In this model, $\vec{E}$ is uniform, so the answer **does not depend on height**. The linear potential is only valid near the ground (W4L1, slide 17). In real dust storms, the field near the ground can be much stronger than $E_0$, so far less charge is needed. - ## 3. Earth's magnetic field Far from a compact current system, its magnetic field is that of a dipole (W4L2, slides 14–15). Earth's main field is modelled as a dipole at Earth's centre. As in the lecture, let $\hat m=\hat z$, let $\theta$ be the angle measured from $\hat m$, and work in the $x$–$z$ plane with $\hat r=\sin\theta\,\hat x+\cos\theta\,\hat z$ (slide 22). The field is ```{math} @@ -139,25 +138,30 @@ Far from a compact current system, its magnetic field is that of a dipole (W4L2, ``` For Earth, take $R=a=6371\ \mathrm{km}$ and $B_*\approx 29.7\ \mu\mathrm{T}$ (called $B_0$ in the teachbook section *Earth as a Magnetic Dipole*). For the present polarity, $\hat m$ points toward the **southern** end of the dipole axis: $\theta=0$ is the southern end, $\theta=\pi$ the northern end, and $\theta=\pi/2$ the dipole equator. +Written in the local directions $\hat r$ (outward) and $\hat\theta$ (tangent to the surface, in the direction of increasing $\theta$), the same field is +```{math} +\frac{\vec B}{B_*} = \left(\frac{R}{r}\right)^3\left(2\cos\theta\,\hat r + \sin\theta\,\hat\theta\right), +\qquad\text{that is}\qquad +B_r = 2B_*\left(\frac{R}{r}\right)^3\cos\theta, +\quad +B_\theta = B_*\left(\frac{R}{r}\right)^3\sin\theta . +``` +You may use either form. + ```{figure} figures/earth_dipole_setup.png :width: 45% Geometry of the dipole model, as in W4L2, slides 17 and 22: $\hat m=\hat z$ points up the page, $\theta$ is measured from $\hat m$, and the grey arrows show $\hat r$ at the points used in (a) and (b). The dashed circle is Earth's surface, $r=a$. ``` -(a) At the surface, $r=a$, find $\vec B/B_*$ at $\theta=0$, $\pi/2$ and $\pi$, and give $|\vec B|$ in $\mu\mathrm{T}$. At each point, does the field point out of the ground, into it, or along it? In which hemisphere does the field enter Earth? - -(b) At $r=a$ and $\theta=3\pi/4$ (dipole latitude $45^\circ$ N), construct $\vec B/B_*$ head to tail from $3(\hat m\cdot\hat r)\hat r$ and $-\hat m$ (W4L2, slide 16). Find $|\vec B|$ in $\mu\mathrm{T}$ and the angle between $\vec B$ and the local horizontal. *Hint:* use $\vec B\cdot\hat r=|\vec B|\cos\alpha$, where $\alpha$ is the angle between $\vec B$ and $\hat r$. - -(c) ESA's Swarm satellites measure the field at about $450\ \mathrm{km}$ altitude. What is $|\vec B|$ directly above the point in (b)? Does the direction of $\vec B$ change? - -(d) At what distance from Earth's centre, above the northern end of the axis, has $|\vec B|$ dropped to $1\%$ of its surface value? +(a) At the surface, $r=a$, find $\vec B/B_*$ at $\theta=0$ and $\pi/2$, and give $|\vec B|$ in $\mu\mathrm{T}$. At each point, determine whether $\vec B$ points into the Earth, out of the Earth or is tangent to the Earth's surface. Using $B_r\propto\cos\theta$, in which hemisphere does the field enter Earth? **(a)** At $r=a$ the factor $(R/r)^3$ equals 1. - $\theta=0$: $\hat r=\hat z$, $\hat m\cdot\hat r=1$, so $\vec B/B_*=3\hat z-\hat z=2\hat z=2\hat r$. The field points **out of the ground**, with $|\vec B|=2B_*=\boxed{59.4\ \mu\mathrm{T}}$. - $\theta=\pi/2$: $\hat r=\hat x$, $\hat m\cdot\hat r=0$, so $\vec B/B_*=-\hat z$. The field is **along the ground** (horizontal), pointing from the southern toward the northern end of the axis, with $|\vec B|=B_*=\boxed{29.7\ \mu\mathrm{T}}$. -- $\theta=\pi$: $\hat r=-\hat z$, $\hat m\cdot\hat r=-1$, so $\vec B/B_*=3(-1)(-\hat z)-\hat z=2\hat z=-2\hat r$. The field points **into the ground**, with $|\vec B|=\boxed{59.4\ \mu\mathrm{T}}$. -The field leaves Earth in the southern hemisphere and **enters Earth in the northern hemisphere**. The field at the poles is twice as strong as at the equator (W4L2, slide 17). +Since $B_r=2B_*\cos\theta$, the radial component is positive (outward) for $\theta<\pi/2$ and negative (inward) for $\theta>\pi/2$. The field therefore leaves Earth in the southern hemisphere and **enters Earth in the northern hemisphere**; at $\theta=\pi$ it is $2\hat z=-2\hat r$, the mirror image of $\theta=0$. The field at the poles is twice as strong as at the equator (W4L2, slide 17). + +(b) At $r=a$ and $\theta=3\pi/4$ (dipole latitude $45^\circ$ N), construct $\vec B/B_*$ head to tail from $3(\hat m\cdot\hat r)\hat r$ and $-\hat m$ (W4L2, slide 16). Find $|\vec B|$ in $\mu\mathrm{T}$ and the angle between $\vec B$ and the local horizontal. *Hint:* use $\vec B\cdot\hat r=|\vec B|\cos\alpha$, where $\alpha$ is the angle between $\vec B$ and $\hat r$. The local horizontal is perpendicular to $\hat r$, so the angle between $\vec B$ and the horizontal is $|90^\circ-\alpha|$. **(b)** At $\theta=3\pi/4$: $\hat r=\tfrac{1}{\sqrt2}(\hat x-\hat z)$ and $\hat m\cdot\hat r=\cos\tfrac{3\pi}{4}=-\tfrac{1}{\sqrt2}$. Then ```{math} @@ -173,20 +177,32 @@ For the direction, $\vec B\cdot\hat r=B_*\tfrac{1}{\sqrt2}\left(-\tfrac32-\tfrac ```{math} \cos\alpha=\frac{-\sqrt2}{1.58}=-0.894,\qquad \alpha=153.4^\circ. ``` -$\vec B$ makes $153.4^\circ-90^\circ=\boxed{63.4^\circ}$ with the horizontal and points **into the ground** ($\vec B\cdot\hat r<0$). It is twice as steep as the $45^\circ$ radius. +Because $\hat r$ points outward, $\alpha>90^\circ$ already tells us that the radial component is inward: the field points **into the ground**, as it must in the northern hemisphere by part (a). + +$\hat r$ is the local vertical, so an angle measured from $\hat r$ and an angle measured from the local horizontal are complements. The field therefore lies +```{math} +|90^\circ-153.4^\circ|=\boxed{63.4^\circ} +``` +below the horizontal. Note that $\tan I=|B_r|/B_\theta=2\tan\lambda_m$: at dipole latitude $45^\circ$ it is the *tangent* of the inclination that is doubled, not the angle. That relation is derived in lab exercise 3(e). + +The component form gives the same result in one step: $B_r/B_*=2\cos\tfrac{3\pi}{4}=-\sqrt2$ and $B_\theta/B_*=\sin\tfrac{3\pi}{4}=\tfrac{1}{\sqrt2}$, so $|\vec B|=B_*\sqrt{2+\tfrac12}=1.58\,B_*$ and $\tan I=|B_r|/B_\theta=2$, i.e. $I=63.4^\circ$ below the horizontal. ```{figure} figures/earth_dipole_vectors_solution.png :width: 95% -Left: $\vec B/B_*$ at the four points of (a) and (b), drawn with one arrow scale (compare W4L2, slide 17). Right: the head-to-tail construction at $\theta=3\pi/4$ (compare slide 16). The field points into the ground, $63.4^\circ$ below the local horizontal. +Left: $\vec B/B_*$ at the points of (a) and (b), together with the northern end, drawn with one arrow scale (compare W4L2, slide 17). Right: the head-to-tail construction at $\theta=3\pi/4$ (compare slide 16). The field points into the ground, $63.4^\circ$ below the local horizontal. ``` +(c) ESA's Swarm satellites measure the Earth's magnetic field at about $450\ \mathrm{km}$ altitude. Consider a point directly above the location in (b), i.e. at the same dipole latitude. What happens to the magnitude $|\vec B|$ and direction of $\vec B$? + **(c)** The bracket depends only on directions; the distance enters only through $(R/r)^3$ (W4L2, slide 15). With $r=6371+450=6821\ \mathrm{km}$, ```{math} |\vec B|=47.0\ \mu\mathrm{T}\times\left(\frac{6371}{6821}\right)^3=47.0\times0.815=\boxed{38.3\ \mu\mathrm{T}}. ``` The **direction does not change**: at the same $\theta$, $\hat r$ and the bracket are the same. +(d) Above the northern end of the dipole axis, at what distance from Earth's centre has the magnetic field magnitude $|\vec B|$ decreased to $1\%$ of its value at Earth's surface ? + **(d)** Along the axis, $|\vec B|=2B_*(a/r)^3$, so the ratio to the surface value is $(a/r)^3$: ```{math} \left(\frac{a}{r}\right)^3=0.01 @@ -194,4 +210,70 @@ The **direction does not change**: at the same $\theta$, $\hat r$ and the bracke r=100^{1/3}a=4.64\,a\approx\boxed{2.96\cdot10^{4}\ \mathrm{km}}. ``` Each doubling of the distance reduces the field by a factor of 8 (W4L2, slide 18), and $2^{2.2}\approx4.6$. The same distance holds at every $\theta$, because the ratio depends only on $r$. - \ No newline at end of file + + +## 4. A current loop as a magnetic dipole + +Far from a compact current loop, its magnetic field is that of a dipole (W4L2, slide 14). A circular loop carrying current $I$ around an area $A$ has the magnetic moment +```{math} +\vec m = IA\,\hat n, +``` +where $\hat n$ is the normal to the loop given by the right-hand rule: curl the fingers along the current, and the thumb gives $\hat n$. Use $\mu_0 = 4\pi\cdot10^{-7}\ \mathrm{T\,m/A}$. + +(a) In question 3, the magnetic field at Earth's dipole equator and surface was described by $B_*=\mu_0|\vec m|/(4\pi a^3)\approx 29.7\ \mu\mathrm{T}$, with $a=6371\ \mathrm{km}$. Find Earth's dipole moment $|\vec m|$. + +**(a)** Rearranging $B_*=\mu_0|\vec m|/(4\pi a^3)$, +```{math} +|\vec m| = \frac{4\pi a^3 B_*}{\mu_0} += \frac{4\pi (6.371\cdot 10^{6})^3 (29.7\cdot 10^{-6})}{4\pi\cdot 10^{-7}} += \boxed{7.7\cdot 10^{22}\ \mathrm{A\,m^2}}, +``` +which is the accepted value for Earth's dipole moment. + +(b) Earth's field is generated by electric currents in the liquid outer core (the geodynamo). As a size estimate, replace these currents by a single circular loop in the dipole's equatorial plane, with the radius of the outer core, $R_c = 3480\ \mathrm{km}$. What current $I$ is needed? Seen from above the northern end of the dipole axis, does the current circulate clockwise or counterclockwise? *Hint:* Use the right-hand rule: point your right thumb in the direction of $\hat m$, toward the southern end of Earth's dipole axis. Your curled fingers show the direction of the current. + +**(b)** The loop area is $A=\pi R_c^2=\pi(3.48\cdot 10^{6})^2=3.81\cdot 10^{13}\ \mathrm{m^2}$, so +```{math} +I = \frac{|\vec m|}{A} = \frac{7.68\cdot 10^{22}}{3.81\cdot 10^{13}} += \boxed{2.0\cdot 10^{9}\ \mathrm{A}} \approx 2\ \mathrm{GA}. +``` +$\hat m$ points toward the **southern** end of the dipole axis (question 3). Pointing the right thumb that way, the fingers curl so that the current runs **clockwise seen from above the northern end** of the axis. + +Two billion amperes is enormous for a single wire, but the geodynamo is a broad, distributed flow of conducting liquid iron, not one loop. The estimate gives the right order of magnitude for the total circulating current. + +(c) A geophysicist lays out a circular wire loop of radius $R_L = 50\ \mathrm{m}$ on flat ground and drives a current $I = 10\ \mathrm{A}$ through it. Find its magnetic moment. On the axis of the loop, at height $z$ above its centre, the exact field is (you do not need to derive it) +```{math} +B_\mathrm{loop}(z) = \frac{\mu_0 I R_L^2}{2\left(R_L^2+z^2\right)^{3/2}}. +``` +Starting from the exact loop field, show that when $z \gg R_L$, the field reduces to the dipole field on the axis $B_\mathrm{dip}(z)=\dfrac{\mu_0|\vec m|}{2\pi z^3}$ (corresponding to $\theta=0$ case of question 3). + +**(c)** The moment of the field loop is +```{math} +|\vec m| = IA = I\pi R_L^2 = (10)\pi(50)^2 = \boxed{7.9\cdot 10^{4}\ \mathrm{A\,m^2}}. +``` +Factor $z^3$ out of the exact expression: +```{math} +B_\mathrm{loop}(z) = \frac{\mu_0 I R_L^2}{2\left(R_L^2+z^2\right)^{3/2}} += \frac{\mu_0 I R_L^2}{2z^3\left(1+R_L^2/z^2\right)^{3/2}}. +``` +For $z \gg R_L$ the bracket tends to 1, and writing $I R_L^2 = |\vec m|/\pi$, +```{math} +B_\mathrm{loop} \to \frac{\mu_0 I R_L^2}{2z^3} = \boxed{\frac{\mu_0|\vec m|}{2\pi z^3} = B_\mathrm{dip}(z)}, +``` +the on-axis dipole field, which is the $\theta=0$ case of question 3. The loop only looks like a dipole from far enough away that its size no longer matters. + +(d) Find $B_\mathrm{loop}$ and $B_\mathrm{dip}$ in nT at $z = 100\ \mathrm{m}$ $(=2R_L)$ and at $z = 250\ \mathrm{m}$ $(=5R_L)$. By how many percent does the dipole formula overestimate the field at each height? Based on these results, for what approximate values of $ z/R_L $ does the dipole approximation become reasonably accurate? *Hint:* $B_\mathrm{dip}/B_\mathrm{loop} = \left(1+R_L^2/z^2\right)^{3/2}$. + +**(d)** Using the two expressions directly: + +| $z$ | $z/R_L$ | $B_\mathrm{loop}$ | $B_\mathrm{dip}$ | overestimate | +|---|---|---|---|---| +| $100\ \mathrm{m}$ | 2 | $11.2\ \mathrm{nT}$ | $15.7\ \mathrm{nT}$ | $40\%$ | +| $250\ \mathrm{m}$ | 5 | $0.95\ \mathrm{nT}$ | $1.01\ \mathrm{nT}$ | $6\%$ | + +The hint gives the error directly, since +```{math} +\frac{B_\mathrm{dip}}{B_\mathrm{loop}} = \left(1+\frac{R_L^2}{z^2}\right)^{3/2} +\approx 1 + \frac{3}{2}\frac{R_L^2}{z^2} \quad (z \gg R_L), +``` +so the overestimate falls off as $(R_L/z)^2$: $40\%$ at $z/R_L=2$, $6\%$ at $5$, $1.5\%$ at $10$ and $0.4\%$ at $20$. The dipole formula is therefore **reasonably accurate for $z/R_L \gtrsim 5$**, and good to about a percent for $z/R_L \gtrsim 10$. The same rule of thumb is why Earth's field is well described by a dipole at satellite altitude, but not close to the core. From 2b1f68b729cbe0630225d99c5c14ce45b8d91005 Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Fri, 25 Sep 2026 11:08:49 +0200 Subject: [PATCH 11/13] changed title --- book/2_potential_fields/labs/week4/week4_quiz_solutions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md index c91ee7b..a854b6f 100644 --- a/book/2_potential_fields/labs/week4/week4_quiz_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_quiz_solutions.md @@ -1,4 +1,4 @@ -# Quiz Week 4 +# Quiz Week 4 (Solutions) ## 1. Earth-ionosphere system From 38d7ff96e434496186eeff54716af014e02e7d96 Mon Sep 17 00:00:00 2001 From: paulinaSwi Date: Fri, 25 Sep 2026 11:24:37 +0200 Subject: [PATCH 12/13] updated solutions structure --- .../labs/week4/week4_exercises_solutions.md | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md index 34ab76e..f822af3 100644 --- a/book/2_potential_fields/labs/week4/week4_exercises_solutions.md +++ b/book/2_potential_fields/labs/week4/week4_exercises_solutions.md @@ -195,6 +195,8 @@ Parts (a)–(d) of this exercise are question 3 of the {doc}`week 4 quiz Date: Fri, 25 Sep 2026 11:28:08 +0200 Subject: [PATCH 13/13] made solutions invisible --- book/_toc.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/book/_toc.yml b/book/_toc.yml index f7fad1c..8dd8c38 100644 --- a/book/_toc.yml +++ b/book/_toc.yml @@ -66,9 +66,9 @@ parts: - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes.md - file: 2_potential_fields/labs/week3_gravity_and_potential/week3_exersizes_solutions.md - file: 2_potential_fields/labs/week4/week4_quiz.md - - file: 2_potential_fields/labs/week4/week4_quiz_solutions.md + # - file: 2_potential_fields/labs/week4/week4_quiz_solutions.md - file: 2_potential_fields/labs/week4/week4_exercises.md - - file: 2_potential_fields/labs/week4/week4_exercises_solutions.md + # - file: 2_potential_fields/labs/week4/week4_exercises_solutions.md # - file: 2_potential_fields/gradient_fields.md # - file: 2_potential_fields/divergence_free_fields.md # - file: 2_potential_fields/curl_free_fields.md