From fa8cce0c34c2d54d2ce9010b5cc690ba6484e890 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 24 May 2026 15:00:38 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 24 15:00:38. --- .../20260524/20260524150002-Binary.backup | Bin 0 -> 256143 bytes .../20260524/20260524150002-Config.rsc | 3453 +++++++++++++++++ .../20260524/20260524150002-Diff-Config.rsc | 12 + 3 files changed, 3465 insertions(+) create mode 100644 MikroMaster/20260524/20260524150002-Binary.backup create mode 100644 MikroMaster/20260524/20260524150002-Config.rsc create mode 100644 MikroMaster/history/20260524/20260524150002-Diff-Config.rsc diff --git a/MikroMaster/20260524/20260524150002-Binary.backup b/MikroMaster/20260524/20260524150002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..9cc229fc810191b6da15f85c5d722fa6cd948f37 GIT binary patch literal 256143 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/Q`3o{D3`VoK9#4v&Ang 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 z zngEb!=J5l6LDAktHzOq6aM*vHi_z*Kh+Gp8w~R56{2<}mOrv5;eDuH>??Rm9P<32v`WslWzAXP1ahz4_8hkP^>E+_ zH;as6GvW`Q%$SMiE|BmNcnK-70;TPJT8G&VPB-o!ZabODCP@40jFg+7yO=2py@#7$;BMxs`y(pY*hP13H6)8 znWYysP+pUx5%>kBUT_A!iA^D!IT}-$0^4D-b$a2b0Zwr`v|uF|4QTHnWzN>RxeLEK zJ}(|rEu$?*(CD{VCr18JjM`}AoUAskc+PE&uWuA0@NDZ zgWHo?*$SnGSQKqsI7dmWcn?x&!4}m+(4#K7#`^tOBrdGGS%x{eDUVQOX-WS3~^Ec<Av7dk^ z=>8a@3)lR$D%z!=itmB$ed2+b=ug7pPC3nMOZmbs9?A+aEr7rlQ0hk{0XGpS`2A0> z*}~mUleMoUd7NCp#sEm=Q08@ok1;45`TUmd6u=(=Q^-W4ll4`ALPE z;@!j>uujRiD1;$=^4v_-corD+4{yZ0%ZxzNy9{{f@i05KYI(sCf^ZL2d@Ua53~gAf zWpmAHF$Iv#b%ZU+=(cgGkN(1G{|z%(iV@|~`Em>zRIX7Nik{l20lX=x|50Z{Jle@n z^2Kr!uu=Vf`BcaoIm1#b!mMCIMyH5#&v!UyQwZt}x8KyVD%JA&(T=E;BZY@@=35d# zP!8s-ohx}M^1=Yx`ZHO_KQRbLO>m=69v@wS38C-8G$`#1AIKZaN!B`tSWr6X#=YB@ z3-T^ZT~VCpe?v}1&Y(Y&>@4P+{>xWgD|?OzD0<87p0a+D3aLsaV4T`7mXML+)cOi< zePgAChIl!x@)PKNL|X&%8a*k`|{S!LGYmT14x16Y%c`gk_@$0Om9D{(y9x_ zZU*@(mOpoYR}B7~F3yVf0kAeaNU6z0}`*PLEN3T zOxlWzp!c<7;dvlNLlqER3+57CEFflULOH^}`i#;$eUg`VR(U?QqYGdm3{wX8pHDf4 zT6}$LecDOY%OTg=I19D8+S?OpDZy0U*A_a955(9ut-F0WJN0y#+K_^NZf=MffwzUP zmTx`t5?zkeBRKj(ZXb|eS|ixNw!G3I#u90B^R6qv{H#^W^pHrwd(E8VCk3xVv$S8z zKosJmc{k|H=;8O&kM>5r6LRt+Lo+7GETcEZh5fqshOK@rFPpryuwR!~3F|cu)Kt}? z{wKCI0o)Mw_1*zx7Mcl{4ROKy*-62JaLR|h^xqPXoH#HDk*)a9F0S(i#H(o@j&Hu< zckL4PLNeU!=te!}j1HTiVyL?A=bi+Rl@YHj`C!SC3+h5t-tBIm&OPTL?uNgYC<$72 z4Qg`TA^IE$I~T6zku;sJqU2@Y7Jap%ZCNMCjeZ=@rlw7g0mzfUr!HwV?&EWtN9g9v zrU-sJE>}SZ4?d#w=9|m*n<0HAfrj#cXCpnfQ z@UG9u<6L?oxAeW?wv*$bz#%VJsi@h?8Ux;W5G~bm^>4mR4Uipj|H8hUJW1OJp|Y{ z{dXmg&E1hlRAPZq6+X@D{qqh#?jiSgBQhHtG*Gd3bkK7N&0GW{(P!=3$E^}yAdx?X zY^{n4PBc-hb7?|&8S%BOS8?Pnr}Ky(D9%D|o-Lue^Je|ypExs6hj#+z8_%IjU1K`P zs#)O00hdvz>%tSU(_T?wF{C#syV;;sfHO0Nh>&ni!UbRbOT)6eVONi(Xe8}bol*lC z%tnj)urhzEMsqvM{YYJytSFf*N zmhNcrg0qODrg~~zQysHnH{?8Q<8HUo-))~B%IX3l)dAsfWk^76bMORR1qsDAjb^^- zpa*nOm%2-Nx5V_=YXwy_W_0=u89tIZrcKj&8aP^PqUhAprmzkf#axVJ8$RNM>Z!qa zPQ5-m%t3O{$!c3^v}EFWtk?FAPSjrs#tCIU=W7t*)hp{_l0TJhNMS@n&pnz`RYgqS z5_eCtet;T5U_;vwh=noe*|*dugjDaCCr)Y)N&qCF{2?|A2&%84HR;U`WiGS|3sp0@ zSGxe`&yhK@{1g@}@*vzI$U;JipbPfgF*k6HVPK`@a7I zsz6%xjD(yEsBcb0yY&khyg0agt5l~ns?NhxfXcyk&Q9k2R*h#F?Eg_N8OR=5*lK4g z&-DHD4!`qL<$==lJdZJZG?+zM^VOf73+hP$Tmb(+0Kml(qxF5KN}DOib3)%&9ap6^ ztu@JZOnt3AwOQ@Co?BUroiq;Fw{idMPqx#T4uHpS_wB*ClGHvJN1KDbPJdGJBS3S` zcE?ex5fv~RMb4C+Yz^MZ!ha0lSPsapzGcHtZb4*lvF=HTsEn!j(zzdL->dn16^E8+ z7X24Gd@yPBl`VV2#HSYPYejMK?LwrZ;3t*KFR-0*nx4~xj#S|>VNI%(07I|D2a$?r z8bx#dDl*uFYA(6zS~AqUJ1MVe0NvtYAI1}?TUw1Ne36$h!%z6abl}2mbU%HA z3G~z0$7bgunW{bz-}4yhJ)N8!vSaFwOo)o}CiolYTjL$b-caFV(mCr@9>Cv-f8?>? zFYEgqxRtFuck$4_mX}Gq86_niaSd}$fW~my($l2;2qONF02&>0l|3ld7w^`HG`KKs zYUj)wQ%tv&q>5E9?I^S9mJ(5B5jc8pZ#q1%d;1#A`~HO!?x?7H-vZ#aJ*~Ly(v>or zVT&*AKBIi8>aUi6tER<2u6w*&T@vqj8(_s|OyRT3w{c3i`NfEXJP9w>UfwqgI(}O#97Pcx4f~;rg6jR{KV&( z_4%@hHB$`x>JHWO2(@2H^it#`n4X=D)k#Xj8>0$h-7q_*QKOR8GTLkGt6YU=9U~NkX+9By`*{^9@KMYwDhq=%#J5Y6RbShOR)uQ z|&Nn4B8-vy5S2n@*j(vn=~Q|Mn$9-gSR7e zRwLr_CPznxt_|Vk>~!H6tz;td>rPE*{!sCih#?P?>35@Vf@wTZ_V84za>DtIaUg(z$GOHptDMyTK)Sa+W?7bl6WdzmHaN&ri+EojFUw^-RuU+t)|Td1!4p6QMnt7(QP+LP^Q-^p<8A+I@ta zy0WBWnPJ>N7o*=VFpC{~7G9ox<^B?KFnm1)bHnfrH4*LdwH+jA3(ijsqpTAzo8woo zB0|OP(uOAlD;vbH_0&BmJ_!!K{eo$(^{}(w1kie%$(|nZT{PTRohr8CyxH&8q`WXES z=*`z)D0m@C-OcOBsiSLVvj4Gn6Q^ELt@VP>ibug+mHasJoqBcHAX~nM&FY=&Gy)hL z8WGiicUm7B(cq1q7%vz1Y`=!!Q8mbz+@Am4L|QHcx|EkU?;_rQ3r>ob@Lbh1mpx$r z)zlq&&^?df+()XF2}g}NFI%m4OLvG6{||VFvx;ed>~*AHh7{KY(?=pjPr$_HD$ihX znnW=7?Z%gu${l~Kp@KLQ7<>n$0_9A)}l1FB! zG)3?eX~WsA5JVoNKL-5^W}4a4;$}%NQ;|PqZpQ65vUrM687hyaY%IGoKyC-=8trT` zyDUKHGDz+$L9I7B4SPvTGQ8baP7-7E*_nb;2PHjmDY#3`SVS>q5%C`%qD^d5v{Qm| z_)0aum65A~7}_mWKJL`tU%g!GbNpWXVbO5}ecS$5Z-n$=O4KKlV%)>x3P-6%`}xPN zRP}yv?QVgdVK+pK2c2d4D>=OC$6jdFXOSMHREisTB;8eb_S&Lq)`QzUS~jeNJ=x;B z{tvWZB$by;@$-naGA@h`80xEBx|T$C7e0cF4V~Tq6CbfI&8&GSft7?7Cdqj)6N{^h z>BZU=E^}lF+=p=vFn|NM8Bzx9Ua1P9RQJS0Mf0EMiU)h{*%uejC0gSo8V{AI!4!rs z>^2?ZPk3Fu^3^n${#ezGsVx0D#&wEo3Mmk~xdIo-s&1;gd+XZHj{K--_~HrkA``>1 zk!O_G{=!-|d(X@90Nqwv&~0P(F#-F`=rYj6Ip*P4dOkEa7b+bJ3JNU0R*4(D{x_&e zY%i+a*wVZ65|z_uoj9T7n3ZbR@FN)t@XC3&ZSS;O#cgofK_R0?eYsgB$cKSd3L@sR z@lWwpAB=ZVu~l7SBq{G^_hnf)s^*e0KA#jBYi-iiM#*gYs)NBW#1Xn`QF=sV*hTv> zPPlY6Gk8**y%ePHO(*jV`D1_bQD-drL`OSIt?kysmS8llEcWdHo4P2oZ^qbqPM1@M z0(WRDJ&FVwo2GJ#=ss#$uY6DcS=HNn@OnqJ1C2F^Sd@yn$D@#u;;7I?g9lm$4nQ zzaDTlgfEd1%1&=7>`m#SMsmuiJiLAvO&=M@s`rbN&)4RDQTWn(e&(}+1GkwW2q;|@ zYZM2w@P4y4Xm>fblOa2oy1u`HD|MupnzqcRnU&6A*Vp-CxkujYr9gALs%NLK|KCML zNOVmnD4@oQ9A$pAr#1b}Ow9?_tAM`XvU{|hF>%OW*lEE_O;|A$hHEHnQ`@K1Z~uBl zM{V|aBh)&1J)S@?K;^Wrt=XV)FXE#8)f2#=whmtv0I=_E8pf2YcQ$r)_FLzDC_6iY zug{h6Za&fd3MnPJCtnye66JIdoo z@}rl2_BwiBEPlCgo1&+xIMt+*g2<6N&$U{c*sdtXSn7)?Fle;VyeR)?+uzar#->;0 z?ZzVU{i`uy1*;FOHvzIt2IZcLt8n5eAC@<6%a9aW%ct(B5}d-v?P!+2W}1Q3Wn>bk zL&q?Ng+P^UnDE*no3_iEyrT;>d3g38>}d%#(KNp5?m2-95yz>XAKpU~w}BBTAEX&+ zQYT868ZlCv{qe#=x7;48F0M~g_G|4l()oh*aU;NTt)3uK%9C6iJ56^{p-Ow7EdwYI zTRN>;5GU$orm$C!6KtIiVVACRtxIETN0qGMAcPNK9-Tbs4N~}_GBRVC#Jv8DnQWu~ytnwrf_KCZKKNLqr|83`dp<52~gDW@^%;&r&fSv@$*(Yz_m%GkrEnVQ!;8 zHpYgksRoFS{n90YF|uL%N<>KDD*P6Vu#v2`uFrLZ1Fvfky-A?N5!;Z7 zET`fr7fkEeQgF_D@#(0iS=AapEx{Z7bddoEf{DwZ|kCjV-KrrIwUQTx` z!p|36T%`O!{YZU=?LoASs4VSI_o%4xe^mDVHDl4sag4)v9dxH$OW`t#gvNlo+ZkG> zJ}uqKzl9q?@gfl63;W#JeRpjaVv?chqZ6vu&BDADgfIPBj*ZRWS~m_fEl3ekPhh^cfY% zIZ%Hn6;!V6RCQkx0Z(FAKY5YUHFd8nH~Y_z(YiGljk5eXj5vy5Nfrt*5rTSfV0w?P za>GUAMj0#4*}FRAj^7s2nFdHc!jNm2cisDBFc0h4%X;%*s!ryd!SY3VI2Qr8CBx-N z-yzBtC%(#6rr2Mp`I8rcWYGh)IO0j8W+HH%>4x^X5by2X)rnFyiB~fD6?zE9wxQ0* zFkUGbz6LHxT9H(m^CZNjJ133S1P{mzS-re0S?CvfU)PJyxa>Zn)ih;hkC|pT=tH&% zp7}iy<~84T7iP?e7q5DzwA8l-E}p!(bTJ&b=2n=@YrpVT@&3&;iUvO8D3<8{Z$p9v zB&ViK2e*#%Pf<`LCn0Th-WcHw_^^CzG{x1ZQa6CL@8obKFUR0@r9gOiZPf)S^9$iO zm>M_o0At*a2IaQzh#2@s?Vy@+J2$@=eeW|}zvr+rIAGQCYb5{A9=K6cFi*WWCWVZY5*AtNV$zQH)Ix_OTK8n;idkBt_x#~k89I2b zh>XNod1UveS%(a_;R%h?iR$b@=E&zwFROSL=3A$@>*?JS9nMkyA3n?wgwuk}NCg5X za@)d1X6yYhqMx4bq*?%t@I%tip%e)(D`t?-USt^@dP^bT2cr)4$VGNRC{qSpIz|*F zDZHP=RqmkdSDAH6ykH;Tk0-LZkXZ%qiLsvsaV<_pQ?-^}3R)Hat-rbfA4{r0p3&dV zHWggkHxD|^j_H6_Muz&-fkGQrKq703+2&V@9;OiMfS%CVsZi)mv7BUM$I7hiIqqEr z*46};+mXDf$98IIwe3e6X;(BFZ7~6LktT>Rx+5AsfHhIWD;&y0qrF~sngxUn3KkQ_ z*sJ+A&s1q|D?~0>_o4MD(mL#dFC9OvDLFGP=FepRcStl%>|i}Q;raOZ3M}FcvgZ!D zbZhw&MInR7$hGERwJ&9eEbSp}VOI4;{hRISV5Dida%v*18XsIVWuC$mEbe)pONH9# z4y7Fd9fQFSidG#Olu@jNXz67c2Rr6(=X%{-9Gu}hlE4B@?_(!m{ZJVQxl!UX{Ih;W z@-$Y?Y~vm!3-?mqp6up1Dt$l5FAH0BWS7k6?RF=_{C^ggDY^mDUbd$Flos+NeQ&G>wezd|D<;tLHTW?-L$!< zXmfc`eZrR7ym!LzU^r?l(01SRddIi9dnCT6ZhfU!u8!nccc=V8P_afgOKa|URZ#wr zsroty2X_D!kh4fSnd}Y)yR`8?=4I)00AEaHw?*!7<$&D1s`Ky-B2V=MC@0!HSl;3q zQ>%qC_LSixMIT0qJQf%DGXzg_!-qLV+Qc3MK=8%ceI(T?l*NFe#vCTokkG>5(zXYc zsS)O??O|xz<8eeX#>X{4o+S~D@ui|`r5vQX$r44E!Et2gNb6QKe!r~v`{T)eAykNz z#MUywhWTZ@i1})q;RL|eS4Nz)QAz?3t7SKQYwz-81cuOB-^9w?sEGo=cfF2qhqJZIH zDNQ~$#C7S}e4ae!F5iV*w2dfoDpzGYsocO*Xn^Fqp=M#)%KXcQ<=zqx?4oNpZOq!f zbx!10Y5c7azRg-{@UNOLUIFPC&zrcn#4Cor06NKpUjjMdXNB)=r+_Mw-b`H>6PMz$`A;j=k)u6G{&arRvc;z{<5JCI6w%fxlsixrP+D9N)&XM{p8XiPAw zN`<-vEn+Fn`rAKIfkKud3MC*HR1xaV^&~;-DIv&!@X2^fsk_=Yjv?>gGpGK<2Uv1CE+WgtiO7@?Gd~y^G zrPS0z9487=){q05qZZu7Fz6Y8rtz2v!MQ){hu>w>l6Hh&gqMH`fZEhwB+SU{d; z1L4-6aM9#hrsheAr=)#`D+DX!u)l|^PLKq_o{PoF}x_M zeGBv|-@MlYSVJ#Z_g&R=a1yL7K0-!QF!FpgR@2Vcu zE?W~`I>`&nyx6!r7OtNtWNa|F_MP6a>yeMMhv|A`_*p??IthaLoW$KTrSF?LB?V5U9{o9zqk_G2V-qW*tN+Jw#W>JaIVaP_((|F;`M}@ra1vhCbBB| zw=8(`{3aCP3M(*^s+f%lmQcqAWh{_(d2NQNJhpJBY^yaQ`yelEb@tijhu297^iTo+ z@n1|&#J>Il#bPWuM7g#!$XYdlX2&Bk3(JR*uHXF6_)Q;OKFAtDSI^p*kBw)_s-7aucyGpH+|UjcZJR$Z7G5Ovp-+VnCwv`GvI`0Kp^S zf(HTQF4u;`#gdz;l28Y{0`^WyN9P=JQbl4q7-^q0t%4L?FVg}lxLGhe-f}6h`t?TE zeZ{2O_z7eh>D*}C3opvO7p-lttPw##jt1Jmb56Zp*Jqk?K$8W9{+5E&bf+2|*l~r* zw4jtnbEAvmsR1h^?XF^mjbML4B*ysLL-!hZ0sa`)fKjRSgkanreFn>It4)kctru|kHE z6jCCdE2e=x$Iq~)Ts}?a&&-@cnYjW>f^aTfucMQ=c_X!=IU*?w#RugN)}cCI;mVex z%ro2Nh)cn1Y_*n|V3sJBN`dIDZl&Gbia}0J4W#y9e^PE|f(@^rK+a47-tH!oc46n` zOoq*pZ6A(ckY*!{0*C(Pn&6>~#-Dzg?n^WN*32zxEXWM7U{X8Ys4&02$hn}~65$KF zZuzJTcD`2TEuhdto)MGJ`GX0Sq1Lv@+1tttVhVl^*6H=O{gIwI;-d;k-fVRJHr(>- z-v*C>QDi>hvb7<2kR^HUiwF1S+z5Xf$pug87miAt?T3S_94jAn_Qo(33we5-Cz;*& zlaaKPvH9yFV$3hf`mKKmDBEl=0I#$hWd}faP39{Q&!aN#$~fyR72ua{vc9OqUX$c>Jmv`r`0y>mY*Bvb~}cB-cLzx6m0~XyT1cNt~To&y^ORI zX^s{|6;Z$D#Bv*%U@<>!ORWn=cbRC55uaO?oo;1K3+%p#M? zkc*P`gx#CH25?VqV3SxhGc)NCG|3K%g^se@(5D^|`TOg*Q7@A39rT$x()U0rpqlIo zQRl*n=a!D@6A50l>}8G1ev!t^x^2J~rAs7P9TltO={+Y)@6yg<{teEJSNj=R)3A~> zh_^$mz3DZ2znGPyt14*8J3a@i?RI#e8n1og!|5il@To)`aJBsMLcJ3A=Bf{ik||9Q zsXv{&TId!StbUbi8rVW)gZqyHI^7J*3t?aF^^} z9xaJhl)Ip@DVozLeaDQ17{=E1?gABD2=%tXw55M=smvCow~VTt z1{_c$8y>v?#IVSG6-Cd9QPN`Bk1t^pv8+qk8nJ&(`iGH;5c(ieLWP!`1u<~poj}XO zW&(7UP?=i~1|gqi1PARybc;;SBwo5)mD7|i%BUeGvXNm7ArP9Sm8(~KrKEoXB*Sh1 zII>Y&UAGa>)t1e=NsnKqY0l|h_qu4WBhWatz{r{+%3{gJ?cB0;l1|*DRy+}L7L2om zlmg@hrOHUPj;bwrf+lM*w&CQP8{%3S{2JT&w+d5b<4)5P$lLMI*j82bX;mHe)W2Mg z6gYB;>oxIed2J1k#d2FxhG!VxB>zzrmqJgC@?@>N+xhq5!HA7Uggi; zi|ZU_yB6<-jU{UBzxpfZUyTnr<|(6WpLUG_x_d7yk3@a}oT3~IZDRZzhqmd!|Lv;| z(EvF`sf04l1L-lKo1h@Xe`&P@OyS6A2)gGqw<95C%5gSrR*Km(n&c>4|KTL=k|$sM z3c$8oTl#CF!Kzk6cjKQ03XwDx{c?a{XM*GDwRtxOSQJ@gxkkDwHHAu9&t?)`@9i^m z4SfHMi>s`ldFRd&!o@I91$;BWGA}72;K$~G^0jAId<4ak!)eV=tuU3`7NW4`#chb` zgDPuUZ=3JID_7$xQJjc`zFem|ht>A+7nU0B%?{334vpDwR)e2gR6|y=8S(Qve1Bs> z1c<;n4@I_$N-XVKA{D7DT)Fsc!cTRLO1tOM|x)D==kc9wn?Vm%bZv+^$C;FkexDt_pyHkpG zbG6U5Zwg*PaF(+{WuLEn4XLFEz)l9RIP;)|8f?QqDf|GO9^&ieGz#VLnBSWd@l)&i zsiI^@sxg38iM8*PVKRYZdI;4kPFK{$`|5-f!#^SfMev4*^O#e&IcE|VpD7dZhrjzC z67=*GHPcOD9QYMa0%SHKy~ieH6e4=i+Z;Bh(C#>UD8RthZ*TrE5Y#m3(d$oxQ7min zSLm3DH+fdhiq!U~D$ zxHLT>b0vnqnE(3{XLhYm_zMTmiH?P(WZo}F?XSzlV3Pbv{i@T-CKXqgllr3Tly`x_ zr=OV_ld%i2Je&{nEv6pfKl-Q@0|_U`N3=9nhP-D6TfcMoC<+uZ?V@90JXLMF>iJi~ z=I=dt;a<9}!I@bV$p!o6=o6QAHHI*;c%Q2?AAsJ+>{1fy3!5Pod$vqu1XO4XG1Et{c+5~g5YX1W@u8yso}3lH z1}t8Fc_gIvZj*eb810STwt`yDVNy=`{S4xh{XdqL#>@`@K)vb0M=>42kF?2K&-*`9(0r}k8*2r-cy-nRcu1ohkIdIqX-BTW&4K_qqh-wpl0usF5JCf zpZP%xl86(x9e(#!%fr;rVEREEW15P_;{c6DE3Y)vwydSiMFb51U4#7r%uH#3V&`z3 zBVY42UoEITp~plAvPevV%UjUBwOK5rycSz$4EL!@glQ5t-Cp1OaRsdAY~Xn3_9ro= zn<@%Eo#s%9`F!57d7-SbPYUApr+ijxNMXydJdtttgY&|heL}s*dl zcrWOCMsW_hc<&6+_TZ9x!Mg63KPU1~)FnNwpk#beF>?p)e_^4(g0e!msmpnbzeLW{wR=7vZa_2!#4ZOo0j5r6jgp}LxH z!@O*PG}xVrR<3<|2vCS3V-SWt1fx*DD?}>*6kvzrUw>7~&~4DfAt&K!;Y%XQ$1XCx zZB50C2sJ3h_)oklZ}Du!?IJKXTX!(PgFX*W1L~uC?D2Hsn5jdzd8G~|B7LyxiI*4} z_EfLJ1Vu21DH^XtA)16E&*?6nA0AYMJFt`+-IMxL3_jY1>J$@Mrr+K9A~kWJ8eeeQ zMB2^}8o_aIAjF8z@tRa2c8^fDzTB=%f@NgZFtphMti~bEB>MniL)(F1@vuh5nhrA8 z0uGVWaBU@D70=+X{T~S zA{_;JVXNaiLI+M5#mZm_Nt*xavkyAIWs0A;AZXQbyRB~p+A-~f&~#bPQz#i0a5T+X z56Uv2M1a6h8ggqXl*S%*0D7VF098Zf2qUj*CUol9<1Qks=PZ)$sn!CLT$+_+Vb0%y z+JKp;Vne5zvx>_e;d3Z23-}#u?SOO233LAYT|CYzEMCzAr4OYHzd4iVL6!pTx{7a? z-y?-9=T>3A<(F&Yt-riYr7+?-h5Jn42|M0|d$K#q(P4r?hY&A`-~B6s5u_7FX?8KA zy%AI0B4n|)5Zl;_UAa!0tOfMYK&i_i6#xNFxqeo~+!$Dvcs6p6IzieE)3gp(NM*Pt zS{&qkUm59ezz_i8P{3?>IBHL?N5>n5eRF?Kj<#t| zjHjB3Bjv@9?YHtdP_w{HBy0;4OXpy^6&6A--KAZ*vw4TTr%yw1^2D5eDn#>Sh8&V` zG>8mdtjQQ>73r8T`|*5HMK1-NhA{RalvSUts0B8#X+`hE}ZB5 z>M_N;Ir2oi6i}r=)F1PDidE>$%jJT@V&li2rtI4ZS#u-DA`PO#w<9w9T%82$X3lm@ zR?yG|g$b+Trro*`e?})gBvG=$V6|}hvnkTmYTmHIKh0tz z=i*Nb2jQ5a8ik11!+8KpR2uA^QW6A0q89x8Lc6}N?I6$DKUVamAlv)f-TW3X1b>+<_G<-(;LkSZiKgfxF#SNZ(*Re)b0vnn%3K!`fTRArx za7a7W9fy7kXwQsR@bvPIIw9aKC8TWEl(KwtU3wJ@!lYl6e9nLReWbtlPy5CuCrGsBLU2B-Q#$Hcn zWw~(a#y>U+prrmKYtbzzW47a!oT?Ta3zZXgZX)(T4mD%TY$t2dOurpXcDm&`HRrIV{LR<>{dyG$9~PN8U9=S2IJ)Q z1|9?GY@d+SI~QM;iwJg;?PsEx$A$4)Y;6+exmTR}84uh335alKHkaa)%ctGgm{4YLKv(5(%%13{->;oG4@}O3=DzSUhhP_jO{BWF>@~A5U?u1PVu}tL=Flh2Zatg zQzjF6qQWs`jSZ6gz6OJdndiHAESE0KW!cYlIxG++)wePk?=<{3+N$#?0$16a9SSD? z@?I91zJz@5C#FSZPOZgtR}09NTdrSHGr+{)$Hcn8=-`>?q*=QL?+gz~{oC?+Ftb>v z#>|$sAw0DtNzjrMMwilXb#avGa`1de#C??|pZ7xkQa3E(qj3#o^!)BAd3f1~)Q$-(w;uB+$KDL|E0H+?PJ zH^HV__|zKl?;6Q=M+9hdPpzTPpR>519>D`qFX(mnH7m;?Iprggt{grzwIXl73}&cJ zy9TrHrX&>)*r$xnn+VnK!YsO4%0ua|S!gFz6XJG|sMv=&{L~(jWt-`}TD2$~8|0hv z$AKb9IRd1gS4pBT+jcnZ>p&wI2&L-IQCbgiGd&TG3!|puRg-NgyuY;=LID-k|IoH= z?bf*@%+-Kb-MxEpbIAD6Qtz-!^FgE~dmb9*GG6~yGd?QoPau%k9sKXsi^)Q&J;2>I zh@NEzC%fM&l?0n8#zlrNe3ejXUdE%@-wt=F*@5|OeK~zt>MM|bu^$J z6(&&ELzFkYNHS9$fXI%4GfAe~UGJ;*vG224t%)9Ofy!gvxLBqm*o>A*!+{3iD!Npn z9=qv6{(3~>T&o24(QyiP1gc`f`w?SC)8xhjsTS~Nfh2T~{4G}AWi1;9u*?<=$2evQ zo8LTzZDb2!Ndmc0Cux`D6vK&$q$4yeU-Ysl+K9^F53(jp@GYelE+b)5LWQL^B7R=h zBykW*IAltZQ2;7c#yWT^)aivW7F@&OHE=A; z=X_&o@`~78?77l_-u9#WP7#Iuc$N$_OxXZ!iJ-GisiN zm_uW@q4y*rIx_wK8(cL%k#HJ1j&0DZ;fXM7b4mpa=YSBg4W-zyd9ge){Vn2cD5Fxa zh^gwa$oR2WvH{teL;Cr`Lv0;Wv1Jzs{nn_;2}m&(dEC#@*kv&9=*tZhQYng1y0NZX zeV!H1X@}rNnoBksywFW(FKMr&Kv%hrIEwaX%-FJ{fu{SfX_q}sqMvPI6)c!w`z4w* ze;6zyQn0T&ZjCjdhlR=4^fz`0kSNQc*lUpU2P_d=tJ63$#SPU-2F|XtAX-j`Fb2!^ zjXA_RT^m`k6I9hPIS7g<89F)ziBhR`* z)V^cV(j1g#1ps=ha_cA?>;t@v z1~aBdtV?y#3_y!w)8A}!rM$>p7WZ$u)v}Z!iCX_OG(t#o2(JYq2igv!X)yFx#7Mx% zcbrsDrEF?J#DP$SP1=?S3!m|5D?M?5soFPV=V<4fYh&0bf-5gxCU+?0xo({%`25~e z;0{<86i&|)b#tBwyG*l{;>{PpSfqJ+3OfoR3mY-ge%3zVoR8q2)u2a6L&2vQo?+b1l%#~lq+@UOTiDxz2^G#O)m7!LHDgq9_R zGA>J6Z^^_M{|23CkTUVx89HA5@n4xARORqS4RU)y>8}ORsC%c$UfPc$`~3{@pVWe3 z^zQ{T)bq9D4?{hQnn~%gB<_9G%3f+8RUykxs}i6v}4F5 zCy!e?MtYs}>aPiPGQ;yb);0PzvLWL;dDV2Dc}Ax5HhFV#BPc{-+mb0w@5i~*foW)c zd%}di=;-aS=-(7qdPWa7b;44^IXv$pgB%D+X$66~SpI(%^c#)%RN7S-OGUFDJy=kS zNMXepR92@O#Ml1()Q4Lj5*B*J0W`PAnKrD48dnlYHJFU(o=8|R6Mu9XwZ#V*Oo!VP z)LnqCO&$r2mamWAWWpFM8a-(>;_%gID7&NEcw2jXBB->l;F+6ovr}d*&RLM`tcdXL z^kiOnc2@@SnEcZeyB_AsJvvlxOB@N#hi9Gh0m+JoMbuNA4Nby-Fewvy6n0$ssCYtXG?Hv{NySN@UTg3`je{D2pJUi)6npUhLn$mmFNbOC{fI-=|=!jdSHK7jg-Z4k(bf1E%IE6J*}4zswZG74l2Yg&V6& z<^hBjrSH5;9D)$ZH83U)C;RTdFhot!VE0N=n>p?cJNKBORMnk~fv~4-U0x6@taB#J zW>H>Duz1s%gCeh4;Rsj9tl49MnlmQpgqM{=L;m>667?kg$i+4`(C z-}jmBbs)tvlW+7%Vy?~x4H%xDu*DJ5du%+H9FPJ2y1DL^sCEy$eOXjobdh-H`Nk39B zR@v~dVS#EBP$n;-fscsk^A%FX2hL%*2n`NQB=yE+{Rvj%a`J&C{!7a*&xKr?*?x8$ zHy3qdy%B2%#4Apjy57a6(G>617w5Y9`6Q2U=2G{Bb@YCd6wnVgP<=0U@!QMIeUiH2 zt~3y;@q-P1Rc**2R${>9Ic9~InMrqTMG<68YyAzQCr$Jci>)r>~h#x;N3=g z*4UMtSE@U0HI4hT+r3m7o`y?GN9!%(rxv#b=Y&@}ILLh%7NN;WN4vg3f)2(s+7E}9 z_Bo)$sT-Z$TPr|SNnhG3T9KX4XsQGtx68^%v!IL?m@({CKE**D~16Wvi|{OgBaBs?GcUG|^ZvEm0N8<7(7;(S~w)Y|DVuGP0* z9H*%^J7`)!efKc2SUd$TacZFW&wdp;@mIYE2p*+Vy+9nt2Zeo`{*xqm^qqR>iHs)_(MMTa zk7wek_!3Jarf%^bhGBK{>hS@NfsT9@l?V1g=Nv zt9qzGfBx&ude%bc8>G?V0{4}dXvx`1<}ISv;22R6P_}!vfSM75JZ4+ z*Er#lszJcQX^gE63~~sg^L28Jjw%HQt%30DQBT0-^0LJ()YhM!OI|5u8yjBU6XbX4 z7uzKaR$cCUf!hy~9dr|ONYP|KHlwdSw}{BoP<9_7DJ{J}c zD1sq%831Tpzu?-zj(C5``+;rNpYDsxGvg3y13|sV$?U}k$6!QPu)Y&En>VZ}Y{<&g zu}$${{B1Ki7=W8L6@t}0ia?7s?+6`aTVz)QD=@Xcl{n7HxDUs*nW@nWMq2ff!Nv`W zMMyvl%N{E>+@YJiLj!gh<}Ug=v5E8;!9B?ur4KDm3fRfzHj2T-G5Z`~jSDW>N34mtK|g>1c~A|YJn!5KH9UX5|L^@_FVkW_iOzCPF<9L zR_0^TjP_ANzesaF#<^HIT_rD=0F1s~kNs5Y8$Qd$rU^bS_r`QlM%!z=NTi)H0j8*H z_oxgDNtvY@@HnRFKZniISRb6Vpw`cJXkIjD?$f?k(iA>l8Oab~y7isYp$l4j{Cp`U zJ5y@{ou>%USa_i3Lje8$t(F&6f8STa2|rL%4IrqDMn0tpic~Gaj+`Z4r*j_{4LEK9 zNx3r*C z5*`SnPq%I2{;trG9t4p*prwhu3o-8k5m2A#uQK15eEHgaH zJQk<^ijh7*`v#VDMl{bW6EaM$TFcOSdmukQ+_Yacg3WhzAtFBPXMjg*EEg>^ZHqo_ zkQIc`Uikp@<;wSM7DDDX5VK!q_#eo2srW;VUAtaQXy{<=buH=5TU%lP|Laf(M7-T7 z9feO5)3Z1XTLIFQNN&_!j3vNIpzovZGD*Ll_R9X=Rm?SW&G#vrwCJV|7`6dqjAq)5 zbC7&rH0B@K2N=41UPQsX1|=I> zRU3I5E3OVQ?UKUh(r?JM&PKMXdQvDNIRr)>$JJ3ogx<(v<7CHwi2Jd}zo!=&LuRI! zaphEQsm5g$?~Pp$^C!wC1N)>fE=KO1I`fJYn+Da5C zupQ6Hv%kbcfN`xhC^Dy#oh)BPXGy?2v6HnBJb?UJhTU80+CxHD242YQS?(7ulWG-D zkr2=I(5j(-1H~ap;-xm(;?-XFOp;QLMcpLDECnk=(Sq0R*E_|sy#x3gcX5}WMlnen zvA5AxPaS@1A$16L%O>eI@xXoB1&g83RB3iO`D6F8PERYbQ$!?NQkgSAttE6!eHzFo zFPb|Gu{;h*Y7t1w#13+X*B2Kngc0dlrDo$mj6iIj~FI9xqLOzdH^HfAD5160Qje|ylk54xXzhToaegfDX+1`-Bm5e zJ)tNd1HrJ;GD;TilOmchlj0`YdsHp~jXftbi&n$CE+=yzX6QMwyI@LlZ&h1miCEPl zWxVnr!HTw~3NIL}{jFxyWs$B=C3xh!T9ugju)BYA@vI=_YlIms9_D=I1nBpzLYEUK zXE4n7;q6!Rc7#2m)T;}dMokc!hNhwX(X~Vh{7y*DMk^p0)=FL=uyiUJK2yvEfwF>c z5e@f!($AE!62lqJYE2Y=tHidX_Ca~h58tcm`)Umd(=~s9Ke$v!tHib;IusnH?u z*lo|=D8KQakK@VQdq4P4q2!=Gkq?48%a?}N>-QpqQ=n1I!Nz9{c-V_%LW#T5E<#9l zAs1!6IFH_(ztiJyuFFn>=uCJg8ZN&XZ#Gm(wHKr=Y!yr^It7YnN??TG30h0epB{B% zK*POf9Mj%>|J%wfp87oyMd&;cSiS_}Nwhp5GWvWQolsV>FAh5~b2L)6d$2G9ngRk1 z(!SiG1x*D$GCu4yDOWhKug~ai31&jt9F~8qdaUr>QocI+N#XIE?mT`{jV6FrRfM}t zpQ7HI6#9*G#8iH5ru22CYTaGoHSTas=qknie^sHCia60Lu}y8&d^)3K$dc@e1Gq}X zSp6K@L3SsK4b9;ub=gWyR+p5Db_PaLavb?#z`w6yItPPV$%Ub6VkmyrCCs(CtoViq zfoZQx+Fv5JaCUx7=|;09h_bNn(nHL8zJV4@nV>&SCCh(l2WP0eI#)k=I{#F86W znWzCfr0sMl_xHjASqDii_FJJ%Ru7*T7OZM&e~}|~p-Dt_;9@VG!ZtMztCaBPmxQxX z`eT*LMfrWn?P}^*=q5ISjx7&Ew8c*<1 zxJH9L!62b1U}aJ_`D16+M@pOI1olfGf3{gzZ4Pym94${2BtCYd2%($l_3WU;oO>|RKxf#sWRDgMF_)QMeJqFIBEo`PZec$D@acTOZ7SBj^DI-yRZ=7&2Wwv|4xFryCNP z6x#Ja)>MSHsof3JZ+F1^QAlF#Z|CAyRv^CTXv$}DRTD;>f(^#?+{%S*C!d*_mRib( z$-wvFnZv8v3`r91F#T-tY=96VbNtGS@q(zF)DvT1n6AQpp9BUz8B_S|21Fzx=+y+s z$4M;EJ{NmHmzTa-+3c3Z0cWhb{)GAAPutonC@{3H_MMRt&^5JgWXo}fahJ^{lphZO z4)xs(Q~`<%EF;cz5^5eQIXhOn*zIj9ql2n~-}vc;*mLzOCOwBY16UV6cZ#yni;*$oqY3=bd+#MI5dTLL^7VI-m05^46k@-koKD5tRq^j#^O+>!~Rqwt#@9be?~DgB77>@l9ET z#_&0s`~AVTL5{HAV5n|~tWA%ef~_*`simjN@oo5(MCl(NEx>cFjzl@&x8yb%SSw1j z|2F#@No>UDb&748yKiF&b%MCKuJaE?5l$AnR9*6vM=5a_j3Rh5~nJ~_FVGKUfKjZ25LH z^!rbkH5QGp>U>EOaF4iiQSf+N(K;3#p$Ow4{&r;LaWjSD06u?KXX0X(?!Bu}G;~f0 zcV_mPzUwf66~DT5^1=?m7rG^%{NfHk!fs>;C+EBg;aV)?Mm(<@_T4*e z(Wnxwn|@~7Mwyv|n)eRjD|#{&L7zW{)T<32Gnni8m9Wy*?RbHkyb0 zp;&`51?V42p$f;Q$5k(wRXitHr5~oDtL#a$cTQmq0ttA=M@r9MHoFr2{ zWpRl5U_ijAe;To#7F(h`b;fLT2y2#53Axk6ZYleEcTnZp>NgigeFrnuxP!gCnDX=< zGJ$p!e$9^!SRVN>%c=`5n=Di9@Y`{3kGlZ_Ak|49o25~Z*_J|1Tx*#jBJSfMM~3RC z;M}}3Iu@RlvAx3>O&zTjs?*xi-=QPXAa;BDMR*#1e_IeNjJzj(7KbmFTVF&j{B0EE ziq4h#uX@p_@g7Y)(E$8cqY_qo!PZ-|8(TQbko*WhnVp_^81sL}5&>Ms+J1yfYm(j0 z0?w`wG;;z9B|s>`Sjo3Cng9vN)sHp$45gxkqvV*`^W5~V_{xS|_!VBB z+wq-B6>Bp2x$Vt)jgY;ZNWNGIyUBX>hX`q(v`Th@(40h${CAq{b zkV&rKdJ)oJ4S~fq-Gihs?ZdxE0|LwtfkHC5bniQ@TXgTlaqf0Rinn?giwPruQ*$?T z{Ogn->tqfFXYlBEOj_cc|92u9{c_lpU=~^n(mh9|q<~FW)?qE&gr;ZFmycS0y4K z`{F0w1*6{l7Z_Edv5#{X?pJwfsG4EW7tUH3-v0O)LpP^nyZvpFxA+x>U>e+;1JneW z?ZaN;Bo<`2pQ?KtELIJryz-AgTl|uD%g4u}M<+qpt0tqKJ!k`}83gy4o@!O01s&qc z))FfFBtF)p7dZ^2_*Ne-D}xTv&tOTwp1qPrFAOF@J!%Hj=VZ7Ce<9E**mHhNdp$iv zbQguddubU@%(TR(R9g3>VF+R8rpqo#WcX~Yd9mWAQ5y@)rU+!iG{!lMX+i}f<;as< zz-Bv4P}38D3J>AYUZk>JjE6yif5f+4bOV`gNk=pp826kY*%5=UH9|o&ge@NS#n+~% zrwe07^Td+8@Bd-UP)3)|Y32pl4?q~{+J9F(yRDhlIz1lhv(CvW29Dh^!DPD^^3bq# zdR@aBo@^`Zw($TGKuW1a}(AEaT!hFrnZDcO2 zkWORE7Y!oslc%Gvek@Zsy@X;UtKBZ`#yf-xv3LU~*FFG!_Dd+r4Ynjt;r_;3a+Eo; zpPiLLr#g!r=Ltneq+Y*l(UiPNLBQWlL&B{ykkrcdMd#+(cBT|Lb~G@K#MdJr`Pwor z*B0C)hKB-{po(b!Ycdd=mvW#EsyZOs6}g#1Rr$@hV#=hITy?%i^zyP$kQV|2@bJ^1 z5bEz~#2L%^L^fPKa|8HBS z*o4meO`v0Iv=P*=B2RFrJE725_*+dE8M*^F zQvp*UVk{9Ib1<~!N{Qd{iK{fjDCTw{4Fr|*g6Y8KYB*~^lI@Le?eW!6=?S3(6`Lg6 z56w#8)WqaXDiqz>-xv0nv4Fc4ZNr z9>ykzETdIkh{HaWaC6h33=igA1j`ayP+VPEVAcRJjt-LxM6Rl(Lf*c~K?f4c)fz`@ zg?A_~{BDMhZ(UQ7vQND)2IL--e}QwX8u$5{L|)2Csmn$&ivc1(+BXf&;Q7+1+b6Fy zeQF`W>!!HYV(gTs7kERJHPV_0?H`7?r8#oC^NSQ_8PTAEVd{vgBwQXl%Lyxr4NmV=f2y7li5x_T!uk# zk)N)XsloL0IT@e`j_u_G{a2~VDBEQ2ai~a-Q`_ZA+Bg0b;46X-$W{eAm`>H7@JEy$ zuzju)x4BMv>C1q^k&lC)&QeVZ+dgU^ZYUb`mA#|-0UI{-1FQx@{e$=7vt+1}=WLo; z7!^+$DV-HzEiP$_HthvjzTdSCh)jyT1c5}uO*YY1P*ne zXD&+9xY!`=c&L{!h6{;x#&p@cC6kwptJ!cKt$}az`E*Y}5qP(Hy+0b$oepk8L42r8 zcWrBA_%fF;QY#B`zkXeso{hS?tKiSxo`7+;YHSR9!dCO&a4gG)0pv*c9(5`_**PW# zIPr4KdqE2ZzL7vJdD;p8NP1PlHuJJnIr_3J1KPW!WAF zk}~sDISz8}2`=d8p@YGKJEq=$M2ElN6ri{Dkf{S-j`K7(y0w_9Z#;lm#WS^-Cucw{D+7y2E8scf?BnSVrE^bT-hn-6z9 z;cr3gSFk#q)vxE8{9!-aeCb~iiKJOJErvxpwisA*IQb5jZ0%Oawa=@>qr1BL$+|UX zIAY~Y!Ny)iw+N(Y4T>(=0&~ZVp`ZeVjchsA2Xq9nfkDiQ>|G+rU#?hegq4swKDb+NSL7A#OrLtJUx_&0KbAE*!Kj+oz-Ojqf>bZOy|D>`y-&&(N$?J7IGPmD|AL0x=eHCG8Q~k^D=Y{;PX_i&8FCaq1>{B}e zXto%FO5q{f-?`y`c?Ba1el_N+Qv$~u z35zr|*{hPZMHE+@O}t(g$#^m$tpi>%#ykNKUh2IW4u2_QT^{JD{m@S6DpC4+L!d7{ zb`R^#cJ69Ql{Koul=Cf>T_xWF$e5Vm(~$@iy1AakFD{{cmABy%H8cBOtJa2I!1A0) zA3{TGuV-Wv4LTGGAB{?{3h%c&OU;R@o7f%p-5UpMW6hI%;`8`(-nA9MeEM~V;&l!3 zi|~^%0?!dR@rlohC7}1b^4U_Tv8ztAb-68WNaj9n9KOF#Da+oc4vgRCgrvPiX4V#! zrn!N0wb}xi8l5*gch5^pW(6xJ)8hdUuL|iD{zI+#Wv*FpcIBi(H~EPq8Zu+OCX+1V z>pIes`N>1fh<5VW^G73Gi(W8ETm*Dfm@7~Z(>JB(o4F`Tn9CT-OcLn!qD}5KvP%Uc zIig$G!x=JS=e@@bRe%tAzcO3)GG&f!9|KZNG(E_IM<(zf?O%_K?CWRnt zGJ4W<-udT~W=XfH(pmQNMx7F&t35n437~C#OJmL3QQPcL*P^Hao}zJCXW-3R2j=sq z%l2CGK%r$Iesj$x8_QQVMe^<%rx8o<$$n!`{>%!6^9NzI8&T-$10o?*!m7qQUX$jM zG<5pooG6iI=q-fDa7sqm`(wwrBImJPE@IsG4&I7nr%d7>;`Er@+-BUqtv+&c!FP@O z43-L650nxCuh#!hGv2dBtSnRe2D}J|^`3n-S+~CqH@Y9biXN|`7F>la3lJPJj7zcq zm_Xe*IALt6dYONlv{Kz<`%vha8}^%0XKj;{)v-F!y|eF((_4sttNrl?<~A z1EaLdH3cXS6|v42{eDPRpiPt-B}!?|KiJE2Rw?Li2TxxlWJf>ix;s|=f}AnD9gT*| zeRDs$ag@ga=!aAcbcFKuDeDIZ-0*j#)|I+7(om-#Tu*Evh(GiDvwa#&N1VAC!4O@& zHS+5t6)~m~ZjA@igNWo#NS2FYB7dl5ITa>;AT?CDsfFUlkI#}}=wkEG+2yuXsZFbfan`yur_4fCWv17^Cai`J_oY@s9tGpv8)9yot!&wvi z76~r$k8QKOKTHz5kD=6vki!<(7CCB^*7ZXE6KxyYRHY!tB-aovyJkx6gIzl7?TVA9 z_1^mIeWuyNd}s#TXFbJ%5y9GZdAwYm4u9P+l+Kz|Q$)r5h zay`z<(@viQZ%3px7NtQy*#nza+fiMp2;?1e!{K3HW%w(@LZQG3JyBo?98wLMN+bsV z2bP}Q>F}t5O{`=gmKo1X6Z161bkykApf@nwMACznWE<-NDtM_A;zpVO$R=h7Jg+MS zv3ipl= zmxdc_NzFpuOF<+blW+|JHc{~~Au(Fw1XoR+ugZA0w3>`gzAL32x?ZnTAToq%ovt9n zD#i+On^S>jNVzWBefq8=*Agth{$35NdOc{!UXs@pN^50kRX1EU5u{Og2@sPYyezh+ zd~N*Ajx$n;;;1q2E`sy#u!VteH-Oi++K!IT-{00WH2ftQRF>lsSqhwV1y^tC7| z(l;kIgZmose8i@r|6pNX^0%ES71R+sn2C;bd|IXz&0^6IE(c=+J(UJP+SzPd1!hWU z(aJmHfR)}y#MWw+v(+Y^g#~bLB4cL8&$%+V&40*l2ATpnMasHZe}xCborZm-69uzd zbdLf~7U5l~S?m*seB-(anP>btO&0vLMaiwzX$$8!-0#j|wm07fGNn86J9XC`FLXv) zp-zqSbJL)0gI5sCPP_`c3vf6KLl`w= zzpXNVf(1)W)KL)V{*hx?9)y4Hg9C_UupbRa2YqsVpvAbQxI8)p3CVF7C|CMt}a*SEyF(zqo^Nj-*DA78?O>FTB_x~DXbOsfX{w*2e zUiWAn#p5xg3QjP^nxpK8E!Pn(2uSii8WU*Io<}%!`WHgz2tILj_J0R;F+1ImYA}Ftk4nc{9rk%SLi#@ zsMITJmd_|fX&l_*Nna13>P!h2W#E`kYWHS17?lm6jk&HHJT^D7^R{hctTW#ckZMDo zuM3PY8cH5`O?BW@dT-9DcE{5Q?pt~tz7CU!4iU|CBU6&RF#_$&p8Ft>C%V<|h0Iqs z)yr7VeI7Vofivq{%I$l->AT(PeqL+gguF0Vw1(rAb zYLG@9q}(tQjEF50=OAjnF07!~r6vbF;!t2VR2+=Z(p@?299ew|gCD!sG?JxYA85mE z*0`aMCx+xHLsiU*2#OmiF1Xa_6JPm{Y$8Lw9zs4n8wHX@>^ZOmrps`v*TdvshbMm` zdzo>RBk(~OF((f@#$+}8tS08-<&2KMJGIES?i!$Vp&-FRW6It;!XN=o@%?;oHIT(^ zVs;R{{mwP};&AefwqH0&_Qr=u;o}inPB{AhLv@4mb#rod%-LyESTAxIlmDa>YnXFg z-l44a=&eywuy%=o`-F8AT~E7J8un{6wZw?|8oHMR7+Rt`qX=C{`rl~wz>OGEsik#a z)%uK1`7WURQ#$#(`R1epGs4aTWnf^HJyO~ zrizNE&IPq*j^ttuj+y4XX!6R;5Dpn%svDzu8KBQ3ZOE`7=xsd>w1Kt{`puF&53}3& zH0pg@4w^@FN&X;MdO~H9KA0FYwZ#uY0_0@ZtpWI(i-SVYo@fkoCF>#46(+MyTBBe| zmc!ses+Qw}=W`NIK3v_IUSRoqrr(M}KgK4*Y7RTszf8fk=&Wh>B6oxs9BKbICY?wUkORjwpT%yqbz8%26D2xZ%C4gnopO$ z$m_@P6-pp#*~#2BkAMi#b)yT-vnl02q4kmnT$Y~!8#V}V;vPePf|Eu_!$=bJSST*%+pt%{JFVZ66-;_vtsOIYPF>6- zaaiQ}iaoJ}_;J#i+}uji!Q^pjF)N5c8C%4|Jgr;&7FF1E)+jEe-sKw792t)o|E4sf z4Hw9j49Gmo?(yUCc8=LRXU+3N@lnqkJ2<}_(F%3GkN3fNPnwD8z@3?rrOPA?B}Ku^ zS4n(de5CJ1y)i)DA^n=Y31_5-^LkA%E~H_9BHcp*%&E2_zD;@q@t|hrB;N{m+m)P34NDb$??TGd=@zNa*9bH$ogRyoS~9aA^><){9*CE?Y!G_!O%>Nsd& zT}xG1oCPrTl^2hH0dI((8TvMKf^EPBRq*hfIG=M@-Bm#)YF%J8kPEGmyRU-+{#~Gv zyiJ+UDncnuYm>a`B+G{dk~S5UU|mxEQdHIqFmy@F%3Z}7yO9kAmebcYOi;70q?{t_5BsSHtW@reM8E6 zCAbWUQ>H<1#KDV*@MkqnSi|pP@Sz9xz@eiXXFqd2X>ix~cvmT(rnR(d92M4J0p#Ft zsV%|3uG=k7c=w=a^SL^^V%6>IJ7Ri#ZrLpWXDeTIr=?|3_k0Ui6C3;1;|$&e{pTh_ zQDwvr*8q4bKN2cYmBi1`0ZN|P(oJkQI}bW88rwYq9p_Vv%YUQDZT)=Tj(@a9Rf`nZ7D2ErOr_x#gaw@?XB9scumxDs1lj~h+u7-7p<(nIupvRN)qOp-D~_1_ zSvh}~fKR-(>2}*qq~fODfE|JTvG~j8`DyAQwQzx$&~h>{CfJ6I3yZBaXJE>y5CXG~ z>%l*^)2X_7KOy@7n_-E%)cL|SlWhwv=ctNOoVBppI^6Tk9Vl_&sjQT!DgU1~4jXx^ zbic{1?O)01ly03W`{N5IJ7MwZ&YapM%7|9&4p*;DLzQ*qPBED?pAa?h2Dc91VCQ8S z*EjNK9j%7YC()11Bj`b?r>Lcxk&|o)gC5_VPa;WaM&^Y!U=im2@i2mIwR;0e89=w< zO!9SuEAQYDo7|gwUBjl|XpVL~WjrtYqYPLdki;Z7PB6{C3BSNS<2Py#F)@$j?wpL; znb6M#R*I@>p(aB0=j$qgY)Ou~={m(ajdw1~KB3Z; zlBt+8Fz!Np7*lT~yw4*RcR|j0HjaI2j)Ka~ky>aN>@PrLWIUp#df)c#eg2M4j_pZP zB>h8uuJ?grDUk@E!;X?w4E*kz+<_e%mVe>8h;ZiC08=QZiU4D044^L`GhtENR0rl@ zJZLBZ5u+mRzCqqgveCFfgT!v_k>N1P#`w;`M6eucj$6AT|Kk# z;`qU0GDF)#W;)M&!i0cW$A~`ZZ4$;`wY%);V~B0fUy>y4p|vgke|Iu`elG?;K_0u$Q(L-z^boJVX125>+_`jAt+ zO%yE6*N``Z;tTouYTq4 zsxE9ESRa*^V!*1|L~>ZpsiJw7JYg<=+Es0Ik8A#t(~s#izQBHz>ph`AU*(l4h!Oax z9kRnkl8X1;s>z;fO7VH?^^yP2s$2fqBED$ zd9-7Qsv|ezl26=RdyFJ_+dJtwDT^o!iDk(ww_)taf&ghwwHxLl?U5!NO->UnXk4^l zY})6etZi$z2D>hctlx@O@^(3b-0lOx5E`VxBz@)Baw^jp1a^5@O;CE^=2uw}u~Ymn z;`t58-)uNrFh&h%4<|1UPhP^kNbb+6A-g9s>eVdxA6t`3N?ce~SzKGHppD1cZf|7q z*9rP*3EXBq5TiW~J^*ZK@jgBF@+|+IxuFg8=u66`1Bw#6dy?El<`Inu#h;0P(t#++ zsG(dK*YA@w_p-dBvjfg1jg^Hw=H}bDXwy-2=fc~u%1gAYmm2<~tzwyPmKJcFGL>;E zRA@l0sNn1I_y!gO%z`ey7oEEnp65=ihPUD4mb)OA5?I5%I;?qrq4%uQe^xl=+zdm6 zpM66Sh0eErA(A@u0exa3!7wac$lj}5&Lhxg;=^hC-_tvoOYrp7*BDx|NBWJb>AtC>Cb^p)p9=#{-BleI;Jp zBaG?B$!)BU5=752Z+Z0q9nKQNNm0m4QdJ>L?qz=`lv!J1!gRL7!PRL2J*l^^taB${_Q!(N}pxrfA|$@qFI(D!0LQ4Aqjq zzN4v>SS9ctXosPGm&Kb7zUJaX%7d026+`HL0zcU0;(*IQiMA0uU~GIaTBmZ)dYBQ|5l zcA*dwl08Xg_ZhO!q*7;+0G!yq(7G&$YN$Ax=NhpwnJO~LsRbh8^=Jn})%|yO=r1ce zn#pO$Nxy1u=BG;W+dOT1@+Kf0esjeLy&Mca^^W`RxP}8H6HSlSh%ZLeSQY+H13K9q zB&n_zO>A6gVdLP(?$;a$>-*Z zBQOcI*fDKJeP(Eaoig`P`TTIH3@I*jNV)-ri+`uylU$^s!cD5hQ28Ldxk?rq_!VF$ zwHrG+C<*GPM9Fyk`xK854xJ|>Td(87t@a4#x6Slo&@yWv{!W`Cw2*RH8GJAZ?87<{jr*aJ|J{5IK7_Ja~u zE#*85IJ7ng3m%X8#Rmm-%FjgMp+30sDhcXN+u*yBV1FfkytCm4G<( z6euQcw%iIia5AdgdzN!?km>;yR1w3K)K<5`#puK70*d%K2{9h@h;0It*cQ+lo5@26 zzXS){8~}{_6qus7IHn-VLoI#$3y>iYXHsA$5|q4wf!p%r{&~;pAnx~Y!%lJ6Cb`0I zZ`ukJRiL?vCfPq|2$}6H+1oSWd;mWcvq+htjd%ZDjfQJ9T_N88Ty(3OnZLjW(*X;@ z?df7YHWZzjZn5z1=YZ9Vr~qG#r*W`|o5)K4rm;6*Gh^yN4+?Co@Iz3IbeS0Gu}!S0 z?96n1K-P6P%F0du!?Tvp6uH)^n3{)P!z!`yRHSXxu!zj|oWyl7h*fih1(p|gI14~c zsR`LR(zqk)r}|;zzxR`hp6XEwt=#5&p5;`N{mr9I@_Q8lN?e?;$1tyR^@!hrY%nHI zHQ4S{ot*jfg@1ABei9Xi=|urQ{A=jxEVphf#w_wTDz{<~{nlz;CqW5|=jyno)sZqw zo4nz?QjG;Gc$~EJzuH#_-YUNo>zHUbh|CcFaH*BFctut$uB-Y^o_4J;N0iT3 zYB^ty)rISRIZa~3t)@Cy&|`8G7dcK=$(Lx zyf+c|qWOXnYx<3f&h$aZ;L$8wOZ@!d?LghImON8Z!Xb17$&4$$C z2wZ7`S@)>N7^y3$LR+b$mQUWChh!)4Uqv_#vwrzL@ydf-Oj9*xdr?Cw!Vp{jJ&M@+ zu}cywc;ZF97!k-f=Fc-pEvLeDIWUK-`s>PnbmJkWzQ91!DKnFc2g|V18iAjyv2`cj zDppA2uUMyzhP_4Lw_)}gJ72`ONB46*@)fS+v?)#+na*mbP&)ZY%4Y}+ywH*j)7fd) zk0*p>f3TgH8?#ObuxZvDew;AToNjMw>07Sphn9jLf@cEM{i*f#nETkWhnoX|2I#XEzSN2sz|&{#p=XquL9gH+1|=&;jc(I#}f;so$uy zlpc0FoR_XnfUOKC!_Die^vuR)AwDHF05;ol@=gVmP7}|qBSs%r{%Z3W_oF%GuB3Sj zcF5}j&uaGRR!3U-?oB9u%lNw~X)ibGImkXf;12CGMI!=679X<71(}2J5h^a$D*+-P zoZm0p(+EpMGLOvV)M*w#76dOUfR2Oq7xDN>ZFaSV;#cWqx#_%iJJ)`F&ucFj+2*F- zIZr+C%+@M(3#ickKrbpVW3<+{QGuChtU1uGr^0r5cIL6RAZfyQXJm+Gb|bDC{qckaBlkW1VB;Q$DF+Q^vV(BDOkg=99i}6vRH6 zrl*!N{u5qn_!b<6dZJJ0v7rWE;ab!EtGRvHOsaOx_kria-L-W~*kSbDWBQxMU247{ z5OCs&4E+IvanGO9tTsW+A^yu$4m^o zGe1WBNHB<-ro2lgCahd~hI@?p)xtH33o@i1*Sk(E$0b+Vw|O zV3o{1!Tw7(zw(ACf01}`)EGcGdm3FaaAeDzuUP4Q{<{xQJVETRQ*5LQINMp$;0{#H z5X78Ap=Xq^s=5h}aiJ8X%Jd~ex1x^qaIHkqp7gNPY*7u0-{zGe8_)zK4b%-WL zvUb`d9HwvXGIp79%~@2epdv;DoL40Pd_zedt2`)(%&QKgbD_OrP*a z+~E1lIz#Ip+mV#kLLYFh1t1lV9rYe zioHj+Zc{qLo!$c75)tU_p@`HdE|f&yS)kS6HcXHpl%X|$%AW0e1c!1ewGN(I45Wxy z4rVz2oA>Kx2GVy;br#4SQ!&^85Vv$fA$7)dTTQj5!Bm(DYW{)t71xFB_h=Crw*Yfr z^3ZqI-SwwO7s?aW@{cVgRm%*h(&uY0WMI6CY$hgFs7La&s>Sf|MdQ6Af8{+a=6iyPJ3l^sv0mg^P_aALw*d_FrSA%wq z@7HIA72%-R*r5_i%iASr-|2Z#^NG3gyQG;7trb-L2^VHtND^mct}cNi-ksC`cHe;5 zUNvm3JhO-`hHmhy&LVTTC}N#c?3!k34R>rv2`GJiWR=i5G7RZu&PPXz@L`e19Pe#^ z%fWq8*EQssEM?WhQdoZ&rZG`|1-}8IC!FVl+*MLIf%Cn{W7{8qR_;ho&8hleqRk&> zi)F_oKPegv;DgDf4{Ns!#yu*4?SRo%DL5u$IYkH&`*aKLelNM4x*sPW5eK3u?Q>r$ zu26jGtn^Pu9k$U~R*Awki7O|{xWNguv@{K6<-BHQklbS9aHIjyQ^^BmRp`Tfp!X|% zv{Sn4pP8Xt9HSgmtsv!Eiuo!Qx8kO+c;j8}S<9Ko>d3Y|84b>mf5`!j0GDpShwqc; zv*-)maErN9&v)BAML5FHIw*%Z63W8+2iV*mC_M=?mV{oRLKgk%Y%LJJIA^o}Rs2gB zZn{w#p?)d+eDp|Xvud>7fNe(c>hFp}U}78I$~-J8zmYEZ0WT6Zdfn`54Jr2S8Juj< zftY$VKg2DchAAeIsj`T8O?fMTN&^OJ4#3lQtOgtevQe=ZUj`rmi9*};blwr6$ex`(_4+@k*8D9>p zF3G0Cg>qTz=6SNj?`-x-;>{T5WZof8_$ovA!Y(<~aMj=ETi*T4tZL*~*6hLBlYJsz z$inUQKGD*Afy~Hb;BF2ol|ZyC6@%6N=N*mE6~8o$dnFBTYuP=|=uao73}rQUb%8@E z4%SL+lVNZj3neP_{lguCxw00%V0#WB8~|TX$N8b_hD2i&gSwKQ(#(|Jge$<$zq4);zBxrTrje zI18HLTL|;rJb}qKB0PWM!raBrQj{SXWyp+B6HC`?Kpj5Qxyp{?s|e4}ARU#ig*PHF z6J$I2AOmt2RZ1!huB;o(UTEB~<+N&JBRq3b zTO+6J{^2E1uXR|?VB%YyK5lcP!435Ia}R$8;4GrcNH97CIwiHxoLvV?EnM1=F|1I$ z5EOk>QDtI9F~Nft3B#s=gO7{Z&3Cn?^#h1i;_9-TtRSE4lobD^e|7?xQio ze8ivS$t1e>w-tS4V#YIUfk~1zGwQ#pZi21eysRn)_ zB+ejs-`>DADc&3Tu9vu%8HkQbi6`=)`Qsu@b%W1<^94CIUbHL$RB(yzGxaD}W9nw7 z*-qqog4d;^YttU;{{E&4daP_KJqpV!)9b{eno2VjM4s*hYvyqfO(uyuIC4eK6nIH# zI?JE6Wlgm}xCMvJUKBg`7Rinq6Q@#-iu4NW$4@XYQD!VLgQtt&xGLsfr*IJjo7#VZ zh<^*WhictP?_w@hb zKs?{9s^tyPD5Fx*X58&$7co#J6(WZ$@-f_Yh%~&gY>9eIZG$7HL+HHO5z=VMmNFQON>sG$Y3Oz%8aN&#oH-K$$D z-hTH#*O*n$0e>16EK4@Cll+Jy`RT9*k9!Gi3Yn(@u#98Hw7Py01v*5LiJM#mNY=v^ zNKYEMmh4wLZ8e8R4b}@23}v0Als_M>b(VczY)jM6IAVuH5#iDx^XzS~{~t5xkGVR+ z$<%CJPf5^p?@+>HpS0UjFeJ^K^WW0TLU|XRx1U9Aa^{UXI6jbn#a_M&z#&s${gCkg z=}c71Z~Ac}2bwn_?u9-IveuIkgOYvwATb9e1BZDT06!l3IzrCy$%1fD?m1av)f~BL zS*ra^M1)-xs1Q)lQHuL323a!#@2fksyksrcY8^l*C?y1eqDUkxL5(3pWq=Xk z1abSv6z8}Il9NS^*2-T%BHt8j7CurK#s{PuO^1cd#i(XeP`n;lGL%G#ny4^bT#ZLv zh`h@G8D>9X_RC!u=Nb*_QTy<#xcA%aX3>hPhKI0sJ4Fs%byDPE-5zT4h*;lRI~G43 z>L9Ujqe)9}1df)NI6kAVNS?P(>TV@F6*mZtJhjR0q|ulbe-9qnOWn?lANKHs0V4hP zL+wpFhf@8$qv}K1Yatj2jDzZwy#J<4iS+lQEGVBUe)xTvdFj1PE2}V7M%xQbB|*bL zW|~;r<%!)h1L?oQQVMjidW3-tvL+PljFRWR*AExeUu+MgE4KQvt#V6+#Z}usr6-!9 z5<=@sBRj-pJO*Nad||N=ua@l(gs*ULy~EvrIi(t%6=|Tv;0?`)rq*m%VJKdsl~1!} zt7w9GUwYkflU3rHx!cg>-4XWpL9hIOAWStw=y*kpTe>F}q9?=Qg8&{w1#IjEsi|!e z6kp0c0c@u&{2N;`jr`EtxL$A!^M5mFX$o}vC3;ObbeJMFBs`ZKCFiP=rT@1K6pZ1&>3!241e*j3FH>^s{&fT zje*o}FY`VvwO2*gq||E9zCsHB`U%GTio8P3DtP5*feF}%UVy1RsB!B}SoH+zYrvUC z^Jm7R-S5*f+^ZDpL-eb*;W1el``}nNY-)*mO_ip zvzIDQtohM7`RIN9p?Z9Z@=SDY@IscS-gZso=#?(@gK+%=RuUX5i$u;DM|N&2x$y*# z?7f0E7&DluZNWNlPT>HL%8c@6$ZjzmNM|i*M)T!P3Sb6nyZ>6Mdz%~xQt=rGsa_@} z=Z(D-5npBs;urMPuRpaC;C@KvqfR)v2XBR$py?(Q^8mv+)B5&?Ka26Ea}K5{n?5$ zFj%l4x*Qi7JwNf0XsrQ3sYvZK?{4UuA;=Evd$<^VQm*zdGY_V_g5cx{wsXOx_a?n4 zEnKWMXn@OF(=_a@tJ4^auTgXem-kAV07b)7<#mwVs3?5^8A*w=uuO7LlT-VXhL)*s zWU^0T5Ei&ML-{4y=Db(Kr`T>@(gWcGxpD)?-muTPUc$z?j~_P|fSNpkFK6a+770D{ zIVlUtcgCbA3f~i`eLQmbng=$k#`O#SYm~{Y4_GsfYcssO$9O`EszNLA(#bYWm?@W# zeZ++b8bdjHz^_R`IEQ}BT7;K(pW5)bPjfLvH?UsSD)BCwad8J&rOq4H=V=Ao7Lfn2 zuaqTpmvh%jxFi%NFsHCPZ?WD0raOiiQQoD6P9i#0O%0I~CX`Oc)+1a4?>3n?8=+k} z10hak&q0TUcdPVDQJ>SA`#;<;amwVq&M~OIW!&D@z}N*?&_ru5b#>{FkX*~-+ZW;? zIWYTr=x%V=8m8!ldUBs{Kk~+cKo{el<=_TZow$a9<`%JiLd-m*k`3zOv>Z3q^~p!r zm)!54?@}~+r)rN&vO!VPfZ~IUH7Ham-Z59zCW#wu41Fs&t7b2 z+k6jtlbLuK;6)x5$;nG)ti%_>q@~Y z;dcsQrlgwG?s`j3l>;tm2_5wkLV`s$7e1B*;yLJ$HgMj_%fm?icpqECI&>+|H-V6CUeYY_Vp*)p8sKrlKIcI&H909Zld*4{ zVVEj<1}R_)u5nlso}VDX|4j@8&R+aHNF+Uh0>Q$g!QH{SLO1Uijyi*(TQpc^=zwDo+!@7Csy#qK*i66Z-V)#50)aPj(^? zAps9Pt13O59%W|BS=X;*1Dh?dk-%?6m*AD2o?>ADDctO-n-mW8U9yDkB>~tWBngg~ z&!B-rgIAuGGps?gyr*rs8|v6?zjq<+(`;X<=VUy0hmzraxez@!vVJ0?PK@v7HgpNfeKjW8$~mjyBNJ+<;g9w??I zc|mEsh^W7^@V#<|Te7(z?i`>~FCF=X*S#uWAOeA+j40vW@5B-K73SNW?wMQ0 z>Cl)O-`RGR9R17iDTx6&@3o}Xz|>13WKcpuVeTNsrqPu;Uy#XMn0)70CA#A zV_^8boG)M(B{qQIE{W)`MZGfZO3}?1qLH9zlZ#>$x^i)4lmj$nU_^@4b$W#+PkgW7 zuGqaIVRV6Vjl({~(la5a5_vtJJ&epeSg%795FDyvbn8&Ln$SIU=Ne8aq`o4_08)NPNkfGq*y`d3(2 zjf#YMd?4D+YRxs2Y3UBt*w=$FspsR+v;A`I$VB+~gGa{5+bI}?V=_u29udU{SxE%q z>E&_?Cyh7vjmMHPL~4h|w_IiyFH32N z+Po{4IkX=EGqkceY;EkNr(ZG+2c!1=@cV6B zSg3;Y+kgav?kCa0wdEaNZCz|Nd4idyoS2vD{&Nv-yn!;kljeyoqC-sdrqlMiSE*v* zEV+ygJPE|SH1vN@1-vG&4zSmqG1diZveYLcIbK(F>`=VH6%Wo;T!h%(u=P%%cw&2M z;rh^0Ic&^%HY?k18|bMSGg*xbx|AQouz7{#;hjimiV(X#REWmmD$emhK*ZOd*dTb{7B(BpqtppmjBUpI(NA5)TC3-*QmEvZ=Mf__Lt7~Xtd1XJzX8PFZU zs5I5lt)|E2xA#@sbyFM@KbN^wmhXI9+lzktOb>{0P_4Tbp^c{>`t$(L$n9b1?(fVG zE=0oQ%6+>AH$!?}XfCpe8p`sfs3*Ql)2-3UJAx+6gL|M^r*}1n6relJrVt;1AXRGU zk64smA%VPfx+rA(2K%j##0XBKx1bQlbz(+Cq{eoY*ifW6KdFaZbK9T2^eDPr zx1D!yCh-F@JeCT2{MIK$e$Pih{E&W=A5FT4!YVcV{qBXfHr{=Mo?+SJ|K{WFvWWx& zrpoPT?QF+XPSDhr37tH@aiR#)RN>wQ!77Zexr$lhYh z(1|YdwGRSlhY5CLN(pgoXhhK?&sKYg06JjXx5|>oU5(D@?8;_jw#G&?sA#EFkpwuI zOmig4kGO27f$hi|Y$%82d0Yc36H0%_6Vbm3Y#b%ND*MBqD@`%g2|sYrI|eYl!Q*mA zoI?K<)#<8r46l#ypyvqk>Yo{w5(OEub0zaXwnhhA#_#qAk#8>xK{t|NUP)D{#N?zo*hA6a?27Ro6G zk8d@S2{HNQULTL12bf8NCHV`G{(cb`fHyWi&xf$Z3s7siX~wnny#1TAuFqU@(MWi2Nr{##mM$2i?FOsst%O}p}=6WMD8Wjnv70^RzVnFfSiZLc-sDsdsN?X1YSO^s!R#3u5M zLy@ZVd>-(;NQato#!%)oUI!nxsZetqfl>tXw!j?xs8?6vn~E>vrE3vZgeB9Oo0;2! zU;SaAwHj}1a0XLOS3~uPIs=?NdWXZ5AAFS!Ip>D_J}7ZWrK{4+OiTjL0%;*q zA6d{A(Apd5$j;E)0xsk9@`?c#K+=w~Q)GV&M^o~vO8de(9TQ&bawV1AOS=N+6aDev z>iHMfSy)0d@UzX|PTTtR>sj*(4GSTV`0lGjkQhUP3N)vO_Jcn}xPOR7!TnA>-Baky zxGDTYcxQP?!3AS`K7(a;D>S#ae`HzldN|gH`KloO=v)e+e>%2Y9X~KYh!st~SxbOD z%?;7`A6iu?gZ*doBOWY-XTTj_aMVl{o^k($vtf(K5vI8tBo3m>a%!mnn_RHqo+}_D zBTa4Q7IIKys0I^k9eo~mo#0yU<8bM%Vb!=&l@s+JY@x(L$Xmiw|LQ_xvYH2R_BL4( zdtc4E^eKWEfGdm}*F;g_6GGIpnK`7`*NBo#8E48-gUEhY#XX*ik{X=-vectxXi4Y5 zbbCA;KdTlQ5$@dXtT^6LuPs5D(P`SSC|NX*`Xw3jxD?6o>Wc}awD`-NN=geTR_*Pn zs(Coxk$&ZM;dgYNa){4F96`q=y34L?LK{Vg@$X>W)VF@yNIHP3v%6S-`H!*H_7NQw zbLJp7q22WeZ--vA5kq}%>U*~+pZBVu25i+{PwN{sEiFQWpIZ=T@v^PUoPX>7X!+u15TAntKjbT7&Bnrtwv3JRVxQD9~$^B-wSzEg4!q020k{|iYisxb?aGd&EGXJq_dOioqW?155ciV}h^~6kFfRd+y z2Jkm42H%Dvw<(-sR)Pv+J=W*;_)cuS8$HM!wks9NuYz%g(3anXlIUPj#Z1Vp1lxOD z%T}|RgweopAFNM%P60g?H&YW@BS(=7eG#zl+mM!1dyHz4mNS86wS#^p3u7l2W5>Q= z@KsBsOEkNpvj@1gDYoPIoKkOt#Z?XK!N#rE?-!EB!Gs!Uef|Ua8*$Hv%OA)|>2w9C@1Yo+BNWF{5xTZ=A0NWxY}xFn6bb#M!9*$C0=`E`n*v zJb0%@*&rH&NXeAO%dhOIMloBzMI0;HxpYC`kMw6GRIMkDOLj&hR|;`iR8C^376P?v-5Pj)l zh=%*HSBzIbM8>*+RW8a#LP97szDKyFm*6uHkViuR<;!~0ZrP06-lGk_lvYLyohi(Xow6e8 zE|R8l^1b)~JBc@~qkl$I8Lt(Hbf@eeRC5C(Ih)T2t#a}Xk5s;zxo7N40zH=@)2-9f zj7imJvtZ8NXt;(Sr7^dV23fHO5Wu0XU)CciqHkmNC}gTF)R>v53oy+@Vqrxo(GK_D z;4Vc$G{C1}))$S(4z+cIJzG!N2wg80d?^uPV{~&mCMAZPB_Hx$YuQjFwfFVKh8l=b zwSpm=cGnBC?qn%shgdD7_&=>1C`mQ#FN$Xcy(f30NLyDp-~wkmM``vEow6U7H{BKjDH=W+eLMWK0yE`-#r~-|pVafvB_<7h6Xf6zMS!SK-kECM}p2eE#SY zR4OJNVx8lH=0yPt-@MOd5^)>> zZsq+v?Qm6c&k8teFKkEH1_Km?>U>LURNkD7LW*ox=-=IlL-djm)`lmNRK}#hsr_Xf ztg=q#N##_OINwi=z$_Qud!BsCZ~lD*p(>h9Mr@=9nVtt_k^@;N7oy_an~~;wOU5%z zqvMAnR@UTH$_eEIzGu|VQ>@|58{>0D&m>A7>a=^M%Tx*YJUiK{TUYX$FG9!N^BKJX zJ&Em61wOyydl86B@-!g+0lJn?{{6MgYsCk&=~C|jCC`arHJ zC8Ndrhj7!a#XeMtvTL2|FRB^!5`IT%>uQP?mGY=Sg#RS}G=wEzd()Y|kK0jO%`9rj zeQTXK&5nd8V2Y&@wK1M#Nzw=f%KUgi*d6LH8tx<>TSbSB73=+JqaO|(UD$Gg29t%5 z*|dMZo96nog6SNLz$1Np7R#`=)PEw2KE(0-3)Ci*I=4R2Cgg7?!!7*)g6x*2WFs#; z8sXrZi4qM?>@!_`YwoD0Iqg@>ahV!+1B=Rq@D}*Z9Y!q}BF?B3{=TeJ>E7@$K{cbH zqGl{{KM?j=Kd1QkKI;0XUwTxIPbS%1e!t?i*VqOZG}YQjR=fdz#=1&dJz_~<44W(7 z3~_@sEO}*ArQi3R$utBhr8Yozv}dVp|5GB~r|(Er0CAbF!PGN0S6y@`?)XqlsZ*e;0Q+58eH5?n zdZf>;=yQGk{?&6H=Xn&?Tx!l;HYNH9A^92ZGdX1PJiX~hNY6j)M5;4zM0yZ)^$$)nPO1o+_{U7yB zufPW{P~Fj6Hay6+a8U!zu*fqsQ(r$Gqpw!;o+fHC;!iNDMi6*psd$1<{|p&|MylM; zqX4QeesBi7nG05i~nAF-2k}y|yRuAJ+0u4B~JudvsxKXXEyo z`lz7C(@h~^Ye9NXyATV(0pmkq(JN(}W~CZsCE7nXdebcNhSZ$hkyFZ$3C*qV1P3^evlXh-pHaj$TyT7> zO*HQ9NyD-@iM1+oC>Q!(z8uLU`eYM&Hc zxfNkbKVjGIF6#y|glU6ucR~UF3XoWjSjlqI$VrCe%nqUYo1fT&)$Rwo0EbcX{Co=Ab z#L^5tgDe9^*yN=$?K%Dr3lA8PDM*T6^Ro6=(q_8IfeWo`FyQXmM)LPqv<=iF4z_U7 z#cr~=KKGL-c$p_hC2&d(ieqGa7bkTrgYZItuuza*XBon^_dl9k*d-n{LIU{0n!0~d zS@qQTst8#OKP`$%drZJ}DrWuBn8ROW6RP>0X1g72tjJYLs;=w`Z=j8wZ ziK^C(thmnn;i<}d*7X_!VZapQd~yI6h5Ec{H%zFG2*b|cHZuN?I1-2frN34!Lf@6kMJ)UlE4Q4wOtw_*t%ko@9vyf@n0zs#IoPT!@o#vd;KYcz zAl<0Q1@Yn{x?A{3Z?V3|2f|s%Dz~|Z*YTgrT!WtJXh18ap$Ce_S1T1i3#MBV+Jn{-VZYMfHw~xO7{WfC`({%qyXVWQMZjdcFe5OHg zq*32^7;LIyL)1&NBAb`BzLYArfg1`4@XiqD)}UonuL0SWDAkhhM;_LpL!fS1UzWD2 zn8fG8UdkW~R@)VwIGV1>r77WqM9aq?JbG4_h=b+*!30-ET$s18Oj4}Vq;p>x2%bn& z6SOqx!5pc`BEY!M?L`heY(@HMY|;N?{r4ZW#?~1r>vL6}PvFhiNL5++cisNe4j2m7 z)=^BUD1J|~C(Dy#JN+>udaf+4B zmRWGyqfwiNwD(g+UjxY)(kd?Mr^&y;3pXT6Ur9RM-0ZbWZ5eT)nn>YNaif8t_+K=v zp8q@C$_i>X;9Mpi~wssKbgQD%}Yv{K;;rxq_T3J=>1KFo}n0G=*eoGwfYsm!=+;5 z03wOGL}UCXub!<)%QaXWkL@fw#p26cYt$icx)OLy@#!-*@ahZYVB9ILj@@8%bRLv^3~$;sP&C1zcAX)m!l-2d+GU}yu|du zPKyo2K)<j>-Po5(_-rh=E3VRpz8oT^~6}rSRVcb7NpzmSKqZsx$s%8)d+XrdR=# z&+jeN+3{U3&vpLDgte?ysKud&8d)X8103m9eB-huubYu zWVA=YH3a}kc-e6=RbzSSa_Zd1hJ$7k@UfJ=D5SUICttz9iE+G5N?q1 zSv|M}xYdatLH@DES;Pq&$*q}i6y6sI)qei4{k#Vdr->plRU=@$;obqiFZY79F^hH%x>%TJ5LxjId432^e81A#u`c|6Jl4UV z{>kj#oO=0(0u4O_?zo&98^aq2v|q}2)20XnK<7K8Ge|5aXrxR~D(uN#H&>B3-~%Kd zr!_B4m8oWLT1S*;juG=_C~lxiY?4c6__xDyLSgQbT#L*5Bpc$#Fh53z{>L&RoOGYB z4nfQtnh1J-1{}hUv*tF|-Q-lYs!Ht2%5hk&F+KYYI@E_Aodq2y@4vmo$%aFOD1$kX zqg96f`%K{aob)lZh=x(0^P1L6@XIZHNhtUKR7}6l%07VQM#PqBJhh+)x z`|;`2H|K3SEk@Hy4zo&m*P0m{9*$4H1S=73;R>Tjh2(R} zPLlCP6l9Vtp6C8}B2m)YrqNs8xh!4`P}Gc^fL^%*vIt)s|345)=5zA zG|g|~oC4d#g|1C^Jmp7!+*1d=f$TW<+RLPrscQ`UcNPxek*^M$ ztfQ_x*(O62UFoOR&%TJRdg7zoiW*_gBAkUROam|C`~&v&upO}HT}9&l;D=bx{%DMf z_5_p&4FaYB(3GGA=C3R(M4Yn&4~fRb-Dn?R$!H+@ihIJ`S}ja9m}N0VLG5GiGb2g_ zcR4Paz%{I>(?)Wd`F~F|IbC=PhgNJx+HcJG(zbR03lm*OTy?WYAKPZKkzC|SO$*pN zw^d<(aqnLoW^<)-*pzDie%60wK=>Hq%NH2%)QEkn!{Y7-hAcT)Ld|D0mi_P- zhL4d!mmZcs9iwCGhH!SsSNUD3wRh@2IV!v5LfIp2LQ`RDlqJ$`tgtXy2J?sH|J3&q z-a;Cj3n7EtG02z!|90Ph7pjT%G||XGcm-(llL95(rU##6Krn*I0F!Q*hhs4}v@kwt zhT(qZkP&ShfCyk(r4!3C2V}g(+nMFQLjkY4v7@

tWroPs3E8xLl#PQVA%PuGj7o_ZInCQJO$;1-%+L1r z;l_s$oV8_7oH5skidN1(IYMg1a9PgFP$S4RN$}at=cHHPAp?7uOUU#Ui_!AO_BG%Icx{}=zr7m{ThvhNw+g}So^D2gxEOK2$-p(clUwj14Rnbi z&UX{C0M+&bAi}M-4LrgCQWKA;1+uMH!vm)$yeo@!3SgGhvDs;7J_i#9Ceh8f%m`S% z76`p6lf2sx3Segzkx7^U{y-}tWOz>E_)FU5zcrUa%bv&4o5>(6b~x1UCUyCZ(KKX391ocUc_h9lpjHWk)6yD?r{U&CS-4WA~zKlXE490mm=WA32FuUY0ADFP8sYzSE2XiNttBg6eu?lrm1-0FN~yCn%p zHL~80U8)U%*J<JChx(L1jy^vxp;8epBwNMbvLNPgVA;@5QmWcu-{J9qK?OE#~ zZkRtGxYy8z*Q1#Ygz`kQxS-tHE8!Wcv1I0!&`mFQ3DWmii~Zq_{s7La3tIUAtgUfN z*TOT4LduJ8P-5E23a;#_wWahsIr+Enl1V+ONXY!DgvyV8rI)+!> zn{=C=^lQ!w5+|rBSU^zFTJo=mqg^rCSFijqoc4kJCyG2LpVedDY{5{H&%i{0({Tp% zvGYb?N^D2Vchk;PUE)$dB>{*q{%_3yT>meKxU0$y`56qhR7tH$C?|Qfruq;k?T<~` zpD7UXxc@Vv10j^0cL^S;5ix)u8`FI|6B6;Qy?ZJ4yiJZUdiRfgPchq3M~-bsFFMDL ztzcwfS1)nBb+IbV;*`k(AsJt7kwrUTc3`c%0a%ZR{TH3H851_Gtp;(f zZJR0yH0858$glgcpysEO3UZ!>VResEcS>DkA%iZ(!eGCNIqwM7?7xR}oiN9-mNQ~b zzHZVgeX#z#^(-2{eQ#dgGIIbzAp36bu60d_Uy?SR4qP8`_@~c4ZCch^cbM13(mr4@Zaw_pWVe2oc&b)O@u2+fJ$Il0q zS2t03U0{D@-XSrxH9zih%C7s=(Cbblp5G&Y4^VChNuRXZfb^}R<(-3w9z*RgcATNBTsQLorOMCoDF=0AdVzc^nlD+rX$ zS%pDmae_bbU)_#6dc5z6J}7r>rRpAqTl|F`gagJlC~gaq_`X*%yM#6`FkVS5n3>OL zwKG{Nk93p5C#OCo^iz#}wO+PHlx&F--CCX$V#KJO>sQ_*3o!Iii*ZOs(S2KzuQX?*X8Q}5m1*pXT{S8Bk zEHgS^#z|`dN2y@$9i}ykWPk;8?W_KD53e6iJzD&+ufM5PE|;f-^@z3wpeCfwwwr}1 z4MO{E4|uj=mY#SHc`RD+Os%cbygi!9+xa}6f&I&f`10HR>h_^+l%)4QPGY?%yWb5< z1+(R?Vp`V!4Rg%S<&Lk*tQyc`=y~Tr$mGF^lB77=6cBH#4{WR2sCvQS1rgE`rC$}p ztilJKhN@g;E?-kkg?~Cl3BX!rTTcmlm})f*+AVX7c5)ZvrkUWJypZTgYCu)38aqr6y;?wky^x_qddJ7!37fNY z{h6||G@bIuJ-+;Hs};7klvQXlq<|IJYwR$R@u8;W25!PKlL^ERUsjKxH#&oc^Ee@w z#CvKk^0#g!SpB9~#nR3y$meIEKA)wZrLvZiMG;tGQWO7#y{}>QD3i&aiYm2091ScA zy~I=&PEGJz?e>^iAe1`)Cat=X+RqhNP0ujmp56IF`b=t1?&WcnbE!kf^At?rSn0bT z(P<&&bPorGuGJ@m)OZc&JGiM-!+%ft%)nkPM|(rJ!OPQfd5o=r)%|2V**wd9QTPu6 zJ(qO7Z*L$-EAo232pu8;2G0JX&+JU3uem}jv9wH!b%+{|M77Y~@ib)KHUIO`zJ}-V zn5Qb&Hj3KxvT8-DJVG?D-euceU8Rtd-xPz7C(DW5>(UJ@(469OskIr08DT84BPa^B z{|m<=t+V5#ulIm-&T?E>M34-&*>m|Qtd&Ih4iB+B0#Rj@5HY0imDp4Nuc>G>Wg5Vd z?cA~GFR9dZE$GDh*S^n1Fy^lf{kQw&y^l4u7cF?(1zVoS=(;soD9jlIu+qmrCaAJ< zqM6|p5M3k=#W}I)vZ5{W!;Qk+aw90Qwse0~8?eQyY6d7P(mfv@2zDTea~egmgVz!B zeMg{`*D_$>sE8?$T=v0Cm$qgbA0(Qfv#^KaoFAude5E5YTPrwQ=}*TkX&tzFX9 znyJ}g=9rs{I8RsycI07xYJhH5Bn>7~kDqNC0LxI8DAoxUk~kS+*?BhBj){^ z(3XmUNOV6RGuT{cgw`D)h5qkf;ND$tNPW2UhXo{aPyh#*{FuKLZyzU{@2U1P_IYTF zE;(={IQfA30{IiqG)FIh%wzKtmDBeZuqucmi^7}_iX_{qWKH`KXXN`#7(YBMP;@=DfVA>-366$%f!5@|C!<5|a}9p@C=F>i;yf zI`=J3mJT`J4oAR2U}TEcTuYR3ggC|g-H|BZoZFh^KuN1+r-pRBg?*sfD2~dqt31HE zB}5?L)wpI%MQI@^e#<*c?XIopVzD@K1qI17kb3)cMT^`vXL=6$r+k=}k4dh5Bc>6# zP>+aJ7mE8;#AKmYefxY{s-CCN&bwX))o`&;(v5G4Zi55NO8u6tw!z5U4U;YNfW&oV zu&4^64Oa}TD6($u{xn+MdFr;pqZcaPy>$1i3f#N+v?*1qFPzL;Ma!aL`S1vm*h+$!B_9eZ`at## zs$DipJ05vvt1Jd;Fmt|=u>3&|Q+YPFe6nPo!!Z&XwQ^`^I^aJ>>edVf)Lmvn46?uj zB|mU|u!rCuH*;nmIiER4?YyuUeTRk!Y)X32#gJpm-FKm@c&j6;kElL{bZV9pvRa@n zwpA(K=*jAaXZ)Zywb&52D&(nQE6!v5use;ict=>om}&TBRP!pj=IHFciTe4}vQ-OW zK{?WBb=R@wsh-K90m2~}n7P|FeUuA~l)gtRCdHp717&5q zr^2drxzR%T_FlHp1!vU4w?!-bW^>u09M|(25;j))+EUc;*$OR!nr)qhDFyUpOD)C^6AcD zq7(V7X0JR*rUlZT^watV8@CG)GG;m4tN3<8FfteCcrH40e5sV5^_C=gBxtHk&!YwGT zVIIe5EH#RgY{iFa_l$U~R22rq9pZ?U?ZqMdW(9RVmcYQoc1EP`0$fAf7atnfuF|lu zGk|L^4KD@>S^4$0o+5(DsIbt&GnAq)yVD<%BRdH?c;ffg?to7Con$nOyJ3@BmJ)wEo(B+nUD$bM}N5k4#69|b$eu}(kIhM2b`Xh zE{$+AP~QR#=)(A9rKMOOEaR%HL;+i8LkWW6>i*~DAla|RV&}HG^qQox5eC9VVrS!5 ztk2Apt1zfd#x(!2`^Tt@IAp7wCp%T5zF>O@rWDWd9k&Q;iDA^4Y&_Osj|1AN{oI4I zYLHze_l;F^FguETHfz=No_r_KO>fn{#?gw@EyZj$nuZdDdx!|R66?wg85um~ab zHf5#|_9vXvF1_TAuTGq0y3|Z@J#HIJEtw7xWW^SDMIaGIj<(2P>*%Y8a~i-5um19y zS*s2YOcaA+BCrkz&SjCPh0*=VcCg4XCS%KHj6I{jB1rx(D?!uehK<7>a@X~&ifxHwH&lRYR9CTQFb-rJhmJr6ZDifo@TB$Q38-KxI1JJ>NIC=P0AnmW(h8i0%3n zOslmKJ+jtmYPY$`M;Ut7f4Jv9Ufp1MNwlhJT>>1i`2-33^nA~)N_^(ekLw%w0k+<3 zAL#%GIK`!w)X_&iMY_~~4^88kY?aRI|0en!)r6Q={hl}}WCHMMj3GI|Z$$2fYnAeG zRU5SYRK^6`NJ21hLiBncf6d_^wn_N_Cz@88nOibh50;@%0*P6yQ}P_Jg3X+hWA5UY zjXr}nF4HK4fA@mZiYmFAHO7Ij>(LDjawk@&BY|cP#=z89gdu%dbxFSqO%=_{!kl|rm&#%`&4qZ>T-TR{xP0@`ZG8gM7FJZXWU*90Zy zrNinMqhqI;0i*6o3kI>^n6|=fUoFTcAc-8am4XzQa)1^kgYA;reIc}F$qAem6reLu zuQ6kUxP&lY-DR*hN@xo^UiA7;**t08*>kbQQ-FWs9$BZ%$IbL|ELo1#2a{$<_X|S% zJpx^t2&`$)B2D7H3BplV!F+>|!tT;g!WouqyJ(0JzvURaFQR-VFMXGKlByaIaiUfh zhTBB0LVq$Sl z)V}^cO<(1f61Q@Fm8h%l@w2-@*rLM%=2C04^O*1}hBqWy&}Hr4DT!?bKlscjL?pxJ z)^A+>%(KRl%wXA6`j_5jP79wkw z8p6{-ti8BQYmX!;6+u60nRtk_D4?c)Yk-Iax#5jzULUFyc4JNfU`6H!y&&GbgrT?` zCk3VCp5yXrLosw+Ajzp0ZE-=qJ`baNa1Qc&6WhFkkN2$PlX6M~GzlhrqqZkSb^(>l zv%20jS1XCCF61@u;jB<2Yn9le#z~zPnE!y>Sb$mZPLYfz7H<_KiLnzKW>v@76aFBo z1AdA`M2;V~Ud`E*-~!sIf(Qv~4*Z{Ohu$3;jM`DsMGGs=VGav zt0MqfO0|#5c}J#b95(pw!zVIY3j2D?Hr(Ep@uiwvwFCSj`wxDZmHfI3=wWJla2IJ| zeA%?p#Rp-=x7ycR{8)nR|2w0}r$Bzu8|^7zNGb-r`*=vva{n+TrcZ;{6V~Z1Be1JtwKQwniT5(_ zP%TRN=l2Mx`oO8~87@~a&A({>3%{jm96SsDZQt-_$nXj)?LvE<*^!P>uy< zxXV!SU^9j3brpF0TKXMf>nQ7S#4hjNdC0bYe!wp%wsRVjJ%zRbD{q>kVrZNU8fH1s z-Mx_nRx!TvK5WCW+`aWM^BsF^fWXP?NKP z4J*#U3R9H-wDAL(n80nM7YJgC{vLeL#*Q);5ex`>ZZkt|7nM#Me}O)wq(psyS%4#_5hp5fz(7XJ7+gY}J= zxDQ8zhk<{iVfbU!cmy8axewcp*C8NevGF=SQxyzV^Q`snfEjy&af^mP z32;kx$+-RUy3(5JXH*J6=rLnPeUwO0%2<(4P=vKSKo}>)uto724=K*w5-rs5NP0yH*8mqdP0~=mujup3^2dFjHKgPtlb16l1cToSWZN5@g0 zoo;&_WMHEOzD_82sOO@TCB5@%W91%t?Y>_$2vhP1Z<94JT!(B zvks!M1KPoPD21cKxTE;s)yzI|o!v|FQ2#w#N^2w_h(~fk*yz9O)sr9;*?decy1e56 z<#CzpI9v^A)ZCJaF0-&m!X6$tO&8LgKIcB_n*OZDnsFc&eH#w!Yc562W)>@G!jpfh z^jlcOPNe1~GY2HfCrOrPzKYlsRDies0bv)2z*fRzY90Qbjt@Y6WBA3=0L&WDotJ$< zCNxECVu=FQliOTK(b`2z>4TXxmR^B)+ozn_dIpUw=Pro&(t~|Xea-l?6Azzj)@$Xr ziQ5*{-cPwldG#@0=YwCH7?JMES%%a`{Q-|ws#-+}IP-zot&tg(y+bISd$u9zL{Nar zuj7#ci*-Lh(D1j%&b&?{3STk-LC=flrGLky{&}* z<=b^T06tmD4e%0zWIC=&jgnk<=H)07g9aW_^a|fmb#|mr2UWFlXy@*x^ju(>huZ&a zJdc~vP%>_vZZi)9<_VHzq=DYd*K{g7f!UpT!Xu;M&Zdxjykwl)s*rC=;hOYolJX#~ zORf>l)*6o10vTJ6g~gp`wV{1epOD$i6>F%Yppzt^)F9yZ4HVg%#m$d?pV6<_4Y7YF zIj3TeTlLxiBa9opdXUCaVw4gXEw8VpbNExU5pW>Sy)$~X1y5FKQIzABUOTs!ENm^N z+ny{$KyweU(D~;(@ZZ?{10Vb?&~|6;`Jp{r zcrU>7k@J6dCSfNIiO-zZUzoUVPRfuEFNNleQ|K~8`4rhqIq>We2^952i)xons_aFk zxEoFWP!~wf&4|Q8(6g^_p<#eXxjl)!l7gE*zc!b28ogy>i)~=!X}VCqcAt|IKy(0EkL%awjFuS zt}|T!U!lq~Hn*6uGWVnc-|`*zgX#4%fB5vG20ZW%VlU{xQYxqNa;t!xHrwR7eeBC* zUT@9G{I73xS;z(#p%S?fJjIV8z6bt4F6dNa@J;re)%g=(Qmb^#c1O#mLQ@;Nb6qheiLf6~T%3diS| z_^vlecD#vpFa%f)7=-U5Kb6rwCHFj1Hr)%Dqjt@*#jEaeFnu*P&l%`jCCtP7C~fEv z$wJFRJEzoTAl?(pzW0WzyMVBM3Ye1VJ7PddZT(^_CMiA>+wpx_oItnzoWu-EeWu7f zdxUZ4*Q%f932Z0cjSf)zWCOQeXxjrb{EgxZ7)vN-Bo6Tzn!&!X;@;Pqo5xIIS<`N! z?>5KXSIav%r1?4@&8&1UzhjRUIzJO+n}Z=i1cW`CCvO0)96ykW6EBGp(5DNsnQEK2 zCdP<(zkC>_)bjqmC;}#IOm2j9QItoy($g2un@v=iTw16y4Z>kiDV#N1eaGVFd*23l z)s|9-5Z#snZC7hh-2*bKBL6)TNBeI`QaC_ujz65)uefol32kl2&HzF_lMEh>xa~fKq_RXaCQ`c*c2JZ{g(aY<Ex8}umf=rWSt>B9>L_VYV#jxK$TDYMDX(fQxW+Gq&DHc zi0gGTFTNp-`P~)9ulPFP*?Xjo0;f>#6hV%3NDfsW_1d!8*UvV*+{LzKb}Z+p_nmMD zlir_}wWu1W`?O#i{a3V$Vr1M07$o#RXjN~|kBQ>^1>Z>;V3dT-3f3)0R{sVlRga-m zCo9?>=_(_B`oNqHh3bQCi7Ymr3t}^6jTH13HsT*z!5xQ4DRShhr~x1WS}5NSFP>Hk z0Jv)Z>BxU^XJ{yWP3za zYu}CKPZ5@`A6B)TVo9ypewN;64Ee1mK#+f4q@?QtTfujNdMg@~VF)bJ!MVfLpm@o= z`pC<%qpsf}-vbrwQ5{G?#)U1?#aenH6d2pckg?Z)C@zMLJDg1z4|gd0 zNmRzyrBFpAN#?+IDDRJf!$bacn(mV}#&SEQZrRpK!>;>;#X{V9_hf-Gf-w5A+4E{} z?&*0qpA!M-=MOqiLd>rj0>A=M$PbXS*QsMJ11q4h+iFuuJ=G53Wy5|u*(>yGkVc#E z*BZTyhvY9dVJ=*!%ck1UsZms}d|~8Mb-cJpE6;^|sE1_f4jF+d>k5rc3vnp+UdfH! zkICZ238PB;u`wAT5x*0l8L3?~GHZsD!bqe5yLb?|X1edWJvYzcklQtCwLjS&s{#Qn z$AJinwgSIUQX+m0bBG$pjBw0F;9;(#5&eZjgn<4;mb}c43D*5Y<1|M7GM*Vqto**O zW>Ue}?ny=Eee)0>M~bfskW3d+FsS*I`{wx@C7hFo74OkaCf9^j=mC`Grt?E^o62j? zIX#c#|HeG%Cz(jkVItb533^+{=W^dNWDlX_UlWN4A1Fc`kBh1I8s(WJzvHzyCPJoH z3ABvq$=hk}vzm_>weH{Z5?tO#)wu8a=DW*m4Y(jh#*;Os>G)o7dX{rf*Dxia&q@Dx z{7{K>3(JYnWRw7<0D&67{A1!qTLpupQ80I^@|MqMn#`JJlDN`(~S{y=WOZd<3 zHha+n4Q~AvdK|Obx7su|0q4w4hOx^R?Pqk1X<*?rk+LwtO&V3G zXu~vh*>Pv_xwl_O`|YONi{d1h9*xH#rd5;`d}~O5OO*24&sj;n=a1E1Q`$D=`e#GjOIPyw8Q$B^(dA;C7uo_q*_C*rE(^Td&GlGfy>m>%?0 zdb0qQA)_?OYG(ru7!dm(oaFUSU|zNucHGE9IN;wZf~9c)4Vb_D|RHvqk~1R906 z=0j!ETnaU79wxag0v%MeNXV{qBu?z0g#9k}4=ZH~62u@Z)zxQ57&xC@ja8sP+oIFW z4tq-#v**?TBwyt}{q-b$V88hM(nDSbc(v&1p0#-ulud58Yi*_4jSlM&!4_5Y!`C(F zEZ0W7-}CK4wz@wLwV`X*p;eBKIngjCqGY!M5W2v>E2Hi7R~v0w0orIS=(|otVvtN1 zq#fzM*`H|N0+^dVYm;}yByy!x=MlTmOOydvTZcJwO)0MMGE~R$!*$F0iVp(@%b&`a z#~S=Wr=ng-rWK{w5RZAthHTIRn_-&|Gm{1Ca)J96i;rDY(#_Lw;o8}9VUdY;^m zLx!py1taNLgq`z`s_OAG!z@(7 zQaXpvTsCFv8v&#K#!2Z=UI!2<&ZDOh>B)bvAkW`v;fAE$Sl5$J#jD83_5k=_`>zvzB^#gWqfTJ@g>~<6NZ0le? zk)gQ68xI1E!lq+(s8T`wvEV0gr9CJi#2#(@uB-5@ZDqY)3Oc}Kz8Z<2WWmE96Q=+? z&!jcAp-SzP#VfGZLs?XJh+lF330#~0WizB69q-5`JO9tSU;Wf0ZO^%cT4Em^BtS>T z?1@<}Rd1~^^daHRdjz8lf-Z|EdyQiBJQIVHl{>#}sQ85vFKv+CrDO^X+OyMy-HzTw z|Nrc=Qx2~P;D>`6uM)mRoeNa1$8taWvw8;ij+2WhrT^T2NBs zj==;s{FTDOypR5P!4q01ICP2O%5>UnklA{O1}{7UZ6qM%jIOb=RRoI5SFfeTvnrbS z***Du7%ykI2=LoSW0NkaTn=dRY%;IhWquLkO2dwPFOrECsY9}f?+3iaGJWj)>P)e@ z*zgR)RKk?L8hGsr${Yh9PIJ&jCiKi)jf1JZ$Mu z93LBBbor2bxK>qr<2yW0Khq~+tDFe3A7((^ByoVrt0RFldTW9Or;qeO84yclMhfMP z>&Cir7g+YPBG&CxsT>d-E+t2>2}`jW>RKR;pMri|rSQ~T4^-{^`!M%hEdd6gbSUs` zFQ?afd{g=s!?=(nRJr+j%pXo%=6^uaCR3bIbhStpm@?Nf=Vk1Vd>=fANg?x-__25` znYkUY#L-tfV=Wu#zNb&ty16o@uU7J|_vB)oI@?USkOja~9Je<0XtrJ#M(2l1BT$Wn z+#QJ%&$_k1*1BIc-He-fKZNQ%4}F(kvg{uO5M2Entv;1li}=Aa~z55x`O{8OD4Dv#J@wxJJ%10KbKn3}y}a|uf}1VK&f zN5LY5bxx{qKfu__h&nRId0OWF8%fX0E;I+Miq$P06{BJA_zHgpA&!uxP-!jJVdiAA9!Q&WE8H^vA%#o z_dI^FOJilFHEQza*IuJ7axy(xfILu?8mHI&+Q2nkxvT+xPTq6@5?3kc5L5!~&nU5x zD?VPW*?H}`IK&rkkxO_Xrb_=W!2q^mc@XB0YMYF5U2N9|DUULoH=?VpB{>DWjF@`3 ztGFVJ)`TE;F6E&m#QGd{L4R&y&%TwPVg8iNfF%Mil>8Pt_9l(au5k4n8;YxWDaY26 zQ-Q6T8|Ub;KC|YUK#L?tU1)PdSF3q+&+pnzn1$eMgU9wmTV+Ge zOVMkBQY6>AKWnZsSm6p#IVu!@E;(S{o<^m~dz*Uj*(27fPH=(^a#0k#z(Iz=uW!b!gpVR(ne+{;dgwINE_kwM|0K~AqZ2ZrGm97 z{`~(6K^is6%?AE@C+%|*!ue!i2>Yuj*_a=wE$6f|oNaR*`D(ITOOmJfofao|P9ER2 z@bQfT7*b;Zo8P_s8pF_i&c_eY#}oz^toS2>_iTb(AI7w@mxGvPPSX~^%@iDT9nx4A zl0AWCo!M=jJ)d_HJlHQc;+JTEl<64W=Rk3Egk4XF#(a~(5i34wsWx(7Lksh6kFe)w zqc#6drdS~k0xm6YS?psR4-4Av@B*;6b1V!u>bN)RnFd1zY?P$A0WPCm(A6htJK}SL(6Af3)cp*1B#2rkG+c?aVDvP)Q%MZeXb#r&^m7 zF0^jqMEwmu{;f`R@i*pFWt9cA(*RbPpBVn&XYLCd6sa>vR%b};tibH}jT-Q)R7g3V z6Q0mg)MtpH@N!lSp2*}t2%c!_xU0#6Q{LE#S_J^+&#H$yX(5-)ZS|COf?7U`E34KpJ?_?rF(8)^WT$yL4<2n6>P%h;VOuH z+|wh+20J$FMSoTdsOj$;qK=M86wB2nF9@`Ne%@EK@#87Qs65{Y`ZEC7ej*A&iO!6JyaHGZ)C{jfkA;Vt61u%M@Q{u4HmxDy>~E82 zG$1bL_tGax@wq+HEG$O6iJUli?(G%C`w-Eb37uyOU}t0h+HTa__kookVGrgD`luA2+82;R&e7>63A(J^%vVuzSU+UGWa`!y10c z7TG#^aukWl#kn;1xwP0v9?3p1wY5DsL>6C5X#OcV9F}zQI%E0(tiA=*CoQC)(jPh>5pun9N4)*2lcb0k= zy_PA!4PiA%V!FeQ; zEwbWDa>p!my_b4xkNpe|&8@ThV#*G%k~vjH$(PwJ#8n{go44*dJEs{Zubr&V=a$Sm z_zgNeTu?)zrch+0Nnl7u*tV?0FIgeJYvwyzX~2*Q`$RQfJt&{E{!2BasGv!Wx%2S* zwK$bf($#9+B3~_ITo_PWkZbI+9oDe6?pS?Ai?}I@4aKk&@7d2j?U$7ytzY7^+ZZLT zN5gfHgwzF3h7uz=62f!BZo-PvX`m?TxrDNeYB!b?ShE`eMen^mok_G}A0V08qva3iv^$X)um0!<@EzLJaj~&#nadvm6w`gsy_e%SR(+ay9vf&@W=UgcbXj z^dt>f>9!RV7&aBc#jkwbvQ-U*lj>yLCaEzH%yhV(aG!c*$ko{K&|>9y+KO+lBVFMF zc8OQIl3QY`Ushpw?g9dXZCSDC26b~p?msTxr!7bcDdKO^b7Z%JWh5puy{jSZH(lE@k5jeEsJQpBybtbiPm%|v-X?n`&>RZY z!^nR}GrV~ZK$T6#JY~96%MgQ`Q6hm_)^V6dk_J`aH$!${@M`^2bhAf2p6zQnz(9C2 zirfoH+g$d>Oionr0rN8CV=DNZ6ZRlD%}xw07Gj;?`j;W|dIALwbSGL77Is<^h zag*Q96rE_GCRsP`b=k}zqd^~A)rC%2|TEf_J)cX8LNMm z5kgAbGptL!s5ACzvc?(7I2`C16-@4Kzi6+v!T#zPiy!<_6h4sTqo`hd#bT=g>;Sap zjTH9I8%!);pigsHN;e%fso%@zcVbP?5m1z}{sS}o-^o(D(Jiv~t z)AUKQpNwX~+l zXvXEs{o0mQ}G1@W0oj=gv3FR zhb<;KOvk8%`~&3qxTST04ckMB`xy1Dh+Z2pVZfq8*q7nTo%ge;Oz(T*=^&am*uLbx$IhK~O^G&1Kw zmfa8P6H3feK)s_W0X!)eMAbLyD(=^d!-)GYNFMF4spGrAVRbmKOT!f3cj{GfJMQ$B zo>PrQBW|b-k49+WN#p<+ivu)F3);c(rEF9 zZ3?2Ub1rCkr4|S#%Jpf+@hA!iKSLrmoNCm=ZKGR3nfZw~!Dm6(QE2WT#D3GAcDINS z0W&O5f9kytQ=5g*f3NYCeZf35Wy?aP4bAOSz)EuKPJ^<^Wq}l`k!SNu)L@8Ex-3oQ zj{slDGOquV(3*J3Zjl6{7M*`3nL6Cj@6|AzzjR`z%B6R|irLTSUq$lN{0QK&4HF5L z4p5EanA6E~k6S52Z3dSsHkuns4FOSn8e7YekCCua+(PL-DM=Is^n+)Xm9jNDGHgUL z8~xbtG9)XIBh650SaH44$I$___r=?|lCT0odvI`zHcvj#@=5fV1fd76GyEPf=JuMA zktbDrF=^q~eN!9UpBlc6)1?rEDiU`?mR4$yuB{Z?gRhOUjp=@=&2mAjSrsQce<*k~ zk#re}7fsMxH=JzPycnHLbwsujqLc4)hxucM58%>N zT|)i=;2i3ZP5VQ&BIywIpVQApKNBw{I-674tN3*efuSWXRiPT=14=5N#f^k7gl_Dh z#&{p4kOrCWQd2H9)7NrWZ)2#=SJLM9j{OFIH#_vCj+5uWX#^dt zX(_VUg^1h9#GEEQ*@u~`ijxtlwnVLlu8m0aX~=pUrTRl$+2b4g1>B=|DIY*znaR*PuXc$q()FpM7KR*r^ zh`a@6_Sl75Kt(9P508P`^a1<1!%&}0+5`lsR?lr@#*}XZ?JAw)s@@c;<+3s0;PdEMI!|?Z=^DZMRmM?GGvOYsTke7L ze{V*nHc{JF^=r&LUCzA31%ps$tP@J606O!xOwiO{ESi4!_c1}dP6%XYKFu#Hf8j)= zq!V#cDm-04Sj`*lq{djw3N0E*{k-zLeiuNblQEY2rP!8bZKc$}fVg_|#-F;#3lqTf zD^I@CaZHNDavL*A$QL*k-C167;O;y{hTAc42AnKb_OyPDMo*$5*Hu9lYZ*#-3>}EC zimYGOq5G;ltbvP9k4bOG!7yVIwv;@C;Jd2b<+`;`e%FW9b&D14zMc-4xK^qh?aMYG z{O?parLEE>a|CvV{sV>E_HsvH=!q!NtvBSEVo1m)BDPby-xwdSHf zfCCJ>6^EsO7HY(-Va%5jar3DqIUnaY4f^1UscZW>GLOY^q&28*#uCZAA$N`y5*0PQ zG2*lX<{1kL_hfYZ@13S0doeZVMkd=~o2K7Uh%d^MJxui+BB2U$TQKHrZUFyt@#U-p zfy!iiy~`#-KvwxxU{{M3 zuz3R&JGuGPFA+(}Kz9j?w5n=ZkBR3em4APNPU(9eTvh{Xu}5S8N`=A#dr|!*V=05* zb5-V^4~%S@HGntR*0bB+=(5UFnb;Nn*;b*a!ag)Tow!eYs|lTgu-!Uip05U!?#o?M z+||Xh%UY9IRAY@pq1b$JX-t1JnMrW2$)wJBkgus@$?_L(q2l7@zj)Lj4*zpSZ0d{I z=QhKkZ;puuB0+PzktGpVHm|5L>t#dXS)$tukT^i~EK+ntX|3Qzf{In@vdtPUe}mfmmrzEyw7;9&1ufDJcwFt)4{m;xU7 zjHCGPuYSBLQRjH!&btStYQrickhEr=(L-dEG8m;mGd7$n27ANSN`ayl@Vhv;6vx=T zbM2{NxK-UE{{6fWxlCeK1!ubP@?xrxD4Sn%e9NA5FiDNu`Z*)ZVMUdMpm-NXih>Ij zdv-OH;%B6)!#pU1W~jyb{-lQzw+EmnFyQ2!*er6HS#D*Ki6)IDn-C36sgVqsz zm<3Sa9%mPP{3NTm_oRP$1h+NdEa$PdHF~H|2_J6cv)d>KDC$cn1|CiM%OxxNT!x<+ zGTx^N@?Ujexz}sVKXMZsN5W_bV6Fy^UoV~+1a&lxv4$b-RZl6Gy!5)P0+k&tKqu)K znB;0GZP4Q{FVCt=?>C=@^GJXkizWIzDKAEJ7FjsDDTj2ndA;@5V#VdiT(Su!w; z84y~IHD-t@FwjV%Wi3j2GnuR&bHV5%WOCr)QO@_{Pc+g06qrL9m|N>(V@^OzCO?MV zj9p)ct?$eEO)IzVsD2M`eaBtDrq$i`jICLgc^0QT*`_u9>_`&981iW+6KmLX$}W|+ z6IfE|*g1#OD563$OS@h7Ab2x^v9~XwltH64bIfz{az?kme_o;F=5KF54=-x}cTUTT zS-6dr4crqv2k+HWY%i3R!#p*nrXAN1*E-#Za+&9qVv%2>CM)h(ZYi`tSm@PLIp48# zWft@o=$ZMRY)ax2si~GcR#qFCf`=H)<@%>H_KC9F>r+a+v}ftOL((OS&1L^NK~RT6 z8csGjlg9DRt6{ zIzN%k-kRyY*6KwMeBj50-ZE`bp;8S92UW(|MsA>SlTlD_JEuUP>JJnEm#jnv1jP<# zFEYuB;jFCcJZzG9cx14pXKR#!F7@p@Nn@B>l_u40oEL|Gpw|QOh6Xf`nmmDt7=kIW zx^uiD?X+Hn*J`RY_oC$2|4_vgP(ix)VbY^Jf>NJkno5Dpy&%wp`=O41{_0+%=5L#@ zO@N;ZJ;7H@4Vior$ieCRr7m!)Xo5uoAlW<`=C7&a&@Xcdc|t5W4lsH&SJ2QTZcA1C zdkKbIXDpCg{G^xog561UdA9z6aW=-Y|Dzl?-v#v(@^FE@Fnv&UiQ})mGoLA!$}CWz z;mBy>bKKB2tn9cVoh_-%SKzXkUzl|w3Vn6C*0PED3O{j`1E_c+`EBNP6$?nHs~k+B?#fL)Sa*n{`%u|fZ;rL`Gm?cZER ztz@@>@s|&dAHI4!)EE#+(Rf68%{LvtMgfX_+W2A}14^Vq?lRAje#o#m zjqpr4s^~Z&_*C6DFc?%M1Z$4JzdTtZ21K*MS-Bbb zjWNSEpg|EsR+QmD$9zyn@jS-UkMh2S=ob=Uw>oCjUA=rFQyc?!d5X($WwQJKMAH1; zQSiQ5MW{)f{3Vx+)p%tWmOzrP;p8J{r`U{5?QGsn1q(gPMVl_np@CNqR>v&p3?rX$ zpNI38!meYpyZt)dF7Xe+$xpOvt z1m~>trivOS&w#|{A+%T%{``F7f|+_juZJeim_`@ zSMKhpuTU6=AIP0os;VcT#un0-gk3qDm7q6ROn5xtFAv8@XR4(yxXsGqNlo?8)BV^I z4f3Fjnr?K4zyZ+L*o%1fTCQ6yCOxad6N&`K5T@%o1uPhO1!~U>{af@1f%rsy)T&ZC zL0solue)S_Nc26?MSc@X-^Ra?i<&xA`cvi7nyJ5xyzOqK0moxq7kuGOp|4BLl+ zgVrQU4rFH4H6i^SJ#U=jUT72l%Hy*5-xa)eN<(i1kHnU(B7}5Jj-m)DV->cGq#4}X z;OZVVaf6MR7=Y7`WaPxt!{ii!m^aeN+O;OWcreguwfQr+7gPSz4RnR~I?pA#mSMNwjAn^8IE%!%%zHG7H)3FiT=hI}Jo?sL8mDv^JPAf6e17@{U<2&qbc=VgpL?CQB1Gh$MQ{mU(57#tn&A#!df{m5ee0)oef1!r3iESV@yVt!HF#Jh#_BP?EOQ$#mTB867LzEx@R|^Y3Wwzepq8qdBK(a? zZH>j=2!rBZbwXG}D+}9Cr%x`r?)>l~PY&FMT)kYKC`K5ooF<;~Sz5|L&82ObB0Y^k zn+W^&h|cig|3++&Zztc}Q>%ze3EyA)_B<0%tZaA@a)6K9c85sRVxD)50Ovc}@(FY& zEX3nHt1GMOR_$ub)R7{vHfGgo()w6tvL6qBQD{C;T(X`J0WaiDe|Yyj&6 z)SgqF#INHsF{_Jx+Q8`Xs*FN?>MPqc6Ea!%}@qC`)mn$rou?dm#n9I)gV( zePkd*v8B**>jy?0KW=cuaFeAt&eNVNGCVAk=~ zI|Dmc&$W9N8Fn+ZI5VGU@)ER+Fd`h#n*>j@G~X2@{9Z`1bT5!2H+5yrht0U9-Z`(t z9g3Fuy~^XKMK9wT@rMoWf$u@V&${Xrrx~DlB#YMz zB%T%GQLSt1xYVVh!9lm0qn|OXg^@v@i`hdUyId;#IyYhYrMKYQ8=>SQmv@l?R$j7- z5}ZUJICu$A)1mdWuHkWMYP@b#AlVshnZUHHaNS@kT{uPpIk0&b;slZZ#rW05we=Fh zhee#m0+PEr_ynLExt@?TAJ(z}BW;`unD?}j^p%m^2E?7q7<3c7sB(WOE|gw}X%rQj z=Sjq=7-pQ6uXgd_hJ}9k2`jdE>W=##1hEon+HU*Pc0~jaCrY=HkAb=w<*}K% zh{y1UmwZh=9*XN4xaiJa?T_(lc;a4D501y#x+fo*^< zurA~T)NSZxy>>qEOB>oS)DJWKGV`0`Ol+FO)%2gxJQ@kump&!$kG5oHSkLa_F}l8< zlofEWepfO$29TYGaRLxKV`|EupnZ~6aQ>#csZEjXvs=m3IO3!-F4V%2bzOv?Ne~Y8 z`A%J1E)81xW}CMunby*|NJTSEja60DiK^#|`41b@ai$c?7yvNxMe*~ZK<(c$PDE4k z2^OQhS=zv!6w*&ig*G<@me1l=R~XBbF*WXC5}?cx4x*Z_;4WSK@}aA6d0oD)1J zF9FmZXL?0fgSMY)0#`s^mlKM)+bei>$BI&uO%{g_wy8S=m!qD1GxG3Emexa%>9~gYlGg#(SCsT_H(9`a@l0X};~5TVk&=A_~j-!$!2j^n=MSSx8<4_1rqzF9UBPqebqd z4w1ZDq-BD$kpTZc0Kh8UqV!h~Mqf;4_tVl$j4aXwSL~9-k<#|K9z-c&i8{SP#8&cA+nc$;LjR(J)tKdHT z!DFY#_VF_j_V(NBfMAS6mM&6SA7nKN4Ry7>NgFu+j@CzoTR==r`>(8`!)U#d0q*S? z)(d;`xq(E%x&rrbaC5LnarvI-rHlEZ_NL$UjGfhd*hU$wB;o6K9Bf;Zc*w^Xljs5V zr4uP@37)&ScpQ@q!h+{C)3p>dq)WTB3uANVlKnfDruPmumBu3k;E;PYa4}H)#{}sv zn**GDF}{zk8DrbC5}Q8F%=KoVR8~5+>TPCN?~oip*R1zjqIm)!Ys&BMa3Al?Ei!=C z+R$+-$ldI7g5>cjZ>-=$OMv-5lE9@AoGq>XYSx4WZ1d9{NGzR~%MWLZHj$@O00soO zT-6}Q3ls9Oi;`(-V{VIuh^{(OJHJ~j5C*dt>VuY_|909}@{)u{$M2QG4Xi-){N`#_ zw1NBp1581D4-FM5inf~@0M5fv8~Qzu8hA`A=rXIo;!nQCSKvC%vckeDM^lRvNK}F= zoPAr~Xfy>4UyG&2#mJmBjHCue3Wx*17G16yzL8q3YmnL+ofC~!FsTiSl}I3`{_(Fo zehA18-7O$0?8#{`UpW;_fpdidP_sy)= z2M+aH9r)kon$n9@OkeMW9?(iU&)GQ_{IEsy8y01xy6Acji?%jh+A#uyO4);`!0vn! zQ%_%uK@x$r+fokbfWfxS0B?i+c{NA8E9)_Nht)+&q*`ylcjmHju(ru-T^xB)Wy9v% zSPw=QHLjrQFn^ojRP=@U%fB*N!AvkQxkh{Erljk%wzd60!M%=bV0!P9W%1~n;s&8q z6~IBsJX)~GOol$2QnCP|vX3h2)9h??YV}q z9L^b^Zq6m2dO9=B>bt71Sd))+Zh^tgG_}ueg#(gVy=^*fKUlRJrLE(LFWHV0H{md= zH>gA2cm)^>6yxi~h4xGnY6GB63Miv1`3UOgL;A-A z+JYs_7|pq!PgGXdi&+ua7$M=DEg81z7Y`pH;rdktrpEqNa9|L9?Q&PrtgS-6-NeB* zNP_bb5C8z$CTg8Hl=6;d09rbp<&hSht`h+_tWVd#e|1(k3msU@4+Lj+99Yc@H*TvAaNPafN7w9Kkq(E`SZ0As( ziiT<*OYj7FZ6|H=1luFm6bztAHiQ`L9pDlO2k;Gor0XU=jFW@MIxU0>^v#uL46jb87m<_}0;-ISv??IQRNp@Th zLn1L}7nkS7aRj_s`E8+4sh`CrJjru)cM7TY6-cO^C35N2hTq5bcU?!lpBW!& zd`*_t?)O)4xar?i9lb%m=CiHMHO&+`cQyo`Qrm^_5s}&e%NmoZKcf6(Ek$ z6zjM@LUCCYLizJGnfj0BZY*bY-n8UZMa$e;8V7ugbhB_@gR_1${?85d`!kQ{D0X$w z{5GM#T4c6Qaqre2G*B}Cp%!u%UpyPo9K7hIW0k>5gsJ2-%6GK>5bji0A*j?BTqZWk zvm%30YXZwYWG`(OZCH`lDFkrShp_aiKol9l9>r$mSnj|ILrrqGpLN8A#=UZ10YnCb z?XfCIy?d|?f~_MKY@0{SI1c+0wbAF%`h6ph6qdiFfN(SJGUn=t!1@G<#^x<@$%dZ2 z!d=CwJJgSxb4!_cKaFMn*{(LGEJ9}* z(3x$QWjz6OpA3ohJoDjXRTC+r@KI0$d zVFcjb>wl^u)yM1Mb*GRBj7wx)H5hY|cEb)a9G)3+Sros-EghMfKn^!^#)h(}jWDck zWoNU}kn4ZoR2r^++R;F3bIA-7nFwBE`qR&ReI|YJtr2#~C=q-?RVtfr9?pJtU zh-AeKIC-&{c1}lN9M2r}3`5km_c(Ap ziUiHfk~h7Idng-|i@t-_ioOuc0QHD}N1f!E<9Np;NM-^$pr}NJQ-fDZfk5J{uLGOR zkvFhGC~Zvr0J3%djNM1aPS%17Ya-6YFV815v{2B z24vTArT+3a@}pM>VH_SrUhPICmOp&7@}4RlwUAD9ePiOjRXB;$NTic0x@|y6?|2{? zY>3l)YvzKLm$Cqr57?whRJ1^)N>NLo+su1wi&-O!qjvz4-~EYqw^vD5RI08pFMjj_ za8|2!vwd9&LARA7$+aR7SB{ijtTh_`kEO4%qz=U{uG?SWhITC4Nag&~_9Dsi>B@^U zhN~LYq68ld04rp@X)x%V9*tcp z?U=pfXF^%1Jtyl8I3^v-VtG>2q^`yEk{r`cb%kh^p|6T9aqGREpU9iEB=LBW24a}0 zg_{y=u*2MD^T_rZe7>z6A|oT)=etw6ESbn}qmlr{X{*C0!FA9>{OGvvR13nH(nndb z9&5yU=s>t`ACX8yvyqlIU1|6!8a2<;z^N_uP90S+=F6gKr$wT$@^0r;0?#d?a`rzy zmxa%2Z$06D94rU{rfeoD*;)WYJ8t0zpqICbfm2uFJb1^myX2()xr$6BRLdgqKC}F4%I7+iZOC zTi#+6=%B8<&AQ(?W6uIe7>~p>^ zx@_5V04kS4?{-O-OmGQGx3K96+?VGA0*sG127z*U)SNzNItoMS)$co@j&z%4mBjscJmWv~k(fgx$!9j0> zpHAB6y_1o?I^H`~b=AJI%Drhn%dSxtA3<9ibF$s~$l{w@+4|y#Hnff(^8J6;pup5H zo>@kUz*P?;+osxG&4GeASn_Qnb2`0XEvZc@(wKmG7rn)vLM}MC$b=p0Y-J|MC1FWR z4@rk$r}#(&Wx-!EQ&=L#sgZ_}#B^imk;Jw(TA5vPETZ8n0y&W1Vwht3U%g?+!NK(q)i`X`g~ePeZ_3SkYDY2J|kpTT^G8lxf6d6RD^fg zmoJRlVb@9qSt7wFyyo>qC*K9`?V(|yj){?Sn`-mclN!y|8x*IjG>e?VbJclFGcwhz zdEqz#lKrDX>|D<$jSAWIso&=k*1ZoOX3X+auU~V`ZUrmCr_qDhQwD-hX3?^cE*4S^ z%T#%rPOJB^5g(ia11m?&`=7g80afpj%7l<^(H+Jct#uq_(dQqb* zPGKQ+wC3ckhvAXgvA`&@r4y*P`DQ@Rzb2-|@2%{%(Iye{=<>N4z2mgT^KF#J{{K}v z2LLp=VaE%y#So~*Nl~Qne?^X~vK24(CLej-fJXl@LB=>@V^>#;-f=-srlMouDxTUq%*$S8D@E zTq#t;LQA7>|+3{;(YJ4z%pB5HZw&c?7=a=+Bc9_~UW(--N-^_D8x-JSH_^d_VBc z#CH{6<={Nh+T#BztPhzBGM$H|7tIRuLLKP71t;SP{vCb?evi|U-kz6$H$%f{GC*tVyE8BEm=Vh^s}0uUb`%F0HU`YA&WP3c}a zow0N$%O#T%ko3Y9<#~@$B8w|z>NtV?-;Fp1G0$?}S+l076gLm-cX6k%Ody!YGEWWw zf)j-{gluZLGXJo8I_7naGi%n#)zrQo}b%W{w-V9IvkO7lb~m3 zG-ellW_g~kB0bur*^!;)PMzLyat#S^q*#fGfE9pxHtPU&WFKr?G3yDuDCn*Abz0ek z6zt}Z1?23i>%?NPi{fq^=Hk3~z8;LRSTckEI85O$TXu2^Oj`PG3~#uyG7?9x@`bRl z`u)#)d)*Lr;;S>xVuUve?SZC*GEpx~zl+PJBz;y(jKZtW(c|&HNrW^_1KtI`cvNM; zesVH}$qdqRJm>J7qf+@dH1N6ehC`@^f$HQg!4}Ejh$Y362oY5M*p62m>+o~NP90}2 z+Q5?eq=Q7zkzzp7BWpxeMw|D2RNepFe+9}BfWF=9^hG0~SW@^|2$AfxJy4!Ti3k@p zrg+f+VHfIkWvR-JFD$n@1X(!T3S~xZ@rtZlmNPh4Lz;qD6ArgwtCrDpIXl_n)Zkv{BNlS**4BmP= z%fHa$VwnloZ1?POkAsPvI9;)mf;Ip%R+&{3#0EnD80`iMVy#yv@c1<-qu`zE(;r1a zIL`oEQDarE1y2lAAQwK$*!$P}`Jr@RhQG7}t3{6)-v{c`pHlEz2T(SGWo(^F?Xr+? zFj=4QK7V1*7UXz^otJ%nHDiLz<*Lp=}wm^8pboUdwG}Q7NWl$nhqz zih;L0fIAV@rNbi90PwdF*Y{`}?rnEic{vbx3POY`jPc?xj2T+fKhksZY#EAW0-OW)KU-J0tAbO> zpNDx!#RdcbNhhN(u(ngYVx>UMAJQd@S*yC#q#`KqC>vYQ?m3Fn$AVDaKrb3nCP$Vm zjd={P5=p9aCW#RXq}4I$O9}oYeRjUK_Uy@zNM_J-b|ZC*D5*(dg)v9u0iv}Im^g6y znb}Qrs5DxaLddK8!O`;8@!p?58#G z+(g~QeD~x?vSG)@6|JmWjh9sK-;==7xt`>4+N|_}Jn+Oh27~Kzi7I~0?52b5f!w>@ zWw+=R{JYB#I5~WF5bl)?57X3U9fQ6Q!(Qp!4S3CP(}KHSet1p{b$9DPyA$kmar7j` zIvGf>YfC;Ts!TZu!qRb7gjV<52d zHF2b1X+f$MPO!m6r{_JGLzp5(i30RdBu4Z>)Ygj^tGdS#|UjNbj z5f>5qIxUD<@mFA_K#w$2f~mdjh-iWcB!k)%r7-K@B4g$IY|NeE!*-PE@zF4+Pr5Re-%P*+~3!$dp@o%9Z!F~E!6 zksJyPee#qe)_oSDwgo>+Fs8S^sRa`sM*TS!$3iw?@6#s=*aCEi3vQqgTVdkEzcBdS zO8pC9J(PFvlUSV&;9S;sU#H|?BNMa2@!axNSbhs+F~ynlaz#!00fs;*?Mh-S5n0To z%Le^qd>2BoNk~rSrlgoKhJ!ZWAm*A}dT2IA88*SI;?g?f1Cw_w3fYe=;lZ+!x><`c za9(sz$0gQ0rBW1H=~IQ5ioUugC$t>I#(8*@Kbx>qpNI^SOwz|y96$8Fx!@zOIX)(3r3XhALl*xbm3UtC@~m|^?8M0 zVD?`D5nxREKpB9j%x z^+HLC?QJ_IVJjqu*9GdcEtl))JlvIVrx5hDw40ruKni#ShaPA2SFF!C3F+lCc^FN4 zm2!gTzFYqO<)T>b-`|`87e;z>WSTK>UZP`k;9)B zwt)C5pFNA2P1t6gFTU7&C;e!pZc?J)w;>vHDsZbD$(`48HuMM#m^cXE1(gz6> z4=s7j^aW=Kq$PH5|qcIkz} zO?Rw{EON?G^vOsb4(J?d%|Z`^+ezDnV}<-TrC?R8-v0;IxE1kxbaZ=G7$eNm5OKlj ztTO^(Hpfh6#s=ZQW%VfWQt`5@I<_xIGfWn^O+2r6&LlyXJ%kcf)C@u^cuAp03V?9T=uiThru}{Z85mWy>il9wE9txvrJ-t2 zuk6&?Z0n`IKWV|V2}Kohk41$2@$)RXL0p%k((?u=iRbhYpn4w@sa(pMF~Xs;_F$(k zpBEB22@Nw^H6D{ zO>{;Fk*bfTAh-ACk}R4AeN~oqiYbzeR7v3AeS(J=I@G{x=AsFwkK*Vm4ge9MNDPcJ zDe3i(`a@Lp0mAae^F$XAfmUX?IG|X*<@n%&(x^*UD$VU?Q#_qb&XK10ePz}_ThR;v z|JNF57%vrN0T<~CB`o}@ZBa~8U{uMW_yCe$^cuH2;ZLISW^aEgMG^1&+|08vEuVV; z{9D+20fK@m(z>-N$2?=iL=@|L6&5Z)JPKBho-Lz_#lDYnn=%cMEzuXW=KT%dF*q&) zQUIqaeTRW=Zw!Ji&0S|uu(yqrjn-kgNF^p-v_Dmw3B4I(i=@%m&3{JH7v6(4(V^jN zwvP^#Fo0=v^JxlEvtLyrPls6XN_J9gBFQQzR?2DzN}(*d zTw;F6hTgq=pokaBOE3%RV7JU^L}8S+UOhol_gh)@lS2&28cul z$`Ok}H5&7)k*&xuKByo9DGN#c{qc>iz*(#SbCn3Gul$=3ms6q#F(fcZQ(=AvS|5Z} z!r)IX${s{lX$EPii{UPSEHG{91nk3@7D*izQOF=7YMPC>sP z)iC`$BoIea4qK}-TLzoK85o%$>MBkiEeC5r^4HLuIL}XsOMi}5+-h*f29wXAA>AY{ z`7a+x;-{?Sz-8ZyaqMByOmLGrFSiiTiSvOcI6p~#)Jy4BI68&Y|0E&UMO99Grm({G zLiv5OKpvLU959)NndJe*T4Ap!eX^?>AY31i%JrbGdsdO~T=?!7)`W~r5C+N!TSWR; zs9V3}>HZ#*R&5kh^M-k_H0G{N^Rg7S$~k7;*fgCd`GIy|4g|%J>t1egk{F)(*9We_ z(nqt49H$gdPZ6T%4*HrVruNm37!d zD=0VB0kX4NsYf&mTwo#|b7&~R&SFkry{ET8f`J>D3vb?Xd7{mbHGteDa#b|D+12bQ z5_}k?UF<3Uj&_m&^`alt97>o@iiB%Hd_^#=Fduzea5lOslm<_J19VTykusf&+R^2w z{TlBH1yYkz8qUvKPQNA3O&cwJ5qEOV6OHgRTu6p9W>?~?rU`obgi7Scb|l>RPvyu~ z;5t^YQPZ$*-YtHz$io>{0*`B4#}2v98Tz^0JUd^A2>kp{Aj2pklj9Q@U<&~zj&Cba zr}-}K#TI9%UY!4k!m>4N+V`0UZjW*2W2xARYD>lMTwJ=C_w!F7`TnbuF`Ga5!N!an zVdU&}oIo$NcHt_?edscxCXq^ukWFi4rj2m~OepP-sfu|)th7BLxbbP4bK!ZD5A(#Q zW>AO}tKwh(ON)&Sv7$lQ8%WV3XIJygPu*J5<4vYf!iu_)`uk4BDZdk)e$t$xb%+MXji9!BqF`}0n0-{Bi_X=H5gsAg0cR{QtPU5v>&$| zbN4~k6O?l}{|-p&KNK;*|F=lSfdDH)ra&bJD8ByvR`SDv2~5lb4aGZIvB-l$fg_re zlvR?dlQc$>>x1<^_rl`xqEB;gCiw~Gq(0l-si#g|z(Ht?xaUtim!CCGA4pZ*@cJ~& zBOfZck|BtgTS_Y59luy`GmByEa5PSyM1_x6HrZ4aUER7$OC+T{$pxy}c5unRA=$M} zux-u{zL#zAENN4um7OQd@xrCd>w|YH-?29&EJTgbC%NHSEsbmB%mgDcpKn?SptuBr zv~WA8-O=SL)i+RmHo{u?0z21H4={sFb>*f=2gPJE_$gx`NZ3^=)(-B&Xpn@W*^8i&>m%_8&}V=abZX!+%Py)HyJ)%;WCP zV|UZe>B@r%*h+Isezori3&exQV${C!OKS;ux;@VFShJCE-E$2g6YG81;{lR$@K;kt*GH~^M4*I0(%?1*GqTw5aPkfg zi!H=B>CBPSK!=g~8pSu+X#XReuEbjPV6-s^>HVuLDJ~q&QZN`dS8n8_u*KNa0N;nr?799yOtMiJ$a+eE1=Y+Qg2Wh9J5 zFZR{lfc@TApFjXT`S;Do`UQ#BF4rm^I2FgBDCc6(c{dC6^|-Yd__wkE(n-Bg-zV}5 zm4hZ~>@*%ZW9y6_`>S`qUzflkMFz{(t=GdFrJ@@bEdtQJ!+xtlu8N!wcogz&A|SFt z_YD#YWbJKwgK3=qZaXKnK2b9MoNXq>UWWLQOg}jtwO8O1TEvpEcS5;!VtNPDpyTFZ zuO>nViinK3MU9q?8dXOZVW6;lE6km(BANZ!bcu_`Gnmx>c*Y=N96HGgWZBwqz_D1p zhcq|FGcoF#34byGEZQ6HlG!&L5h%;7GTaj6cQ-Dqy}FIx0V3IR9>3B$&s-Nzcp#bZP_RKS`({Zjn1mA8xQlk4Z;J2in0)TjqE~=jDjy%33$2r z^W(tv96t_1l#p4RjC~%$P;Vj=pG0I+p_U-0*FDEp`(`%%R3pD=n@o~ursYywQ!=g% z0>W;EA=l0u*} zkJEuYPexiF_s)=6K<^LxA{1xl^*=b@17&Xb)Bpl~aLEcfqmrarvC6GJLFN(9q8@9p0o*G0W)<#U>P4$&6xi+oaCvrfzmsfbg;GYZG8*0 ziUMu0WyNj$Q0M{(3JaBeC1Z&FnO6bVnoKbMwLee*Zx@oJVGva%gRHI!!j;)SBxIe`y-IPwlOf0X!qN!Dm8Y~mA2RTb zGzn;H6^*)MwwKaG{Y{UMQL}g{Kpm8LXCoes#CR_?1etF)5U5DRDA3FPb6orh=ytHhb}mF}p= zz!(atSgX1QKTiVvc-5IBh#QZEA>!mHs#y5)pvBgNO4wYFRKz`pN2%}muO`=#;M}%b zg-*o|ni)_r=h9%R)`31Ht{i3d&DS0_YM^M*t6B+-R|KmD1PuqCVR+w__4W6s43o`Z z=^TJ7?a7y=NRvUaUOx#R!&yAG4(OXClcMgW1~2cQV$fwH0HgI_373ALwI4b@3k*0r z@{WDaV9)jQo=Ms*yYwDUcpr9zt+0{SP%eDR&x2k?NTm_El5GSfIc&~BYBflX1GQKY za1=619Jukp{7%a=b`kzGaQ2E{j8slWfMZ*LExI56a= zh+yo}${Ajm(y4bP9Xu-Y@yY)S%T>alxR)Cn;HSfb-*%1DsWQ~>p;$)&sSxAn=o@v9 zX0@G!Xvsgo{>oUmk(Oe)(&$kSiE{qpBPvyW9s**}G$*Tl1cO67I#+@XkM}3A4bSTQ zO{Jok_Js=uHob>gls>znz%DT?kaYxzBXOctN&`;7+;I z_X7*Z^AU}?{<;cLmFxC~DMU(~T+Aa*EI(_=zg~0~U?YwNW)9^Nj2IFHOfb7!w&?e! z9_ww*d_&LRC1r}{!-F{^dmK5H46{-8Ck1hfKajM*^!&&VtW;<6gDdW|_{parkN52^ zwf=OFF6;-vn4Dsgrx@%+8$)~}=aZh79L-*HhG2rxh- zWZZIaUQa&cn@=N7?Be5G8>!6CII)$#V-SvZB1hzzCc_7!kYFwZXghqEhadHo?*J9k zN(@dje(zqum9|@X=uagPFVBN-(eDSH!mp1&RTk69B*vF9osF$|(4nrFgw4gn4o6`e zQx>O}+7A7={s#!eSpmRA#+VoiQ7J^*G02(DM9yD+#<=?ceoY93{LDSx{pdZ{Fg7r* zCjBK))RI-ZrbUHfxHzM@Xo;M1rwrC5Z`^lP8^&TfsXDF$l~vw&b*$KawLE#-YBF&9 zz5~o-JDz!jt8&y0Qp(b4Qi}BXqoa4p;?oaPAZ%gEx}q9NAt2IAQm}tQ@=iM?r82t2 zL+An%{Zzcaj6{fR#2JT>$hD2l;fUTQR+St!FUdX#GyfNS$!fs!tcz2Rzwc{h++u>R z5QwUa^~n#lYfSq#Bf~Ut&83AGVr-%W{{fB6TtqvP^VV^c21GN?hIU(XwE5J)k<_BL zcvX9Qtw6d2Y(`IzVVkEaTkxgq|5_d=yVm?MUVfpJ7d(qty~UqOFmUdEUazMxKW?$7 zv|4M1{c;%cHZ^QiBH#QGRFQz<0H2t3bd9nL5DJ>VrQh>~Kk18p%8X)<>F(pY zy8WOG8#@RTTaG68h-VNqdOu54g8XvhF*hMNWD6HzBjksDuCGnd2LDG`pO=ppUJlCR1bI#^aK8^Pui`Z$8F zDk)r-&m>MuO;Yb?Nm0cl;61`b$jPA`)&43PZIa5A!x!;oDwJe=07ZczMHa7D!XGHN z&#E8G{@}i7X`AAlf05j6d@QlhTz9>Uw@mF9j!}MY`f$$FK}QF%x#g$S?S?X0X;CjE zATe9SSDaQWTbLJgNcRhTcTxd$ejj{CB~(u1H(#c2GW_5HlcY1;tJq}8KnN#CXv=|3vTS4KsD2|d9o(t8UGxQ3@|)uH&u8)w~u z6$i=%ZjYq|ci6imUnIOkxI>4O9@=nG))XQ}6uCWmR$s@f28`QXEvqJcj#mryYt7}J zqsI{o@J7&MdTm(t6xGWtz(k<3DWx{AH*jmwW@?k5Crovdw>s#U>TFgvvta5-M+Eu> zaZ$7yAhN?E6(vmr@H+(cOQX1F2>-qxVC~RSx)*?M^8p8M$uibfxOa6SMus-G&S3gb z5Ai@`?rshWM79Ubyl?xGXM3LwY>d@W8@M*yW4|~nde>KApb2io2xT3br9qieHc$}I ze?Tj70;o@^A~1}pR%>$MGR37Q?bbdR8ULF^7yvRLzZ;bIqX65KF*cIBEOF)Yo1VX#W9c3N6G`x7Qzve07dKL?Ktye+XWv`#r&%C zdG}{*=3iokCJd#w{^+Rm6StgTrKq6SQHJH}T!MY9-w=#d`^m3ZyL1h3?x?7u40b!& zw)oI8q0F0$t~kd-IZW8%v+-Ex9*B~x`uZ7FeVxyN?BnSnh8u`w!b!0R9xoik%kZu` z3WGNCyW^wI!t;Xx89`I0v9QT+kBIk^xYHWyFYGG8UX!PSqR?TABcE#z3qZiqJUk}H z>jdR@dp3vvhZySDjY`~|zPVRj1w#bfA8HAMtFcfQH_6Q4wG!(mHsTHjG3kVtaVjs# zU&nfzWPBg#*iJiBul^~LWLhRO9I*gdJo0jQ7bJt|T2fea!e!#aJW{2|f7cG5m~)hCx}hXSJ4~!|AULlcgXqH$_3s%)#!JuNCN7s$ zCYk^vnDj>!P^Jf@0Fnoe=JY}H4HZ!bXzEhWlL(*1xUjq%izNp}*+JKi;!;GvSm=vv zBUJVJz>s5unj5mqlj)bsO;kCY@Uz#T8N6~&95Je^J?-p3hLKP z4c16ufs7CCJrkANm_{o{w-as?rvLhFbY|PN{{1VWKsxPECQv@e0$X_b>s4t>R>!fj{T)iu#6m!sbe)Yl5vvUd6_3&!< zE#Nx*>N`p4^H|S(u(EbIwy9$0Ezhn4JhiO-Fp7c{`sqR=Y%7b~L?hF(AERQrwe>Zg z{X?g@e5AAENqT1ULwrE(Ey3=nWKM9QXD_u_rQA;>;8T{+#eTR$xz{)+mMvXJT&u+L9Ii#t%DM~~))#{lQO)1aU{#&AspH)f=}^!cvcL&T|) zmw_#2YE!8P+WlN_;`^@-!8N{_J?=STb>B8!QvO1ymEz?msc|)Z#AulUL+ZF$`FXh* z6}#OxySJCh@!gLm73&~H(bv_c0AMu}bToKq6z$EDr9MNIN=ZjE2rM^R`NeTQ$i{n2 za#s#HDCzpT^3E5>F$Hgklz5&@c9>876V|)qqifPNr^z=zHDIkIjbvSj@G@J>ky0o^ z3oiq84K{SD<*OShR`LaA3VN2Lv*Ta1!7&4Ev9ZL7@A)cD-46LLIX!~Bzj~et0%CXq zMgbU0^4jBOZsJY$K1@D#T7xBC5jVyTRlMGY2RD(o@^4N-WS4Z~(%9?37D$NNQI36F~ zt%pq--XD9$c=rhd(4Yt~f5AbJ8yOJa%rrjO~|3O!eOc5`hXUIrr#dVUr*U z7@hVbA_A9o&n*bfd?Mc)oN&t0^oO7OokdVsXetKIPBYBuKS9P=hOlsZ`S)ao#fWm_ z`)ODmJJybCP^@LXVDC*{-SejEJV^+Z!V9?+&->m<0e%tqVJkN62Zt`9Fu{CdOU;f+ z`mC;o`X(UG=;c4oKq(ot))nM2H*i2D_i9#6j@YGsIwxwy zn$9a7xI;yYA!I{5ZVFYD7&i)nC1o$Nw6u9lo417{Baih&L}b(uEakZ>>;L_e#5NWx zrNhw%zO5~;gFWPtqg`px&nKxBRaMKujP)r}gxgXgmV-LVZ8AIT9D1E#CTo46=aTfS zr?;ShR`>s<(JdN4ggnE@t~6TF5^Tr$wVwJ$0RZ>vo1^1u{LNQe{p0IpOST!Ja77kf z!pe({42qm2J1^dU)Qi9$ zW5JYh&Lc88yE^=4D49(KV6zV%51enm=H@1i-;~W0;`R+MqEkS+Tz?By=`+<DpF)2)0r-W(IVPqAkArbO>cM5 z7?(|fh@|ELKqv9#io=4)-?MG$7NJ;b;mxLf?Z>E$waTYBx(q9yDTxmY8;z#U(b9%m zYwpT8Qw(8^&nKR@^W`4sBMmR;Qb$hXC*&_w~L+dT{oqk;b%yMMV(;cw@< z0>lJ2vD~dah9I0lsHysFwg=uK&4<0|DJSfL7N_MLp>H>LRZwG2IuQxhhVdR^^a80W zb&iM!GW2V*mLtjK++9;$_jmGd(hu|00=;9qCoP&VACz}ErpA>5+i4?$l`!%MU-i+? zZU{Dg#AE%2I1eq}QbsH*M~12w>l|5spvqXa!(?($_08{`FPbi5)qD_P=dH!?9)0y`FwI<)H1-vFeTH0 zM#{#xHT~i3N0P-s2%wvYDI+!;O7=wDx%3TZVAr|4U~Yso*_m_t?AWS)0LYJid&s!- zKXk5l?NtudQT%k+1r07~=%Grl%?plWHD7LNJ2s(dUJTEu<-p^$44*j0wL2qP0C59CRf-sTCLEJMKATrjI~nYsx(D z6bF^*t`nmBotN#b3_c%e!rVX75XB^XYc`&pNd){}5LSSM z*ng#bkE=!PnmGQgSrp{D|Emm<=AQn8{|MGA#5EJM#GE^h&6`T@+)vpdISl~Kww5<| zw^&ezzXtc+WlcuPuut(7BxU?6TCP$fNfdZ3ysMb@$^(6jVUTgU!Sa|v%B$QD{TOn>;FRf|7V?we@OliW$9 zys+HJrG=6f4%oql_INq@G9FO*C1rBY!uZ=#TEbuN-IlR6B#|d!`=+n?aq~B4E$us! zV>duh1!zkyKH$YfMj-tuafJX&ZDhU$AzYeYw|Lu>`n3HIt%m}q);It^&=pL0Op34c zBW?{2s>~7>wqGVcqFnZj5Kc9LT@C&F#~W^D)i%T!w6B9bfrZ6_=b3D#nQ%n@BHF}} zmLh?sZz3GZmZ2je1}oNkY*E4L555TvOYN^5@pp4vXyeE(+SF5RR| zBXN1-cE9m`77g@H4nlKELx+_ybf$EO|9YG9h-dl83q02=34_j==E-|+o}{b%A*Y)y z=qthwq&8-+flAnvZhAVaM4p_GmVGthDh+-J^8bY3{zpFHbsoP8=cQ>y=%6#0e*NlhTauoVUO>PIbqCJ%i;rzB4(!{P;Kr`p71{X^ z%qT?R6u{IiW4Fm|q0yZm+8{bnY}%StyMuoI))9LjIKoW22c5<>z7XZx1Yr`XKg*R`@?jxK{!T|q20Kk>3K}sZjAr5&>9}wilj+rn(Y!3@aQDsj((w$;& zG*tsosYDw-2NWCI@q1{~5032!xnzMnq#2aiww9YQN?qc@gE5=JjdYQ>z#64L?XTYu zL+SiZPoby{O&;<@{t-2qzGtN>6|ogEgt{2wn{w-a4NErS6EZT3lB!a0{Wy9fs&-5K z6-P^2AmW9&C}uVk#oC|phc7Go{9SM7n*${<-LS37Fh_)P-P3yW4kmR|c%+Ka;t@0oKL z^P$n)NHn7QD7Ee8AVFyZ4^e5gM0kvxDa3-z&7D5Nj&RPKc|6_#n1GU6k47a>WZ%v| zi6s@D*c#ncyK4XMM8RTuML0A+m+(gQv&cemV0_4x>pvAgdbM4kf7}F3 zg@5@7~eRNhC3xVyXTq)qQS0D z4~@18(*HR))k z4U7igvDF#YL%fX&6jVrA7eO;sZkmHfcpSj7qK!0A+$k_V!(!FA zd1@<06HZFdDA>xrK5VdPP6$^hoELxxAjb20TVt*&jZ0G z6_=R3Z4CiI$Fu%-SkW-Cxn_P7&|0jp{$qv*w1P$K$u!TDNXQc_{NaiORwAd`snnEz z5xU)3yTTV@3BNYEZVx-`@_Kty~Y&=BtDfrY?#PlkI@7R5dzw1-+}Q6 zxRr!q$JOKGQc1x>biW!a(<_^#6A~^uwclytNa}KJL;dwHb8NFv*t5Cu;03Y_dCM3G zgzp>c;j=IwOkTSEotOd|d9*2*im4V|VIDkcLfW>ydhijfd7;LsnFj_2W&U92N)Wyp z?`Ps?uky}*!csvaUfZC0!59^4(o8Ql?^GN| zT_3in|A8RudFw28fOzs59?@;W5^N-E_0`E3tIB)4x?)gcG>vBuu4Ei*FO?9-MGt3$ z8JltW$a`?5h6j#Q-|F*1q*K^Ye8Geh=LQ&=A*;WzI?1yb*4hUpr4MCcT#St8w08+} zcQj991t{9dShIZ$4s;BOWzL; zw1xNFvGnjui9Yocmz}9ToEVP1|I zd3a(AZ5{^7i)-S3(;C0$ab#l!-1vE;u>taMp&Lz#79j7gFWxP1NwO`eI8!nOJ)ue~8?9wglZ8QFpD1|4J5OKMs;X(&! zgK2OMIkXVxe38600Ro*FlH|M5g%D%Kh!vRHN}|IBQ+>fdbP_k#O`+sy*M5 zlu)!!_2hR;cHi=}BL{WFt&i5^FyBaD*5PAUW46&sFoO32*QlfZI=uxm|LQCMG?D8@ zKRCyRY6g)ooyRKB3M^5~=RA$|YZNHKSz{jxj6e1}b>Y!=d|qNTk9f+Oh#o@!7VG;L zzN#knjsa(n?(G^`1AV~4Km0ZI9%ZRO#;vo4t+_c4C}Y&IjsV%FC$^r6i7{3t7{c|P zi@Pln#bfa3$N9|& zNM4&PSa8j4IYq1HSLl4NQnL}4?rQA1jAPN0okvn14auI|t!bP2m+tWa?pxWYVvDW5 zoYNr*&LHPXC@fXcyJ`w4=L( z9G-K1EZdgol+W;H?sZXA3OVY85>U|=$>{MttC}xLYk*tT1Rd#Nk;)=a(8pv7NVqmy zDrtHL=D3T8n&&VVqepz0KFtOshJHXZR!1FSn=CVOh@h%nteYQN_Fda3v@_fLh1}o3 z$|fSliQM|7-#OZ;+a}AgvXMlcDI;FWSvki zHj^yPW%0HhPgl{#e|oXn?59$Xe)OC{2TEf(Vs6FuH+C|h=ej+k_r!|X=~kC@ooSt# z&aYc-1&lpbZT+DjJt;rpNghM>>Vh*o>$I5#xTdp91IH;*jT-m~Z1X8EGAhW}hW881 zdPkqa(Mj%&Tu?c~R@pmLIOy1+4{)VS2aapbbnO5jqS`#cpFWj*-7WlqHpcymcVCo` z9E&u0bjC#6_4vHmisavSD!y)T_IUhj2dc zoq7SsbNg?;L)2t}8XAQE33_4I_!L_YuULYn>Q32%%ewn4K#Gl`65s&^kbv`!3r}Bg zNjgGc@vy<_1yMug%n-o;3v{P8%c)zB>7*ru*-SG?5lH%(qdud+zxClHPb-1gyT z@8Rc+Hi5pUfe6edcww``>_0G!0+QyxXXdyR7y~1_9{{o;6~c0Y{Y0aKNzyMzGww+G z>9p-DwHmZ9VoN>Ow44a6su>(5u3K1RR3DwmXi&(XjU!9yUHCFd#LfEMKq&F^sMNBG zTMTU|QTICeLJ5IIn^p}+G`KZCkf>|mrMKF-hp>cpZ?O=?YnK?**8%o}`M;8`<^mL;}2!U_yzF@mEQprPFXL!9N(ES)|FapIU&W)9eN>tzn2SttrW%FC2;+7x^zx8qcCTi?=)FD1eG zhl=AIjshM>*F{}z+Y@{>(wMP9#qK|FIqHr6xza7_b5dc`&gm^KoBB_d3Hhej(c$CU z3V}D_ZM}Re>hHpbVA4YTdEQouHHGlb-W%Ch#ps}2g6mq z3gxk&<8%!v;c@o~;w-(x4@aNi^(8m=c7l#ukvA?>UzwfKN$AK9 zr&+CDcWDrlv1AAU4#j;Pmo~O)Vixxr;{Ug#pw-N5IefJO%h6-BfnK@+v`nm+z>`=O zW47!d06<$4tGc8YwFjy2R0hA(YiJcjQnJC!+Aw`qA_wiJM=;cuyqbHpLCoww17Pf& zj8%I`mH#V-&L)#O#AaLEH-1B@uOor^T|W#CDy6iaby@G9YV59}hn{RoT?atmLx)7y z2h*Y-C^go>odKUw`rZCPK42zUa6oyNLo@dnZQV_682ygj$X&P!dK~!kKX6p#LrT_q zYk8B!RiTW-Dp_SRl&;N{ph#vw8LxA~kMf7!yd>KZNgzvMB}>rWd{(x^9BD%=Yo+Vz zqVWTNy&Z=2hurq=hA88q>byk9VNqbQymq%hw04?VPWsO`Dfh<>DHIRQYG-V=EF->O z-M^;Dw~K-iUq7T!L#0ED#y0lI^8X@taC`O=T^H~QL_xIU@q*~_$XA}sm{_s!JP|9M zAqmwTeq5fu;l;_IE}{wldbUO_pnna@B#s2g8e(=bfWn#xLwqpE=h#EJs28`*(k*QS z((sTV7A*#pSR)+|Gg|nITIERDVJ;Lqq596gWvC{J7K{&X2D-yoZ`6*zl;I~$!BIN8 z+YDe)3PrOoNC@s=AkaRN?d+oVE!D5AwG5M0%twmgb71_5-U9`~oC#qW2Qu6sHIX&0 zf`p6Ic;<}3*|8~ki7i0BS}3}>yu{8iNmcTZV&wgk?(gR3v7!vQw>)48;2-g4?Bsnt zJLNu9qUo)6eP-6X;8(cxqvD%r79Jn>$2hMn3CeHh(S!piS%ddX{k5}yU;Tnl1%NT| zR7Q&vOe%XVm9ZVfJ3NbPjMkmVfXku4S1TV6(+Ib~{-S}pOyN2q5_fc?ZxQalHHVMh- zW>WyZ99%xD6WBUQoW6hg-GkI(=_({15&)Ixf6nPKsN3cbaZ65IkiJ^0PfpJa0%dMJ z*eGRrTyh<)Q5l36Pp0R6FCD0~`Ks$SqN;AjQ=>N&x!zm_vsaQG^2GNRjBJ#~cLq{A zfzriK!Ty)UDp1h@ABGp;YrNZ|an5Z%8hRzD1~OrbS1UF};;6|q*Ac#!y+`4%HCnKrZyegNE*rt~BF0{w@xUq9pd zxeG95DLmv@80Q2^$*Xz0iMGaVxuh}gM<t8Wwz@x zcRAcKTxoRj`lZ!VttH}$Ipt)UyyL|x#TPXxEhOn*4S(2Gosu_f6axg9P^0mkifEO(jMN}B4u6h90#N}6%if9({eqVr z$HDit@E_HMQK~g42-oH*T+KVk&AF&%w zfHG>yQ_aLOePIs+mJp=_+bR19?UO^lje`z1IkIsB142>vXFsg-=Np+jaAP$5cA%#C z;W3Oh>Q$kdN`t%Fr?8_aGDXX!d#@DqQCOu|A2z4v2A(GiXc zaakz&oxM^TQ`yFg+vGBW&YdZ{IF8qJIZWye57mG~szLPa+Ox6&m+IuEB~93Vt#=7d zHlcu(D2lPKr(A03YlKscRy*4qM0x&eK<+& zRl9s%7QY3_?8aRN>qA;L9)-WS8?Bsm2Jrhi%Vz!eNzJLHEhGCpgW8y)s*%6h1cHfO ztuljZ@nH)N?@Gg%j6URH#2cQ1{)!bKR;S0k(7`x{yFI%PMSUhr;Yi%K~B@9!dEu;`W#{_2jQ5+`P1N%gJC@S=2s40MQW>f zS1MiN*m1^gWnZvwO=@VQe{p&B$+ZcF@DizadfV8+LB{wJaHuw@PylgL1yt&(XIOs6 zt|8`HD&qAzQ3tf5kI~B!__ih>51R0ZiRdvb0A%rboxJB==954$uJ^5=bJ~;Ut_d#S z9M7Jwpdkc*vMJa6P@UB&WP|`E>}IhbIb%n7gc}3k1ZJ?SHUN1kKdHx0G}D~22x2y0 z6(#k}4+v4E`GGs~Ls!lV=yfzK_5s?w0{WhnjDN;lZ6IIQUngEW=HT{h`fvNaB(4Bb zsq<_kt@aKzV_#o-n=kZZDT5(nUXll+hvUOfMN4uiU4=!JNbq40qNl@>q3qh^KDH|A zNOfWNW7Kq3sNY<`TBcL)Pf^4)TMTjSRh41AL`3ZeIf&^K&u(F+2&4bnygS&xgYKX9 zAc}oYOl7#9bt&$b>OpqgmjW(| zqA?t@Lb~@1U|S>?DVSY`3pk24-_anCjC9M27itWyIwE`&&-fOR{)mv%7bZG^o($ug>fU%pKcTzR;rUq z-aNQR-a=^p9&}oH z)QB#>huj9bL4fR!l*>{}m#yxY)&MMxwQbenIKPgg0Z>|)%h3O>=#xrIpw}X8uHPUG zbqdt`UD|!pN&b!@e8cNw<@0p!y`11!x{O>FN5@Kj6-tGQ;tORal|PZKYQ8Us?Y^fR z>3$oQqm=chuW2b#a{Jj|vxF?E|65=&bYOFy)PXKmtJ)83eE;bPwCU|T3(9RA;!Nsw z4(Wodu;&w{#+r`Us2z4WR&QJj4REa|f3&@NN-#qxn!b^>Z8jqIw55wV{Y|JXRZPNy zl53K0#Bg1@lT)f7#YDv2mp4*U5x9iyc}(ren56v3;OeX(~Vw-8+usMluy+mokP10gN=Zg*Zofvg75j7#{m&vb)SM`(OcCP%Kl1 zRF^ertc^JZuAr{D4&kD|%z=L{Q$W?x6G8=@i9OQ|ZJ$6f%CQ?|I=-lyqzA%2T29z9 zDm%GuR~b7X$T0!7m;rrAkd0=fRWWFy;iEu?OP_-^BYc1Fs^;=ioQgpmsK8FaF0JcU znUWdA#);lrfv@xe+p{9mU^3fj%vePdYe7X|hSm_h);FZqJspy=+QMh+L=d&e37*%q z{=hkFgka6L680ksv;hJcyM=^n)q_n*;QZhe2=kw18g`FChn#yzJhjR0RcJmAz5k>F z{01CDX0jI6VrYB1q`ZLL=i9AZFoy64fnVoM$kb{^+Oq={&N$RdSD5Qudpzug#PsUT$M-T=k ztqtBriZ{!k?e85q8EOv!^t!F;fMJ3MK`~Y*#14JQV3~d zbw2U(DksLzCyiS6+hoBOrN)KLjj^T?o(|}{Dg54pNd{$YYw2W)*Nf$tp5=1*HUa>B z$;*lNQNw!9NLD}6IWt!Z@)7j~MOqy{6DjlRlYjU@2}#bQuvI#0oIsjYQ7-)6kWuvG z9Yd7_&u|hot#crnrNdrShQndOdbwFmI-QT)g#gGfFA-Lw0OTndwLp!qs(0Y6u0D_@ z&O2HMY^5*rs+K5fse~Z<(_?Y@f$|yv<|v|#U}jE#7=0H$m-MIm!9FTIM&@t{Rt3*9 zGU;FJSTE8fa<4Uh1|OX$HlOrYhEd-TV%^Gr3y6BPf+c^XgC*AcRoXtzNQ^J6%=51p z1go7M={=w~sdB#9!_4fY2p8QWCx7BvrDLW4mu{iJoOon^YcMXG*8ccD8%sSz6Q)cA zpdxWqunt(g&&dmhdD8U#HH;HqOZ`~Gdo&&5|9GeaL~|Ab(GCHHYI4zTrD;krxrR(j@Sjpwmt4WlybWvR1$?nTTb)v1qtam#T0dE zMc3Odklp~&zT6d`E^4sjj8X?VuLCi*AMjIB%Ub#3Radp}0EFd@6xD>Ixvo~O=*beh zr4);zUqmLOBXw8P^aI{Hb zhk{(z&CGO%!bWeE6D2hc6!VQ8wI#MzaF*{e} z9qfNpthGZq@pRJwGlf9BpkM8?5&e|QUzqTa%2kipKxxT^-_+%BgKenVM#8>V3(wpl~jMdo36WJsNBSlzT@tNv$Pj?fR^zNAm&!6EFYY zN_Dfl9nGuoV(dJ?XV4gM*;4ntr$+SWJ@Gv0$RR8ig%X9Sx!~e@&=!@O2t!By$%33K z`;N@2>fL^@nf$U8?;kNsMugTE;0bK|fyOu>UO4@pcVXS6u+yAc2ib8!S}DzU0&d;0 zFuaACM&`uvZmsHJYOZUOhp>V360&D7uaB<;vkhYaZ?VN`XKbH-w{JfPUSCj?1XbI8 z%DMlq7O1$SB}YUpjpm(MjW^^>`dhBjB{A72-^&Q<|V2*-uW@CUXW`5I`%*zO+I9bof7kn+H|9f zQsJ;#Xv~ysb>fgs)-(|gm)N57;%4Ye+@}I(qUs}khGWDNd<}y7stui%YFn=(?q27B z*XkYC8he-|n;E_Pkkv@i-H`5WlQ+^Ytfy&nmqF=;Z1e$5+uO?mPWqlnDKLxTPM^tOFm)B78lX3t@wf4?p& zt>2MZ6FPsxZW8io#J=M*nfOi#Fe1Qg zY9y;4?s)i5R19t2^KLJm*>W#QzVA}L$5YaK$Fy{{H#*4Wli}dCQo{SGyLGR%+`+iw zvuB$p-gNKfLLxB)ns~_UFlVE*j;cNp2;-P-y&SpINFL`fI)`YJyN9Wf=2_m)o`~n% z;r(Q@PB!oJ6~Kfg1M2l-;y5p$!?=Q9MD#vWU_wda={>6u9a0t%@NrbyYv{pec*c;{#R{6DqfzAB!HbM82%*F@|8aR`wjV_uAh^lRM_^>9^lk$}xmuRU5}wU? zmsT7j?^Cp-I!6zwywSTsEM!eut1)vg1NR&hMPM1_25z&gSjBpA|ChAZ`Tn*hOR9}~ zrVhj`pdLaHmVd{=U%Z^Rg*d9{VsA+2U~%eNguZ)>1{rJmIVvsK$KhGv+g7duWfu~BkE~ui$YK|FmDFjKz|l}~`+Bap_$Do{ zZ8jVZTrTvx(@RakB$>aF$c;(69Gl;s%@ufXfm@0H{cfsaMftLJe0s~<)mYWG#b3(E zhR>cCkn}Mk@eDGzBiyO9R}KzBJQw7=ioQ+;X6@bWkM2B ze4m2oe5N7?{oj#f?VZ)%Qq%38HR)9vDTBMO#-WJurhlty$ICw0ew4}CY)FLMzCZR! zP%roslL~oyWSqdvb+6gB(>#RmX=p@l_I?iQNlWFMMoxJqpg}R!nYIEPa9qTx#~G-j zjWI2%PVEc01AaHOAALefubaRY)$(LT-*u&N$YKvepo&%t*U6O^2n(%1+PT#Eoj#_f z+qN!Az>W(Dt|`7vz0@OR`3<5@AIf4U~QZB&C63Dvp{U0!h2=Yo{= z4E|msz3kzAen6omz9RPc`_~}8Ic!-jHlz>GK2qwWhd;i|-NkHpK zuDTDj9iK-l;1@GLw`J~1>-3Ba=g=->_Xay8Sp|rl>rS^G>_JiYH5wp&JT|3z0a+cr zI++edWx?&F=i(pop|ZH9sK{Nz=ha-UfB&m1#s_|0fHAAF$4loFlsm8>&KjsxWxYtM!d zYa!xT)OZ9*rITP+ZyT{eu6p5<3KvylM1S=e(~x(R8;_gkBZ$1dix`jz^V@iOIC`O? zAfC?L&IkDpn?K_l^Tw|t4N}s}@p~8d0{tCh(@JYR+NVx^(x@y*F$Kx(7J63hU_(BG zeF_ar#k?yIS6AM(QIL8xRLi~8C)C=U8kgwsr6%T1$K)Us-as5@=0ecz|V6w$0C19%S7#T}kXee^Re{%NIIjuLHvmf-GQ$KRgDyo@u zA(9$dh0I*8G2#(Os9&&8x;CaWZ{IqBiwiZT$NeL3PB*audi6(?M|KG=GEcz6gLm*Q z5=m5V zqbcDLrRPL${5UgXE0{jM36RI;&tnG-Sgf7Mis6bdMnw4Adi^lY?!;h5p9g90fL`$) zjLL0_G*eM3Xh}CWH(Lt`k!b2os~x3OHKe+I>OW9LgzCPsLAb##E{2JAzU zH?+|5WUnk+z|v(kj-%ai&Rs`P zz9D^QCdSo9n!U`yYlKZ!GdJ2iV;r-AG)ig+SqxkAjKa4q{}{7(mc5{Xs`N(&1DPXuk+KYAFHp7mjI|dUdAH(yV^57(957c1Zxx-I6A* zC@Y2pjT(XIl|*Kf9d}+&)oudQH8GtE=eRtuktije2#{nqq6A^^H`M4ZELFN-53gA; z|3T`wBvKv9az0Hrh(cY)usQ6aMJEi`Uj6M!LqJ8ZXzX_auCV4;y|+OtOPmb$0I{Y9 z;m*LrSsfdUUxRQKMA*1MyIg{gZ~fiDpc4oRvZ*JJ=05$)AQtyD;Y_xl$A--HCBrL*s^QCwF^}kz=e>r-eaYLE&P$El?_N^?jv+YnG z#zfW#Jz?F7VCYXfeH7)rZkwCZO>+I+TqK5R@r4eKRitOB4JbdToGwl8?#p5eoLf+t zT0%#?N9ux21R4)@mJa(2Ylxov$#?*?AB|Tg1So#-dTwR70EDtlnh_8YfpB_jURDCi zu2~y>C4~V}P-7v4m&2Jd0wl1;-;7~I;APt68F;_tU&^EwnW`VZEhh4RAvuh#BAfM@ zdo%EgIJ?L(!Pfr$$-pa;y=;zaiCD1{K-PC(*!%~H&A*d(ShknT_bFaH#~=dr(-3&(URUQ zhqw8&M-v!s@-Bf#J7lm~oAM2)S=$|&aE!l2Cu#oZHbzCO8u@6iDMrIE&ru-B zVr)=)n%c01rKV;)=kjDgsk{0S6Vkmw{u)VsL45b9pXzn*brMSs=PSlrf z`2j*ccC3Azjeh|3=+@!%)#3ag3&%;<6&m%#1zIK~zyJTG+>-BRW6B7I{;BNy-912_ zKfu4qD8rVSLxsQ{W+cx}5J;0yUh=L+>j)k8KAdK2ag`~LaWIDUu?^5e(o(NQh0Yy# zkbnbq93)fotwg5A%;{n=S|A0^2qOp-Xm?Qjh6$scZ!{MukzTlQm#{!80+>1!yPKJ9M@zgHK3i&g0F<&>;FWIuO8 zEGJZsb~70hR%u>uvTJ(pY9M={FNU)V3`Xx*q{Xw>jl}|R_r9!nCW`>; zoTOsAojZ2;8ZFW^BM(S^eXr{P&jZS%2Ux>Sl7O5k{o>54F#+9&m>t@8>x(K!U1SXa zr%Gr1%qI};NK1}7OHQGM(IBPctw5g0dXboF&S7-HcTu3c@zT__dR1hww6e1119o>q zoJQNv6mRh9#xy+^-N`qb5Rq_G{X4TDoRzW+L9kxd5^i6s-!tSl%{TVx2qT(MU$y2o zedSa>RsN;R?~r(c`(BhD3nnZIeT*3OD(M$s?ijvLQ4~d2lcnD2tIG0TdpIA2Tq4+^ z;ixe|Kw&YbMbf&eY7$SnhKID@olpW!G`!0wNNmFCgCa6?Qe`fM|&YWSEYe=M*J1n%Xm+{j)7%%Y^bkBaKzWpM&k3 z>$AO>IW39f_L}OS0!!CY;Q&+#4)HifA$QefO0E@3nX{MHXEyh8@483#;DtuO1;pM$ zGHXbY^hf-EulIbAy|h<3UbZFEAU?s-nRX7z%udt?Qb%Yq6)$|VPnbZ(J>h-|bpjAU` z8>YK4B&=1W@D!B!XHvJHZ)2y0S`Gv(Q5tHtN~M5LAlq2X-iLK9@-pna?E%To>lu?K4ctx-#34s+;x0 zfRMLu-##~^GF#qyaAFiC+h2?#Pfkq7foa>?rw8nMGcFM|C?8A2oV+w`qv0BYb=;PW zO4^CNQoAf_e1lWF&FH%|m3-8s=#mag#6I`_KpN-4RG4jBd? z9<(2Qr&{Hi>8wsnnIuJf=OvDo5`C-ZAvp6DJ1E{cwyb2fBPh=~!m+p3bi%5qo}Gnv zdy6wp0sR0NR4SDumv^T8=Lq%ixd$<;hXNTi0u0*y2BUCOqde|Fw_x=r&h8f+7EZ3RIcZ> zRmfCRG@GF;KTRl|BYH8c(C8Y}bOxsIq3TMqw6M$6n6hD4j5jmtZ#2qpN~8R|w^-2;WzbI!+nOfmzC5*o}AStFQe#Ty@=@!6B&;Mm3PjfhHLde(t zex;{Fo}3|%X*IU|1-oW0%U8SQ(|zNI#8Nl!GN8R@n4;RUrmf;<+o$NlryCtp#_$c` zurt7g7JW;g6oRsf2@Ky5n-@n>i{(40wq&%U^fH-BiH3)Xe%1;i20~7V2fX$_LYNPG zG&%+AaXgSBgfm8+*HG%b$ZrK=aSFlwP9PA46cCSF1mn&y@+`G~blri>w8M8|8G}n& zz+53?gf^8(*$lUXVwyTf-N^_RnLdBSjh4o~qd`D^t>60k-*L)m=8A^=N7M-a$IzLr zvrnOz39Fl(GNySll_8x2%AOZjE2Dc4MA7LpC0a=#5z|U~Kz^*i%5ECJ6Fjiwyy=81 zUK40NIE$%g6PhN6d4QN~3sTC3d8%)P*zJ}kzMY|!2aJab!sW`BTpktz~4^MAX|O?b|0fs|;y z6-H(aIX6vO$&+ys&k}w(*kY~PkfU%9?eb1)5kk_yewayXJ>8b*KDEdM#f5H$WP4OW z&o~Oun*-?ZthMgFZdcctVVU8w6639OU}s+Q4L!V){8|@0JI6-P)@Jo1PHy~-e$|k4 zFQi3%O(2@{!F_G?zJw!}z|*W17pMm#?zBOEYrw2;YjHY3Mg65|7tZIIj}?T|)37kA zPm$Q>lsk!(yV&{>sqSR#uXXqNyF65ndOGLB-)IM3XQ$nA7;RN zkA0reJ>eDVrTeMeqPc`*iL-3g=VWt*NB_n%qjj{n$ii#6Ov=Q8{#Z>EY4RMD2U0XM zW%^QNpJRH#zVh$^x8d-3IQjrpFH}_k1EC=f;deS!2;Bx4iWZ3I)1nPR+zR1(HFyny z5b(}8jxgJ6!wa(z9j(iD;sNU$kg};vdbr9ObZ8zbJX2W<0onoc0}b*d1R!%M ztCVwC^qA$8@Y#+~*po{5g`D?HIEZ)(fVwZR^VPEsh4Ro{wb>0yPx0qT7NoKf1uxW@ zIf*(!`H0i#zi z5!aJo(lQJ1D{c1|%Kg7f}yHj2!WgclUT;7Yc9vY#X5ITh!Xu>~afM5XLo-tS}=6)kQ%1l%L9BDvUG8~Kq(t+=RaIwHx0BsIF zV0>=F_@8z)BqSmAWMN#T#M6N#^%y}XS~M(Nv45{2gqFn8ki!D zUHo=1M^1sNo~4McH7iK$Ez|fM2wJZD;ERt=q!0&MetQ-ZV_L4JP$^G`qSG=cP!ONj zsWf^v68S9+@zU3#Vw1k%n+y@h3Hp?)?G=MkvW_T1)?~Q3%n=7bh7~h&A`PYf(7ORn zLDHn3q~j}~C08Z7%+b_iV9c2dUPu@$$#sgf#>qvqxh$#c8q*6hY|Zu?I3pLqsTU4G zvN9aU;qd5D$#nk3(J@v~Z*TEkbKOnux`d!mv&<4X`w`*^Pyn^_2t0P_PDAj!al65n z7E7AuN_iaf9`Cs->i)HnZuXCH?|qxDR6+AfT46Elbk=g3y6-Y)(ww1&=4kfixR8SB zN3b>KK_nv!bxLJ59&L{3dkv7%EaXMt5{CY(1Je|gGm}!GV}o3~RebZ(cin8>+`Ec` z@{+ss9CVkSLVmdFDuc8Q(N8>|dbV2lg+n;u6yV{ymR6^s6BTFh!*Akxo}|3>xPezg z19Eg%?ALx@v)$uUD(3p?i4Ayc1@}pYP0zojb(6{61f$cbf8IlAol9P0Z|<0dx9KS$ z`avfp)^PGEPx`nf=9Tf%_}1Ltf#($UZYqF%^imZf09QWgv)*KP2qkGd)mT1S#j#4r zs&KEQJPajy0Vj>&ryJU1Iz+V6=y(7mJfLV%O)m`bP=Hu6)bMtFADz1F0p>6$3T3&K zfHahwIzZ+afRSr#8-8dMwy%C&JPTOjlWrHQ?dI32H|W!Q!{|?Ns#tmRBeajjZFbk) z%BCVEO0p(mXfIK)HX{`=ta|im3QGWNHq@F2L$7yYu%13Z;(N*-PhDB@b!puU>+a)F z+2=Q-z>vOhdu-r$P;Ae%Je>X4MH1 z!zfzu8oq;!pPp!>zKc7v)?*?VOY0WmlNmR#uxgRo7$6qnspC~s2V43Gbe5DT<#v5F z;G;Fr$xId~;FMdYf1!ray8s&t+C5FiB!=v*_bzW}h%{UxD4q7}Sof=Hm3(0&1d9;b zHHL~L<_q=!@A`dBpPG5=>HAccWKxi_2zGB+%*qB#hYjMAsgOp&{DV|n^O3;>8)W2? zSNvgMO9D2-m2GRw0t^K|OnD#^uT-mV%D1C8hRP|d7dEC#m;=Q20vG8k4w!6mr{yy*%KB0LrS@?sK3|xpS*{U2b26o zn*nUG41!e$i`#*)K3^U1C5>?ib}NnQZS)$*jpgZ<#N*M>yn=(!G~J6WNUBl6ARrhF zHL5BtNRr;ZYk145rC>K`UfL*)Tm?!%b!l| zCm^5SNLd4uJ!u-c3AoJbEiemCN{<7USp@}&9h1!A*M>^KFS#4PSe2w_RdcBZ5~u$P zbT9dLTmUDCwy6?y6z}{VK$^D!yOwZ8nkq}MY$J^f0ezW4)|f;_G}Uv-{Q1SpFb9iQ z$0?h!d#cL!34sLbKniu-e%_Lczi#M#C)dDbYBq)6nCJ76{{xiRqY;*WeeQVK!4jg2 zdh`IvXmTr$VMS6zaC>kLrdm>T#Rf`qZQ&>UiETdL?vGl$vS4|I>X_Jy{Y$RB6ZNW+M0MvVc8sQHP1o2(Sj;y zt4ce0Ib_MyKd3BjdgiZi1FcnCJUDtrC;Bo58v8}Et{is!kkK$>@vJSdE7qPto zIv4u+HQQ(;vNzj4l+V!{vN)^L_fTJ=+M1_p_mR)O*i$}cxbp1OoTLT%G2t+!mJ@)Y zsVkwOx09#Xpw0M^2g(V>LtRPGTFi>QYPGn8}hlKk2EIQj~OvWFF#I@*kis!~E{}$}F?2s#t&@ z+LXFNb(tpPe2ZoBY-?c`Mg?qgRSdvoE94Az>FvWE*9*KFcKS)PL|>5){heRXvc+4~ zgF|zSDdB>7j+X`+;MI#r%R3R$z6)l917i^g_Y+7}+(xT)If*j4?)NZo?w6-6{K{!J zlfGPno>~TOH+YnDS7@yiij1JOx}HWEWO`3u6q`S=NP6PtYfG;d+H)~ILLbROW)GE$ zOKGONvGm6IB!_mOCbHUMH$02SMIoX}Ms;aG)$Wo4tpg1OHvO^K)hYSUdQHhj1E8WY zO;ZzpcptELW4(>=Xf%)gM_anb7f3IXm&BzbIk%m#3-VP*Sp@`u>o)H{d~VxAC7Gjm z#2=OcWeGajzEf^Rl7arwk#}NGrP)A!0Qy0m6S=)Ae*_Y7w@t*-l#n&utus=8jMYy| zWefu*6F6c1`+xBk+pk-yw{Oeosmq}d=3j~uZfB}8qADH{DF~<)&VO}MgoxL5G(Hsr z!FUxwzuY|T@~7}fr(`PYSs-9)C>G29aV{u3p4>DYBpi6M@LQgx53rN9UCV#D1%+O;-N)RaM}Y$Xze6g!*Qh5VZHGexJNaW`mRTYMtk40bWg z0x6021lN49G;x3Drs+9&J`C5pILu7&tU7mhxJ`&{rB?tPJwEEA7Y#a$##7t*i;G#< zQDST&ysgW#bJG(W)KVhR1>4O=XYyG|f4Z`Y@(;^zUd4x5oKegUW@?ieWG3wy?uVrc z5i~l_e+`1${;Hd`An|t3X6G_yK6~eeTJeg0B7hL*R=j&~Txw>H%z6CNb4TuPc{apvGDdODF_7F^`%!^Wn% zWjb3>+dFRH^8(18LnITpksORO~cg-t+|L*5zPoh@pRs!^7snMpjO8@Uxa za~*O=%PRO6qf5VLfj`yC?&iF5a7vJ9YwCYrh2f?>DOk{Vr5Kl7Wd&JtK{Es4QGCCA z>;YfF78od?@I(xtd^Hi*`Ot(KVKx`)BY-MjVj2ZHQqj2G$jJm7hEBFiyUE6eht^}j zbCbZkbl2s@c!t*(X+He)5a8(sz+jcm!N(>skEf*zTH9y_z(E(f_fl5%pv z8GOXIW@KUyrPik)d3fqNl8wALHXY5n$K(thSUn3}BT2dc^8x8Wy1J zKk2I9D^62cg@Qja67PiE`DbGd9&#^=(NE}YZNUL;X}F`8ltEZD1nKgBwYZ0fj!<~Q zgth}vHs{M52ghQ&1Cl5t$etDjJ6{F0^f6vSLE!39k^eps&c@KZU!??MQpF@h#bggw zXmFYVzX0Yj<8~;22#%6y*s|XK{QL6=n=YcM;i6-FPSn9p=9m|#b=gxfT$&na@bln@kav6x3C-@%zjDB#klLF zdbtzqZZR;oEk1;vpo2zsFEzPCbfBz>-;{?|lNrdRLd~_}w-LOhChoW(2;ubl7$qeq zz;J7nOYhl?2S#9Jn?R(*MQe}&+rM!6YmH=A+A-}@pupFjTOH1Opu4Vhjv%T7vAD0N z|M@7=V;mmlaV-uI^}hdv?c*D{Et1Ky4R=ulxL$vD49W16oOHKE1}n61w?o~u3+qav zd+^A1UT4$nx}f&6yn|GDIjiem%HO7#Qmy30k~Es9Hg+^WO7hxDEQT5nu%A(;kZvmz zg8ThCfa4C&^Pr%j;%XY#OCyA_y9(cL6k!wbz{U!F{I7mr(I@LkaCqxZ5@2j~X905> zWq)|@?@}&#G6h0l7Yk$y9E!R8R-vqsfDfGzy#o4AR5bGWo+*+>(Z;eNJd`w^XQ2i_ z<}LY_(~FfitBKE3K(E+t?_M*x%{NV|JT#XYGVX5>Azav`+&5NT1X)Cr?}I))`$uW^ zuhY@t{d_w>pvkyq13oV882d^+C!MHmbSLE;*-{oW%z35gujEs#O(S+{OP1l zD`&gKbnIT%D}_=o!GP-JwrU)k>S!x!JVEPK7I5!_F)i1?_t=T@_QJEffBX5F-maE~ zJwdR&MLW)^FiIUU4wg;e&9<;hUsJzq{Wgc==yD<11eqU_)1Y@v=9mRNUA)%13cA+wb!{9J-R=Yj5ABSs`Di}10{D=Di z-Dj=gx3lxNsgCMP@CcC&o4G=Or_tLAaf`~=$MhMC zO#ofb-ru>4$R~X6YV#HnA4HNxXbbg$dYc8z`~Zw<-2# zzgQFV;Xc5fZ+~j$Zq=KY#tgts6vnq(u`G_>C0q}7w``?sZ1^20nLui(6?p^qR5cI` zxp;Bb)K$C7n*3(D{uS+78r2J)jR}kNm{s7c_rGjMGef}WU!agp)qy%8sINqdE4N}a zq0o%Szrg*b+P!qOCs-#`ZQ)4XH29q>LsJO>OLURAIQrV59gT#L6%R&6%`?D@)gc(- z$2s5$c#(WqT4Xa=hvE)T+R_+p_y`eyBB)tlFVVSWVE4pmPjUWwG#yL7 zdO*~ygX}sOZKp!xh;gsaoW89($(Z)`zc#(1yDpz=6~!er;v}U=AkEd9n(`&GR_KcP zGaKxTG*Sp?PB35%UE7l~v-6=;ze;nL`vmFhT!Nw`DGs$CV78~fXQo1@K)XZuvvl|N z3C=U=rjnZo>tNwi>ndF0^X2j5qA3P+X2$EnJW~>uzZ`A+0K{>xR7fTjqXI)WT8*9n%Rgw zy!zwc45s#KL5I)=^_kpT?X=91z_xo`RO-(Y*ki4`H>?jn3Ozf@VlK!LLs z+uApe6!)G3A4Goa$Owj|fAIXzKK5LDEBYYj6RiWfL;fGMe<)5c@nRr_OZNvi2|p2x zF7&ReIFi^&G}Xn>fCbsZIlSkDCh~dl)v_ZbyRH|Bu%5Qd_95%=2Z0H_nImKC4(f)u z*RZoG+?4Zr=ZZQ2jTyy2Wee&BE7*-6FCBp;VZv!$b7YA#=nJ&$J=p%Sau;rAHl6+E z<~Q5_h%h$~=p%L1!;%H~hCT4oWFw+XjZX22R|u@dTvzhn-N1@63|A$SfbOm_`XW_E?0_G3hwK9hV-i zsl5K_*?*%8YT}CPb<_B|;30a>o=pU^-ay3?rV{zo!V%O-W6Dt72&1me>fe=*H6ARLxyfebC+;ur-v1yu&z}-c#Ng zs6~rbu=r&lfSo59EI>y&7dAk@H|eR03)25u+x_uX5zd44X->>S2|*n?_fSRB ztdm@wuXe@V{05{IM8zk4O&n>9>V|6KYgg_Q`C^ZC2Vx8wBL!cWRa^q9*KMTUek~aD zp1GWezm>J|q8mW7(Wu;5ozhe-6AZkrW4w7O{U@xt?h2rLUu1lek;F8~g$7Iq;#(Z2 zqprGX){z>OULTI{xKUv?0s|+=BKeQ6yKT}9c{WDo7_Hj5twKb1pe zf6GD5UKcyr0gUwzbyQx1b8U7rEwv))n@i%gYbm0eWSCmO_FXDyL_hI(3)9Bs1ixBx zwGjbiVfI92DJAcaSL~g?-6F1%gq;h!$stamyGtEt2ey-m&F$F*5c>+?OFM;&)CpH} z9Cq+ybS*YUn-hsSZ~%x=bwcTNu`aW28?D`fxZL5elEs^40ReH7PnXaf1K{9v=c=%4 zC(!5+=c6^?3$l~M?9iM$T;N(6>UT2Tew)aYFds>D{uoQ2J9C;e*W><`P)%%qUJmih zf)>0l`ADIXjDl+f9CoOk*DR29Gs9cc!QQrs!=(tTE-!%Y6wh~SX4BGexx#ZTrW}ev ztkwE6?PjAF+MnHVxgzSMvq|u}h<0wF2(ffiOV<&-^KX#ZO9ARLv<@OYN#U{w|I+Fs z#$LmS1*bcZp>_gpT4luhI%Vgwmy+$4@qhNVmrv~>aoclv9Pv-f7EYb&YQiV)O}Qdz z+IkRF>#HVfiVz=a^wtCoEedxA(y%(Z2|qID0z2+c+IiT=wPuyTq{oC;J0xZE-XMDI zd_zLbO)4uyl1PfVA=Qt_8qFZH{ZnONE|zJ994z9&Z|Kd!JfU(CmAm5KN(oXnez~g6 zyFAu-Y1q!Z#d1C61Ab%~q^B373Hv>TVz+YddNiPZ`_?2-6!aJD$@2S4M3pbk&urFE z6ma*B`ip$go?g`u_7??no#A;8_PBT_>Im$WR=pv6cQ1|*9FSr z_CV#ov1sWv3h?}Xzo*N^7g=UWA(5m5QcJ!-%LL?x^;`Mup1ie6@zt6OP{hxl3CES| zJA!D$19drVdhHk-k`Y}W)8A!Iylf3d=@?U0Uc$C#L8^FUoLBK}9HP)3{mR{$2-exli zM~_dja(RjWL-D2(8KER)y!;C|6TaKdP14F--l)t#5K7TTqJ3H@m8f%MD6^^dEo}HX zsv-|X!_|3WT)2w|wg}LSHeWuyy$tuy=8_r0AoW6#IrMGUXu<>0)w^RqYmJ?iPG9yVtFBjm#3V5CS zp&wzwfn8aZ28(WHrkFRCfVWSOHZVcIItLS%@WFNT;!`v8b8-f)J072-;+7~S?nmNj z*0hzh2eO$CH58SsfB*Pg*R3b|4Gl-zZIG?^St?fAYS^6L6C0-)pEs4SOM;Yiw-+Yh*68j)=aupavIO}Yn$$z zC4jH5qZ;^9AFu$I*1?X`!7fhvwq5p_4GK`xB=f`6c{8}(Lm+b1YRRz{&r#D|YHYOA z#XbWTAQvzogs`wlu}|17NTjQ#MBByT+}QL&k1kX}*21z9 z|H&BGDOTQxB3a~zef=>-oH>2;q+f92HdB=|4QJ8vXvbEa<;xBMpLqC-)sA){Jr zfTU$DIY|pEDNm$PqYc`s19ZK@#qZ$R^29vx<4(W>2Nua>!~nwQlK>jUj|Hwy}bE zzRb2!_%7b3GyNlEu-ho_w1~*~ZArw<0dge&##ERO2h%Fn6)&Ee9V@?Xn^kjITRJ-Z zT>~Cp-`%&^5V0QcD_Av)jo#arO!IOCq*$N0aP01ExNxCvXN)`nPbJkWQ?h z#9sL_+7}$m244Q2yeu=kXD7CALHjI0?ua2q(uQ|SM^B~X@hYdI(aBNQ3seDxqpEn8 zIn~>}k`|uNx&0=oh>m^4&(de|f8A`7E6z37E(~(fGX>brKcNx3DN6qnP9p?^-xP#5 zQ9kI)B%Y9A$1js-xUQIZulnWp)%~f`5Dv(62jzbvEf2!e_D!jZo+gUy_*(sWc{2rM zdc~8RzppO4ED-Z&e|6=hAlQi6fcF{xF}-Fv#rvwt=hUGqUA$UnY^i4p<8}Vy_B@cj zt`MKAStV@qcT6Xs=&S^;<)FpU_P+<29qj=w?KPHkl8#h&Tu)-%9hl#Lr;VHq|9If7 zY7vAKW1Od06rx^gjPwz@_kqZZT3YaY%)?$fSniIO<2n5NMI+XWv>_&8%DF-BfbX&8 zOdmpG^AOMxWLv0!ID4;p+LIEpA#KV0a`BT)HZY;~3QBhczRj#9uz+eeeEX+Z@stvQ ztP7;?9?!rB3L1?0JHNo7H9MiSgk0!>^xf8N#wOPoCd6K&-}RQtI51KOVSV((;U-@- zMhG8PUyP*b^6CyX*_zot31qR)fIJJg*H$bCiFIkc#R6_?2B*HkS| zaufBES)uolJ=$g7IeeBTcNHpA$~3IU7AEw&`)=q}L_SPASVI%sn;c2DAr=1ew_fL1J9Xhd^nnS$KB-LC=x3 zrqgU|j(y?YzvKRQpTi$?q&}fB3>=V7u0wt0tdV;)dN&r#!un!)h`zIMDjg`CC{dLG zFY+IEws%W)D{+4`A2;X*G#7Mp;rmM+yz^E{F7THBl2kh1o?T~a+w%0H>GPb_TfysA zXPHrgGo8cozk{2r6an=_gO-0w%bSU%bpNjyHw2pIO%l+k2Lk&pBiys`z@Q} z?+*$VDt;K%jkvWsaYNM)@t3cIqqV82>1CU4q9lx}pH?I!2`I@}J|-5kW_A2``fm%t zEJC1w?Xu~?o3h*5T>|nj1Zn?k0G7)*3q@X}kf0V29%WP0IQL-OkmnGs@+9q-b!$%^ zVmbr%C)eo&+9P;0Gq;XB0Ev6`e|X*lPx8>2HbBk6*#7jmVx;j-ZLg*)(24hviBT>{ zv?tAM{W?4~dd z*PH;g^M2l>Mna%6rPnx#_)LS5w5}RiH1|N$2!5SU4;{!luR6-ElxT zVbj=oLIvwI1VT12LZCe}bbLT2@E7%B)1xBOT|}D6rVP)fD=o6)E``PdpPv$o^o0m* z%(Ip8=uerD@)jiY!aiq!R3Vs_?ugnbpsqi?N{jYWl*yse?Tt-=-qCojku- zR05Ynpz%o!ujY{F-M<^#-9}>36RmpfY{Mi-PtZ)P1ODoXsSjqg6cw{fmK5e9r7aTX zzCMe45FtF?XzZ`9V4z&em+_JLwnFiIt$F|#dy6MJ`6&ak@v@pDm^oz(>!3luCMOsg9gbezJHR#UPCsN!qR1Nk; zjM1U0`Gy)~caS8z4px_Wt5V%#CYY@wg)knnK>$wpP-!ybQfPnaVqCk@_7i^{S%vb_ z^1v3i_PrR~tPEAsfrM++^QY&~KQqMeQWIPkLg4-d^^ah-+VWBPK{K%BlTZ2i z+_WH3h26Oo){3`28w6$mb7A+aoaB!KYxyQ@glS}`{3Hc(WehIg!i z90C_^slVL1yzM-5v#?2Al>%j8k*`3ymczv{bQ1v~h<6!})L3>qsAh0Hj5QsJu?w?S z3V8ozF$U5z|B7ILZ?e(B;4xU`dk<0N$`)N5KQ`%f5OC2HJ}a zm}gAw8zrP`<}g+(X8*&MmmfEJt+>-lRr5{J6;el5!v_3#2GDpbb$-mY_c-j1hDs6{rQPe8%wwxjgBU}n+n|k((>)5^5W3IZ0KW&~^oyLLY9=eR7z_eYSz@`jtzth+z_(Ly) zD6VQ?cXVAYYZuSV`S*sC$-weKu_F-Kl07iiZHA)o3rj)E1`>DO#?hdsnlf5{ z;`G`HEUFGa6m-$D*PD}D&{RUy$tIF<)NJkJvbhbmQ9TyGtm2UKxOBPFEUYUadp50i zlr;r_c-?0yKLvdB2C0FtXLllBY$|b@;2#9^w=s`!CNeW6z%GcW>IN85mAzamo7EGP zj%fLfUo~GFnM*W+IQd-3LFSK@-mzfjC z)r96Qm10lb(_!g=Z33$Rjdmx~Wn!dEE`6)UyI8s3% zJPXFiC3PZBgr&zP2_vq2r}H!<<{A$?qEzN3wdQ8fqyLDfho)v8$Sjn7aPk|j)Qu;h zrSVeVu5LS*E^(dK_-f8}356lHNI#)8eUr7wew_+158d`c_LXs}E^mzi;=A&`A@h6= zN@)MZbdze$>upJWlhsiuFvEov0b$QdK?c}cYK_AJyVEVzX-)(tI0ALZZ?&&go6427 zJ<_fih;jh7W*|rr7?9{cu8`Ke#BWcHuCe$!=bG?sT_4z?@%`EM3g2}aGM+h ziY3(#SNc@p5V0 z<9Eq5hEv^pAXJF-ztS$JtKSSVO6)~`rdj4k)E%MeU~^>vvM^D_5irkqSX_vum%+N1 zh4~PVdy6)5fg$xO4=rjXqQ7WB27dy{`t6Zb9E!hcD00=Gm41yALN%S~jL215_x|g0 zXA+l#iWcilp>S0&Ud5x(AWKB6NB30_YMiR}YTU(AI8@Xmx|G+AqXJAOO@JAE`I2F%ud^x~Q5{wAKt zmv1r;kcpv17q7y^o6L*Ls*W6Zf=@=)mo|K!4PD+~5EPcF^ zNxS)?Iq1Ba!I0iO|7tiE606D|W_TA(H$DI}2WC}d? z8N{Opp>_u|C-4NW2cy1wol5>m&=S;+J1~GOTK~m9P422WBf-Os*5VU_q2@^s;?zv{ zInb)2jL?#X6{y@Od*BS;Oow;9>8r=D-( z!+5e7t-SNKZ>Seivq}Sh^nBXJVmRu374YGo@)U$HOaomURDESi58#*WAGJV+1HnBN zudF36?~Z$iXmKIbHH{VN+r?2D_eSZuDAK;~A;Fp6>}S*0mjh>3zV!JTRsqctU+rzh zj&lheDyR;wU=AT(Zwb0xcvYZ3O-kO5fuu|^hp3pz8Lh9AKGSC(g%bxt>D&mLylli5 zr3}_Lb1{WQm2Ej^wn$t`lcCm1^G!caBv6g^9lN@J6vVh=9HU5ADX8F-QiGd7jr2B% zBq{ovijH89?n?96B!9GorvQNiGa;1BcNZ7Rv;=g^dMB!@|BF@Co(*F+)&$*1!z!K^ z!ryRlYh^lRV0F(MkVrt#IDMz z{K`Y$wsb$#QAZ8^05TIHeHF#30q{E}yJfc-| zn1!Y3^e`az5nq@H?&Zm}6C*^||M=uam~yL(60$6hq63d6EOaOda7*O?`s_f(hVO%! z80Z=D^gCSK_WL7Q)jAxq(#T_7zf5wxA?u?t7TpC4?E_3nSHi0V zPVYxVSKWihE=N*baOuyxszONv_&RD%lN4e{s9u+XIn4=DP)nOiDll2@pw8rQSIyo73S&jKE6$JjW|tKk6w?}M3LTg?A>;`x#5Mp%yWCZChjJMAl8-=lMNZjGP7!Q0Z8{h5uY}$5pfCy zkVX6Kp4>L#!Iu)m0Y*4+&@b0Dnjc*r6QI1*LLkdEff0)yhn7F5xOZ0F-c9SKD`?sH<%oO22Zq##rV za6(4jO%sybZ@Q_l46c}C~a|pQfI91S5AGaY#i&%iWXs}D-Kb} z5&&eF8Ce9@_mD3{oPpUld;acb!sLTspamj0o03#ntb!^M-bo;tW%2P6`Jc*ehQe`l zCu=}9V%b(ZJ)oJcBF_8+A$Oy|&KF2ZBn1S}YkuRcwh|W)y#xXjqgFyu=MY8efmH4d z*CeIm(t4wAyfE$n!+UaOydEAhew7cA$Stl+~Zs`YS<-y*3)EXm@s-L z3XK)W6YNDIK(X#Qbx%I#!b%8D(Dp|(v*+85RWEj4_(3LpqJFT7DOLadEWyEk=7WZ) zSf@M@A%;ra8t&5dNq5(>&1Ei!Ix#)|n&5G9pky!FkUtRKe;@$z#V4#P$H+ZZk676n zxEeFt%EOR;;E1gRtu^QtPEP6;0LR?s4v;nAd@6e1xXJ&(y2W2&hNUMphX9h*Tt*D4 zk#kSBW7x6to@D-_wX8MT#L->QLBG%Y>07K@t|JXtuW=@nFgcLFaMGWtp|4BAvDo0E6TRwAOIe$`>}>3@-=Qn9OR!b(XAioqpkdiL z6nBHdXH+#i{$Q**zFy{%ieGC*Zi=`O^yP7(CDV{iqUqY|D^659LScQ#=#T?<-<0D0 zHg)U>K2FAX8XA}1P-TH1qJ0{Axe*;(Ckv!?4^xidAqqR-^;|s*;?~R%$B5>^%CJO; z_71)?B}kmJf+BDJ{1sxuxPgy79t*JzW57oF#oztNQ&cmsavdP{%WOE$n|;5 zDcI}jXepVAnI+IfUWLw-9+6gQAeP>xvO8Y@B$+>O<->orW;M0R_=_-FH}wQANCIb)N^6uR}M9HJ)ZL6&>z}oKnbyr{AGD17Fu@)+L%&Um<||4=E~H z-IO9dd5o?%?7WzvPCjf!^Hv5=e+w{_SWD^+CuW&yq=#+Nli+x8HX?P zt|Cb13Xi^L`X)R>cb$yDDva(hfjr3070;i$33qXoSmBe!e!>3L5^XD=Y8liS;dyKt z#*TN>z#W_D!54*CpI1O!@gN1eNc;NQ#WDV*g!*FnMEiEe+bgfhp zNjEk0UG~z&b?U+RUlI3I9@??zrrc(RWC{C0Az4(C&-Dxa_p0+K;>+B6{skyWwetbwV)92ts*%X#{jm1YM%Lew-=k{Vrf zdFk8C%}GPppgN6w%+T=y_FTn@2Y5QrcoL-4FYCPu_QVHzFJ!licpI}j37`0Eqb; zq;JtRQzo(fp-Qj6iNS$mRGM_RMF)C-Z|2$-62Q9Cjr2X3a7bBrO+nV+uWzwO(wD|Zg;%~+N#D>-f~=qCwi zGb17J@BFPoKW$AW3ZJ`4OmVbZiK@B+J%xv-8dN@-CY5(!%X=9xWJt`-CKZ|nu0t6k zO-lrg+Imo57=z@dlI(_nXwd08JB93b)=~szOr{%pVWAmjIOCG&>{~~RSZJwSsdXzS z6Nz)^FrEQi>Z>}t2`Z%dBuPULm9d>)lIb7E(BUM9yT6Cira<$G z#t}rxOzM!{A0I99fR@k2<+C|s%HP&g5bQe0Kl~}EpC|e2$$G%y&7s{LDhwR%@T=pExZgB)UhEQt)4PMMiBB zOt`e159(RpuyPwHzzbY85Pz~9XaVcNFPa8f`#YydSULdW>7Ui)obaRC9em{C+n(3O zEfywt=Qb1IXPtRDMOL(KkFl%-FxX$vETzSZ*Kx>NwkbSA_6W{-1<`9VO3Fmd)g`Xe z5UpVXJ{6uUx)6|*v7nVVa+7S<{f{3tLYFkGkWQh{J`8%E2ovKa)T0&Px4jQOCjS&pxc+hWhauQo%WeA;Z2~~CXF8QtA<}lN) zEqlcg(a&A`j*r-z91@EM_YcA9SKcE?_{F?9YA!3`zbqby87lbmJkv^}`8-Q93N{`t zX5_0=C_VGUuvQqmMN$a5Y5?TCX5_8;2}@ypclXMw80@Ij{wL1yRGpp>~S4op9NrEpNlYGcF>oDle`@j@#8lCd%trZhPAXD0dlhQD7%4Bu${+ zcMcAa@-7q^f*;Qt-`~J;WXmYM;gAmyV=5w1J~q2JDTOwzFpI>MG`{_rm*v0e<~-?a z-|x-L{>;-Np^3!P$h`B-tlQ96oZc39roUSBEn66_SK@dXJG>e5-<2(oMa{jYj|_#A z?-fzzhpAIc&&9g)*DNTJoM-U&?u^6z^(K49au8UnMAk5KG8klRdxnv~49*3Ro!FhbS7AjhMsq&XLAJ{F!5imz zN62h@22Fu!ZU-K3Z-ZQuoYf0a3!zL)PkepB(J>c>{;=4$OV^_hrFfBsl*EhdH zgJN$Yn+3hiqp`UQN!j;Cl??(DCkY0#6Y+KR)9$jH88V(1=^qf~lxg48DYuo4uPHCe zHaeH)DwS7JD`aEliC0ZxaY)#&3D}x3MdZiB9r099#RE3bN?MwyVl;!FXk?&H_(MS# zK2gFd&{;UK*uE!v34CzLGm4!gcY|A`O+BWWdI}$T_KK>vCpPL!`nkp5qIHf*Ui^kb z){JYB@`?9*UtfOYebCVud(}=$eag86{MLhV&TE5ZzLaba{X}8JLbMQ?_dBRbAtWLP zKB{gwSjiExpB8dK52?E=VwZY;u`3lMk))Hk!8S*|ttr=%0z|{?HISTZ3@&eCO=%vr zv{ld z={X?l02FD(lw#_&D8~F$@py+?uEe=Jhek zg#}<)`&@{LofpmepZh-*W3~d)Y)E;q9_LvY$SHnE`1Ru*{iS(){d4ude-o@K*e=uc z-QxR9h6KhVH^e@AygM@&g2G1g^WL{R4LlWk*6~WXpjqx0CVjx9^LMR?nyAx zM(t?~Kk27MSn)@n$ut1`h654ItbcQC`Rw+Gvhk)_Vj;e^kQAnf7jP+1c^x;KCG>3a zpixLg`$Beww+liw!(Tsgm3GycA2+Rf)|tcE7X?9?o*ev6F(=)vj=mqIy+%|}Q?{4` zc5$u)><+ZaHgZ0`$EAxsO>HHtXHo$-1+8MrBTVHl4UF; zeFQDx9G@#(0}xdwJMy5OQ7sB|$pqdRF+oGS5O0pEks*j)yAF+?ur!T`tCzL$(^i}B z08XbezdYXfOiyG6Htmr!Ykp3A*ENj7w@d4U3qz@t`&a8vV2%5HLb*QI zi3Ssh?$tTqd*Un)(-g^n_-uK^2*2SPn@0&5`~6Q$yL$8#VYd;-;j+B_Z1w3<`E5+@ zH-jy*vO6Z4e$m%fJvTh_l^U4hLSfs!CPn3_98MkjH(Q3wMg@U)K0QcW6>FQl%~f3o>6XW_?D~_TZ%Y&wm7TdKX&K%%cl))m3jYuU974f z6hFb5hoZ**WN#P&5|kgztjAiGXs4$K6suj(*P(E*Wio3mG4B($ zkKkN>D&rQw7N@|y){lh2AnA8#nWYJL%zfC9uF%1y#9(8lzsFxKij|G`7hF(^2~?U3Q0_Bi+kBWigGd>3U_p>oR7g? z$*FoA_E^cTLb-{9l$^GdY;bLmr*6J5g7a_WK6_JASiJ&x_N+&t5@4w}<+t8<=xGgs z%uYo~8Nzb>6MZ^{0OEuZpi|CR9jRXWX#f2wUSkw>f?-LBry1I`6}yS9%8~o+dIovtRJ9mk5NbD zLcWRgc zio^f{ft^nUx^b#VxRmX;{4=m~~S$;dD-kipe`)hj`!Xd{c~5TQ0Cqq)o{m z&YI5QxH~wRYQ~~Kulz+Wd$3m7o98v82O^8;ymO&fDr@{N4Qv=Q1#c&eKiF} z^d&RvA}am*+6AE%AbKPaj~MaNX&=K5IyN~1>u%^3B{^MTBUgqW(`)?FL~@I7er}2G zSPZyKV<5BKY!w(vM*|RhiDQWYif0=o5p(|FV`CZld+*qZlI&KC(~{lH146N{*6M;_ zay2Acis8I1Oh*c$KI`@{m>3s@$J?yIKxNAA0t%1$ZxS+&M+_GXbu?pgsm5> z(x~dn^zg0vmCK4vEimH-VTqQE;79058!`mD=Vv6u?g0Nk0KnX~zo>n*{*MN|IS;6=Yfh##>Y#4lR0)NmL`?trSJ2n!Ff0}My{>+cU472 zHXb+vEXEts+$KAUr+iQM8Sv1n{(megw%`83(*dtc!3o`QvrhWY95Y}qU`zt&vKhUDS_O)TmwTmm*pJ%M;%7~36DsA`=A^b zQeo6Vs7S3bXs=k+;{oBIZZ;3$HT(cv_Uc9^M2Iy>7#8LH9%-*_q3CHpW1$ij5NP-y=Um#CH+JIh&sy20{CB_0{3`8tdhPf?KHY#%x@r42&)?u0@m zTNc#o(b>&T0_9oLNa2vlspjass!LR0B4v5TL1Y( z7}CR;#U3im7~tYN@S(^AQsXH$7A@srm4=0l5?7CZ9z~sJ>)%kk5>;ta04DS_e~ARW z(7YKu1gIqyY};E8*c*<>Aj}o!8_}*;0aeMXxOAZ6e^&`0mA$MlYNAsW6v`xLI2}@wwi?c%4iTj0a!c^_Zmh4y#OvgA3L&< z)(Lqx9a2KR=y#tCmOL*8eNjl5%X)f%tn~3uC9AMmZ~KGqSBSi?DmB2_7bE7#y#?nDcA&@=mPZ4d_utC@g8sG@Tz{wLBAOrcHGNm12guzic{@*cApTo+ZgH#Ft z3GTB05q#~T*!lnK$SN*SD?IoEJZS0Pqlkb>!Xme}{qKA<*Az5Au1c74eY+6|a0^87 zQej6lNb@-aU?j`9;Rz81a$rFp_*T{2>Yl!Ill(v=_9DWUd#?y&;y)4}>-VGJG9u_( zOMF!qHH<%VTiI!i>w3`RQ<--<*dB(1=BsQ0D@}Ae$MrG+NximWyshdA-BJs%CkJ*! zAKrQRn*rlj#@oS=)GYilaY4!tQMFXStPu0MG_2x;TJFlHYaK%B$wJF87H|cOKDT z1jfzXgrnEI$k&fFYDpzMsrYNj`W{KqFH=Vv>*gKop!;Pn;JJ&zHm`t}h0=RsuAiDkQaaSNcrPE1(EXZHlT^*LbvozT2$~g=y}w zc@ILfN%O)i@swnXGLgGJbtytWqpDF}9szF_VRPjWAb) za6>=fWcvfJ*aP!7{qY4m{k-SxR54j9?OC7Rt7uE=6(Go9TxDvYZ8i?zm4QNYbmYHN zWO?ax(lZYiI#X)&kR7s{+>;}9G$=*xAUlC(iLbaHzsqXk^ceCaz0=^Q*Fnp-%Z{Bh z$T@tSexqfKaU{o7qUGeQ1-RbK?KnK;*vK@F1IlYmDNzyg;wjR?-CwS+U3-kDiW$fo zAiK?WP65U8VN@zB05%OJIhFgm$l49lc?mht|Fmx~$&RnvZp>WoWxgXwg8Q>heDyZ> z_Nn)C_h<(E*2srg{<~X+OSl6VnOGABbD>$nU|ho`o6?DtjH4#^v2(R#Lne zcEpt6Wg%+_tV%|u>ywK~zE>l>5t)D-q~Qis^<7VuZa^75gaRb=sk_&~P5jC5K-{hh zqNxQc)hYv4wJyJc>tW_t2q-cAC5o8ZQg&M zgMgF`92&H28x63PA@8fl7(&sMqTTvfd}&8cHY909`=JKA^_QirI2ZJNF6Sgo_ZqGYNHiT_}2wapCiO2wxb%+g!-p_>AmZ@PSqc9*$Bt*_Wmtbwxm#oD0F(iG(&TX2%k! z{{smN5!=wb`RiJ~*(zlTp=Zv0a443;BQ>D$)Y0p~i$jvYglHbc2(*_vrf_z7@B6_b z#4^(1g|t6h40W>gJBw<4I~x2IwYas1_8;=LAkvJ+mE8@1`YsPfhC?aGJz_c-wkfaN z$8uNvoI9mF5*d1+BWTij?fOPq)GHFY@t@%hoN_!Rp^?$7GKtQ*Gf}!Kgwa}qk|w18pd|Q=7+*=W z*H_f3CGK|m-d%x|q-4}^VOyo|_|D>uWlENFIeY~Q2L7YIgmeF=%}ko z3-rqhAP$!}toyQ0_pSp+TrohH3zDH&DZEABHdu7Lh*-IsjaMChEr##5uF_B-y#!dn z7ad2^F(IVR`1YVX^_l$!?QSt2u-rG#>Bs=Q0A^sA&3A7`7PA%8{ zV3+A4?7&jE3wiv6C1c({ryLtgH8eeGp~hg41FZO-(29!5IUPby`_Md0e};11X>qvH z$=>JG0B3*JVDobh;y$HqR#)cO2p2JHDa(*w#PdBLsnA(8p<$put?`@L-AC6EFE;(^ z$KV<3(d7ji6D~H2eVM{|U<50M7G-Uf+FagxMxm|oJr8x0NTF+{nPieue|^{Snv2io z{fbGpM8wIeaBBAa9|U^X(v}Hwyv?=`A|^avt+PBMHqo0tKE|^F^R~$~DIx}ZIOcXn zqu?0|e2=xDP!R%7u%zs3draZBYQl&y^H{YS5cxMdzIB|b^wYB$k4}~s!$NOYyrz>LkhHaUN3~b})uL~$7j&<$k1rx2$ z_#UE~Ck|GCUtUe{atPZB zXLWy|j7|39!Kf{;TMqOpI_);fyB=*>%YCmw!In&xA46+$vPtL}pP*2^Xyh?LDwadpqD@J~``f|1*~ zw5q+}rMu^f9N$EsyW-*wkCuYJ%c2JEF_PlrX?El$Ea6!M0SjN91t6si7W8Wf4JOmVy~_&um_PCiO}&%8f5wDZZG9j zvQ1=HXFOKlmLivqs^gCpe3waZwCA*}F}mFCNWSim)+h6}g7>0d>j}Oi^CMxYj3aI= zO=Ts@GwP{8a+-rf&qo5@0q6S3g4(c8EuJiS##yyKpGySMn{xv6ZWER`#jY~f@9h^( ztQ#SRp|Mp}2j{7fdJb3ar^=z#Qz2g0IV0>G#kHl{0Hf+KEhx!m+F6&w{#4l=T!rX0L#eq$0di*ai!ThY{X_7QAstN&EcCJj zqTtz(RhkCV&TWlBi53=^;E<~T3MB(h$S!6uOI)I}XoQFD6#k{cSX2(yU3ekEr`41x zPp29h^>?Am?<2O@n<-)YHm>Awz>r~7>OXZ)*ZnK2R)cav;bK_--v~SMVW@gN;^L@b zsJ|VL#4#%Lw&`c)vrTO*p-lKw?A*nLvLS$+eke{%m9CTkpA9a!`B}V7ShmMDFUCbf zUm#3k+w$7d^Aai5nk+;tY znfiX~(exI11LGyL;w|fM)K;&-)OmcOwDt$4caJB( zIro{Jru+Ggb@2G@4<{m``qIh)Bu+B-lGxJ1*P)Tjr=Q7U8()yy&8tk&NKKsp5;r6 zyLe|L;}(mpKmgf*xHNe{4{C z?DCyWyhM`Q=+Ymz=S=XBtVR5ULgqKPUL9MX39|u|bY$=A6R%B!dMj)K{u$&oi#>e* zao(c&9UDQ{q2ib1F$K;vgo7>&iIYSkvZH+j8AMhXM<5#>-PUn6c9ivj9`o6M6%P$%hQH7lLTZ+(Ui8f{pG+;WRh zM^_pyFTK6~H-;4D?e(!q``{X)0|;?b87O1Fjf~&~{I@x||4~z#6=<`pcE!rQOOk^*6 zlvN0zcJ3-B=<(zoTsEdV z-z?gX7EUY_uA#hby9fOyin{fEv-7R_o-|2euBVv1EVA=rf|doStC77S_~dax+t4x} z7kv3CRA*(}R2wxyPl>dw(hH@P2S@VkF## zBdTonsfPIL#A4Xn;9T7Y3`IhPRmXq!A0oiSrZ^nyj@<1WpsMAwPlSNqka&p78Xin4 ziodx5RQgg|#R^SN+ts;zcx!o(=pd>%Kh4>yK=G(C53Qx@MhUQ$I|)VBnKrplptibn z4T8|Hlk|z}YU5hfzz`J;Gf_Ab>P*KC`?fb0?3g7E%s^YL zSad~-KW#zwZPZ+ezCc{+>z zs~qwVIqfjP$t=Lk6fG3O*j(g^oC(@R72eHUdr+Go2AlooMu;RN*p4=inNnt@Sa17o z2RGC>FpDUSOm#$BzeszBM2DmeFR3i4;zNeCO!uG2ZLgO@{8!I;t$5Qq<}P`lIOC5g)>S*205%K))ws|RM0qj6w^XV*5@q291gv0FJx zu-5ukL2B6C5~n^6;rMZW<++i5r!;FlnPfE(ObojP}9A|ebs~nJBt=0 zx%c;utp+Cn$@|%(2Urs2n;?H>T*8f{kBw3hmf6w6eEbzx{iL!b*@aM^v1%-rpCPzI z)Po(2R0n-EN#Q^|jI-ItDOhG)>?<#>+UJ@DJP@D3E4IQs%>vxxk~k@2-j^3&L14X+ zZlkC3av0S+*Szj%jlKKn+||U#()Wy=SJ^woo9i{F(2v|qf`#4uPyZMBGV{#5g7pN_hrQ+{P>AJZ!cGT4&oR8lanzDY-;r}xRJe%aF@mr9 zJ0&&S{Rko)_n%1QyfNY#>pJ@imSRPTo^szh-~uPUa&h0)6u5yhut}Kp zkCOcem>BK+n!)kLoSwz0Bu|b=zd|?M;6>!-f(#C#&}Rx8;Zy~A(8uV-R16jDe^v{2 zCw+6$Hv+azDH%dlIW3i;sT?#CyCjong9yFS6qd94B=T4$NIc!I|w#* zh%B7q5#PG4E4PU@kd(_y%YEp^Igs=a`fs6W?Q1B0T$d z6g21zM^0m5T`8%|V#-U^zwr<%)3$aq^ISjkx)|=YR(^O9MN-2CzgH*DspavkWa`+8 zWAyb@5O6Vslk-bjXH)>5TwPLZEWMOfbx#lwI#ixB<*BAuNu4KC zk??hih?PIq>S?NGBAk*|_s09ZVE@_6l?uY8<#u`6eun?H^W!h?idogbq}3cIicZ#! zW9PI$a!2N2a3C5+GW`YM>NN$+Wk^x>0+E`aa2ObqdQQ_eJZJiaAEkqJ%@TFsFwuwU&ItxNg;D>7|5jxUMlvA!M zDau-{3nkCG+b^;yjk}nk7A&bDv?qk3Lk!TK=7uP?u!s~E{S5$%_Zg!-YSdKY#^`O4 zG$N@TJFI|h*fM5h4PfDjL)IDxO$u~($y6d?H8YB#YQ+sgB!A}Ca7WanrA^a`rulpyN)OvZjzRb>z9TA+gP9Pbfz4AfBI+c zQX2=6wDc6DpSeG8tCun1Fvry@LN5xTiev~D86Ak}F{|Zo@2fcMW!tINyUk?ZN)O0z zNS)YYG@4IsA?!48XtYjQh^RPc%g`_ox)&TF_pPkQMKeW)wP~+%2nD`4_jej$3Z$P1 zyVtQt8KELz>$~{tKO^BVU-}qe3!v{<4V;}n%^*L6pGzx=JIxKBf^C)m)}+OL|R6SGCm@*&JcoWU$77 zvQ(vzRG@JM06WQ3ZB-l(?1@4D_Bhh*Q_Z5yYF5HwycKmgmLCrRN~+~4UMX-Jw~vo`%WQ_^nR_A?XA)km!~#r!N`Fyg!&y zM}WPLAOy8p`pYyuxD%(pQ+ar4AJ*U}V2K z<=Bmha^H9?tQmxyrX&dx+^S8tb=Sp}Yzy!x^xVZ=Z0w(dv|%qQQAKDE98H3Irhred zl&4z%oEO&NIXtvyy+i1nn+w=mzIPJcIzo;l{~y;`?k0IbBAX;AwsOc!x-#CsmaG*ALFU`EkO;I+cR%2OYTz} zt60U(hz+D-y_PB~RSqNlj0CA3_z3N*?p#;VBe4af)VV7RZ1z$7C6NnxdLOSPQ5>R8 z-N>1nTosYDi#fG%43GIq?J@M+`oj8q@o2rL{vrM?)CzDcvhvyUaua#FePMmKl-%?{ znHkZhUxCMIb-Vw{cJ*(>`3uK!2gilHzA#>~L0Tb21>*!6CGUu2D7U%d%_pLV=oW^% zD!yLI2K`?ZdFS>pbBF>O zDrw5^X~%1Y#cnvdec{FvM+EqMLnmm1E?aMUx?kPs`Nl%=lV+}ymm&X@LzSE-1ZRY5 zsWnuUK4`^trtt3*$$zP7;0e;b}tkpK`DXp5zl^nr51YSg95y#mKuHhh%lo>XSYHM8J#o5{>bV5u#c7E(UZ#vQF zgHQ*MnnF+Z^t)x z)!Pq?u7438;c898U`=u6Po(8lW{JF0*9{-UR6R+BaGlLXLOXX6U_KLb7D{}fc!_`4 z%3vyhk1jNF@3c=0l}7hIKgP}eXf7jiUrM&Hs;JayJ#1wBz_;H3>{4|kOY+q6tKKn) z?+xA}j6yq>0;B835!Ncc7*$WgLIEjLI^iR4FJ3epRpN1S zm`eNnBP?Y{EVo9M%$IOHgj*F3!s3Zxbs`-T`B^c}GaF#YZQympbdRm~B8@uqa)*S# z%=%Dch9kaP(w>WSX^3pkLmOZ`x1-{dc$}w!zp|_CqIMBTf217jCy>h@oRN^DQw2`$>SaT|MHUTSBbQK6`A}uuA|7Q7N~)luJdy1ybcanw@B} z^URp#ETdS}V6%v0td%K;FcSBg1pVz~nEwq&j4)Da~2HI6> z11TdSZr$x79D+&mcy4JZy?EG4?MWuVX+L>ZRMeDlDZyBi5ISR>45akAswd=7X>&rQ z#BM(1v^%rLg|KeKUwScT-VTY?kvvWycl=M4QUFmVZlZeC6z~1l#~?&a=a@HJF~++I zN;yF8A&|oscAGYuuX5&CN@XMpd!00~t4rAJahk{H$f(~eCY`#Xg|TG#2sN5-tXH~m zqXWs1)-w79H2L9W&-)Sjvr+!_2$DJL27WD%@Q+_X*;lIGc_p5H|tdCjK{mK%Y=WfOPN zfT*MKNua}n=owb2IW-!x;0wV1|DxH`j7|>B<0ICrrxU8Y3tV9MkFRm@d><4uv@xU> zvY-V~l9o?j#)-6VQuyN+gq=pQhfTFpfUZTkK#{h2xSsM6tZ^v?KFspoYDs;O`r7QBF#5?$VE6Z_>W?unSVesCO_>2X(3 z6t#4iEMDGZuZpPC)9)u}4R+4@U*Sz+rOvDR9_NlpHAgP#_ltPj&rMQpQ=STKAs?>X z6w$r`=pOC+mhTJlJ9tPsmB0t`-G`b1pbp+y7m=8Eq9AQXuD9rn)*1NELL1k{*EgiY^3y;#rzR&7qUnYp(Frq0aA1AxY{S$LNlxfa!(nE z9Z9t5Kq~v>C9x~@&Bt~+J44`tncFvU#jT~BRJiAza2d!u3WM&fQRChABG>a&lUd_D zi3J=}$#hyAE<-m>3b%(mYq(|)^2D;-S}Ph7e7u=fK&%#*AYn0L4wsPq}z|3cY=2H zyxz$DbJUFWlAxnHR}#t9KGZVoXEGX^>AXR`98`(3>(gp23j@SkpvX1%^U2xnORagQ z?1vpZ@<8!hkX9@%1tDU3dG=+d!JoYXv|r=Om6kb^FwVo|6}38b!~xsYV9hvcJmNc; z&7Q7zVoM(|LZc$RjGt29+3Vf?Bk^l+17(Uu4qQ$*0uzGf;NexGs#s=+Ux~@WRsOS2 zU=uWx@Sh#OFgtFh+}X{;{V$D`q%EpI{-VN4jB3;p^>CUM#xrL6y*AdhX3D+pWqo%Y z6IthVrHQoBPQEvDg5DWC+ZCHFs!`de$a}wyn*y7u1vUIsJF%fv&zh$#{Y5osPK-wL;g~RP%!1If>L@l(U5ur+Ze1pz4Nc z2W-IexULibheRN4VYd=N4vC9AjlnkIL-d}feICN`7hWQEpW|rXkxuwrV)*gos~TVN ze@X|0aYHJk^^r<~|C(49zUi@`0eqc5jfV4aV<}VF;j%QSnmyXj_>z-bc*K>Zt^ZL> z?T{5?gCMsZHtnY>hpY>E71Gozi8SG=juv_%wk z=tVXHjHVgJC=!%fK~7tLiq1{ey{+PJ0{6kO{)-v=gYLo@IH&FI z1uc!2g(kpa%z$%EZ5Dk>^-@dzN0*yX6LCD}7&8M6e2^S--hY>hCIArW=zSgpS#fP{ zW3gI8mi0GX+`=Rk{1h!osTtWFTg3g(1Ufh;IhC%s^it~;!Dd>LmIw5ws#7X`gzjqH zBm0}r55swkl@N%;t15-Y%w#e}vx-;3U&PE3IU@rN{uPW`Co^@)N58ZPyp*=opI6R3 z-NwgMdY|^h5X&{c^7ASr6D4{XYnBDZL;5QAfoIwr#<&GI*iUdj<{$hK2K>s2AiR+T z;6w0KVCMSx=f<=iP$iu5UlF{(p9x@Vr`^R1B`Y9ayUQJbc+C4uP?{DY7Od2BkD z4@+%Q`Ztb*POFQfDP%g#N<~j^1FvkcFC7Jc+71YxD43V25ISYF0r*t`6RA?~I2Md7 z9x@Tb^x60XY*Fl5zD!9zsY z_SADxk{gZnXOJ*j_yT4<|HT39n#~wY@bp#39sSxwX^ovjft5+RB+< zR#kh3Ql~g=V`Z5D$f*ZM&sG(X8%qUt@7hgS+W<-H$t6>0_lGN2&GlU9ZHrK_BYWCD z<*PW!W&2MPOMud%H^DLO^tM4qaE2c|3H~qP(nTc+#_JTKmiAO9qF&U9ldLs-1G9sV zZh=Q7yDPUS_np(L=FU=4)j*%6u2kA;aJ$XTv?F%7g(Dzmvi`&dG`eY!?>eKW(GVZ~ z@i;JJu*MfCBP5%k+mh(6`ySYc^^tKoL+KW5DDgPxOap)r?-+D2mePA`)=wTTj2b<& zXj+K4#Wx)RYNmZ>ns72NG+bj@4NX*5D!n3k(Ne%TfpQTYl<@sVrbXjaj(4esK!6kF zQw!h9S`x5Ti#m`Rj88!FR}8Jx9z5$$wBK){ByL&~z$oehmj5=k4D4ZW$6-!YFoaqp zY&nF4q*l(oP4yDWp-q_DziGjy9tKY$j^AM#YSl-f(Pu^Lykk4xY}QqX(^=D1E|&lp z$*`iy{MC_Bj1SC;WhPJ4(f^X^IYI9CgtYj^9;NnD?^O3ay5h28Us@h$lHTM8hNvoi z3Odvi_|{@4b}kYXM<^$jAg4y8k^pCurYR^l9#w`Z<$SrV09=rX5CLx%OPa9f<)0r} z@8aGm@Onf=qcksRe3`0vNIBaIJS7H-9Bq;{{nbn3 zmATAdfV2Um$Zo<4E%$;Tb$~lM91e(xD)_iDU`_4iCL%b`}H>&Qc90XpFIUEK?d~`>tQ~-JV<;{ z)!`34*Pzhf&9RO|6!goL1X9fBSc1$R5#0fne}P|zEi)%Z|3;vtH+NAAhY2M%D-L<+ zUSD##f3da42LJ>Y{)^^dgjg38x*U@|mEjndIyE6irnnt`+*D0k%QT(dBoy{WNwudL zOxoCJYW4Jwwcrc^a{|f=Pbr2ZXms!cI`Iuh?;b{Yc|KlD!TRjh<+DaO zuuVCd0t)~kTDf34Ah-f}OZ9p*bxrxUGjda-8`!f7` z1o~~A0PS@TJU&8chT^`xR(q*@e9 z17Ov3(o99Y8y@96K8r$44rQL@mXH2; zQ=;5-k2)M4@gBUfQ1G5F{U$?>2n4iVR<+Dwc781@Ii{;czWxm8FUOz9A5LM|-<5g3a&s(M}aEK({@Dk@*fo*-AL0P)gVq1g> zggilJff|jAtU$pii~zme%gLl&GS5qA<=pKBH zV8`}Na#hhK0-LhWreNM7>8YGx#VSH21=!U!76^)yZaZv|&cgH*ei7p_vhA2X#2`cJ z-SY)j*||r4{A;w*t|wTSLP8NkLI~p9NZ+;EG$IQXmIi)1(&elf$dS^_Myr|*(Fg-* zX%C&^3=8JgPAl#;s_INwkHlcxFTPV81IgXsoo|icw27$}_|%^PcD(tbK?^WY$U`pk z%GEpPA|Re4%BedL2V4=~b8k2f;<(aAAvjb@WvMNCnqW_K7`+N8Y`xHaW`W`#y|I%X zp(-Ip)4H?_=}dT3_#Tx{D#ddumsZm;4Cjg~)i2X;2_rl_y6g7`n|o$1ks%n&_KvWj z`(J_cEJM=PfxGIf;%xj9!XF0wOZM?{tfB}obudcr&fPW*0E{j@?lbU6>@2o@wvX;q z=ukgF6(7P(ejE)p#4-84hSdEQpNKh}h?lkEqL7!bYBy|ttHrWt=X{Ny*!ci`ppnJ4 z+qx>q_Ij5>ERYUN<#7%*Sq|XVSuQSRjuo|MxBroS9IOaVm~ilYba?$o((=Kwg;soUAD z;q|_Cso0UV@~+p}bIH*4i=F5*bP(Ej9*^AkwDT`9s2MORGuX>GaOFt9A;UXqWQDE)8AS) z2siJE2pl`fW9Z6s4_-*BICV6${HL^Jah3@0K@0&oeyuF_sOCu8E1Q+9H1;|Wc3Kg* zBqujB_F{Q0!01|DUdJZO`Q$2Z0bNxJ*~J676xE|DCTCATs+Sm?d}m`8zqXa0q3=j1 zRsA$+p#^2UPX(bC3O&$#=BANj)vbYj-_UawrF14=_CmL6q~K3t<7teK+) zB(~-iW(Ot@NMo=JN{=&r@SMOnRkmwka&}(t!_-JZ#BpM%GMW}u1j7*ci5$Z9#|Al}y*cotwqL z;a~h4^k9UswTc1WP}r`ys4VM4q0le}^SPSY>Zjm(|2Yqk$j3%|5WPc^e}^aQjk1>M z2hgxGMRzK`KJa=ZO9}vxQo6IFo}^*j;wZ9See8oGJYm?gI{ zlho24rIX#YO;|eZoyX)Z)QIteNpNa`EJNXh1N%8$ahSX8+SIPJ&0QErU#)oTJ(05q$ zBe781fS2_8i8M5w3jjBus}?6xEHHXrxt8lpP^pdMOn0qWSv4&;nDcJGM6EjLC>3Ek zX2$VNEu8#3NW+;=15+aL4p!maYlEuV+8oDnF4>sLu55@6;*?B`wt13|PERb+w*i~wgy0obDNPR`JgQe@BteZ)-e@mn>-GH2>0*08+}ZH%b@wLepI`RM`k2Z?&jZ$$ftj^9qH=p56xZBdCQ5XYM?it?b0s zW%?gnh$Z=Ypmv1B_K7q@6qS83{A@}CV}0S03Xa zQ8sz1cT!kK%L8#tCjSOZuwBY`!Ij+r^P3`o(L^OsNmw+ny(^2ZhZ*RH2|B1yomE~| zO8uXL@dv5&vr#Nziz<~?E^bj=o+a&FV%dIpgoDgw8(6iF*Uzv_`UtY9j10l!_MW@F zK)MN4h&nt^H1Q1G&Vd-Qx`R2HPk12@b6)0Z<>~|j`zzFW3MVJaK?)I`yzu? zV-B|<`-Qjf;RGMu?2x%Ls$h87Cw91?!YsZ%_ly`=r1jj9 zed60AK_)Ve6DG_l`HmJ)hOsGOh7TK3Kmf%zSPS8tmTK5_ciKsKIYj(_9~3~=VPAn) zIUmUcaH1L0JqZ%SsYZaF6@Pd*TtcMQCu;zQsc*j z8LGP{>C`z>+Wm)pzj*T%E$$H9TskSSrWPJNUc603LMmC|jdy}xj?8~pRB0bWywg;B zhmv?WPg3CahH?WXVNopktxO0mG!T!=IAV&kEa;h)Zmn!BNhl-gA9xtl}3L;RY>L*j6K3UyB|f)P5R5=ic^>+BMxNygKRdY)bkj6~6uS^=FhMKBT3WY2P`z1}O;Z^wmaC)c2~TLx6gQSL_S?;0Qf z+TfUwwtZXVtORtfV(<{KdUv)!X))VgLdtvc0 zij;0v?@xYCHXVAz6Yqg&Ge^gqym()$pOnprzBCb%w;ihR(yxFMrj= zVD-j^QMpP#J~s#^4(4?fbZKA2uIo?l`3vM$ywJi;ZA+WhsCi7rrFYL3AFhgJrcJ5B zIk8ZOP)F6U8!8*6a~z&A?rZ^M-Y7P{W~n*O3|R6tbWuhG#@6ES`2hbv0Kn``O-%QX zgyn&3JKNvy85qkQ)F$#I(a%1z9$R?N`T?vzKfX?Q=n5v}i5>1OIX|EzmrXqWYzMpy zOnQ&R!b$1clG91rs&YY00pmnaNO3Iq%d1L5$3cJp$ydD{--g~Z2?PZr&~qT_4&>Ct z|Ls@V@MNWgFsKooUnizDUQXad?3hm}BW`}`TeRmmi7y^QFd5~l}x-PGOxqh)p!H6`GbmH?3BOS!$ z_)hvZ9}u`E{E2v2^@IxUCnr+UzMw+faNY@6mZz117QKG)PfPyeZe`; zEY;G<^Dk~GgPF_fX-Q43;GI5712?;n8592qwOU4P!k(dBxa2ctBg8(c>U*(UaAe^Y zVYy_%1uplblFx6c`$it-k7z5aSC|Kse^^*he@^DLJ}O)3zjz79Q;VKXg~p67@7_c& zZzyGLau1p;kNXv7dM}ZjmE_px);+J^U{fu9u=(|>Pk&LFEC5@fCvxdmE^)hSF`BeB z**C9J!OY96)JJL9a?^kbm&ICD!5ezC(?K+K3XM7v-3$xkxx#u!%;G#S8i{dpgl^4$%M;kTWS| zVIm9);!0b6J#k$q0d&f|{#z?n>Ih7s$X%^B#NfxtZK$9z4(N1tLe@7?9XFD9GK=;c z%=c?W$|E5;3H(mVTeE1yR!T7%_&~k#&}9z7V_CRodL@YI{4IKTg;hwMn#q zkD=c*dgIyGLH{G#b=>&9{?OYGXA>Z*l#}znnWp7`s3<=zxMT|onWV9%gOucPNWbpq zWUtk-G2CKi3$YIY&RncNGUGUMCl?Q7DWyP{C*!R8h5|pYQo{pql}qp3sm$2!?y3Qp!Et-Y+^3NrP5fN8X|E7@{rr`n1of z`k0QItdRDz+g0}1S&1Dvz(t~Ww&%g+W+x7#>2t+Dz};o-eLfML2hwJyj;C8hRH%!; z+|-I=YSQ3*cW)nuM=4={mPo7mosicIFbX?4MRC=MBX@}Tp%jDLzO{Cp=b`@zXKxl{NmgQWpLTonbTow(sQXZc z=}VD@%H_PSgVHPS63oLGP|Te%Hb~`7S@LSESP?D?&huUd;y9t2FV{7){V(XY#1Y;k zfd6tupI=ZaTfho+iB!0@{86s%Aa9%sGw#i<_J5jeta5xB-n}i4A)VcZU|Jl#tk8T@+IW>Q_d%b;HIS%blQ4#WrU1f9GLM$IPIcK#zZtKFf%bG0y zfzFj51^V>~$jc_s6DXdfY{Uq$S`$1^26Ko%Js=2fuU^e9)a7b<&Uf*AXOt8fUM&3C zpbRv-v9c_xkPT#)iTwZ$Wo|o(7g*3u*k@5;pr(CCyde&cJwBY~^s;*y7sa{@-eUDq z&RP3GMD-r#Qd|=Ik_&7(W}Mr$o4%YYs*AL@_#lD-8j^a_K=G~JiF(ni0rOv`I*M;9 z@T_y_^{!6=;r=1|BRb`yC0qMM?@4g4OK+`i#}$6uB;C|aI>HL2W#EOlqRzv^*{XV( zYJyg~pkR7|xTkM2sy(6u_*@(>24aH`ish@T+V-+uf z&ui(MQRESHwZs4IGH;5_wAe!W(zF8h#=zNTKv<)O8Z*you-kU{BuFcSoJhiWJ%g64 zQQ8)u#ic(T3phAteoJNSxMc@-mcqOQ2)vvqqNV4gcwvqmRlj}UMU!^Gzb96H(v;ZujC_u)aTJDnCy{{T6v_sIJ|D>uBM|grdAF?f#M(*%Y8Ib_;al?4{8VtwEk}q+MOjaN zXu082<&Q}SJ(b*gCjxpKAd+p{+CJ_n^RMwMyrdIHdqt8yDi|eS9He;T_ACmwc4~4K zT42L}U9E1_Q|=E7krl)sG^^ab1IS)W8H5udhdhexu=pc^Ugk0`dINatS=LHmqPEGB z{pZOnKJpMlgDKv6pw8*;;xaxxu?K(X)d8#^I)l_s9O>0Y?MNa&E(TiL2{;&P6enk<+10p zDZ`5(a7>1Gkn-)8kR^-{`vZ9tNMR-p!ZjA0IuRgcH}4HBF371tJvUOM2NqmFot`bz zej2IOlG*g>`wwrM7AAi0B(WSH%3PnG!X(5O@sGw0e6+o0oWd5#mVW==aWiDIzb-Mg z^Gv_PTYT2IC=8MKi95aSL=tD{Hr7)q%oC80Mhs<<^}?mEdAd^2IHde+1^z2N1D*JR zr?&e#W2SXoGXwbxAlFS>RjM3`# z(6qG}H?Dx2nIraF2ys}9pO_+&_*_5Az?a4XcJTaPTWb1%BD0mV`#hY+lhhKtvEMuuT^zMqcK6oiJ ze=ZviRd2Z?lz9ZC*uIFUcasmWxe{g@cmnPU&9kqg*Ah~K{qLLM$$26>isT8NR4fJi zovPxY^QVLg(cL0Od$%`J4YP9!hZxGug2vZ8bUPCC61mV2mfXs&btlo=$7rY3sY?b7 zh^bdj^rzGifnFZGM(O8@ym`+7hL{~NuyxxdXadyF_){1kcNnWz{Qe67)+}( zI~B8kDzc9aqk5;ica2i=kaP>(HY0dI-D+qSAfR50yc(!FR-`p@A~?gF29$|QHg!}8 z^gu=56|Xa~=)ApzO}{2W?#!viC3Le~c&TVUhx0~sOfCof!LtJtaE!)$^Hup9dtia) z&un))K=TW!Ihfj!rdguYFZ|+JwuREKMc{nlBfzog2-k|uy2I-kht~sEY<+3DX2s4P zVe&00sYp%Q^*oyxb2?c7Uw6)}JYgW52%xBq25(86UUM_;I&=hYcY>erYe2LbfoP&; z=!0VT*VWJ!jpy;p2-%&ZoecD`Dg61ER+ZKn7e@ZVT~?)Q>h_UQ1udCp%|)^zL7({n)Vk~salgv<+W5vsz@f{GciyY#l$^V8(@Org}+7rbXFQKq!7&E+G3m zsa-pVI(tF#*j7mQ>t0>CIjj*gB`e?@3Lj&)d?BRpvS&4S!)Ix~BX8xeL*=##99y>h zUs5O=#0?KI%zM`ZB_g`AC@j3I5U*o?0)0f&RSGFota8F2u;f?`bxhkywH-evh8U@N3E9AX$i0DPu^hG4?0{sGS61Nxw zgRVn$hpq58MUh|8Rdv7jkAr8tmjEy#{f7+4bp3%*<7+{kcz{TZ&k3GMb~fw(n+U+X zZ5B9gim84)LYm4hn8oK_m|;h8yglOjiHou@eZ^}BshL}NYLLidUER*e@}5B{7o2z zS}Y3XZ(YjXG}nj8O-?4&P&N{gZz&(as{FS~b0gS)zmqL6#0d^mb-QqD=O*)kb>CsJ z`?;r{=^+Ad_ruWPgjT2?z+;FOd(xdayH6NRfnXg}C(1r4m^)g1MPiEd8uJH@@7Cmc z8lIr9YUOKSeXs_pvt$wxomLHOv7p>g+F^|(#1RAmBi3-Is#ywMiz*Qci zqW%p3E4u#&T-}2>ETn=%UF-)&BeMpDHfawGEQ!zQ75wF`yu3^8&tMGO=v?d43PP1T42M0HNg9e)( z#ow0l))Uu6=p6g&bVSwh6lI5K7fYv>kHzNgr~8LDJMC2vgy>n3wfOj#eCE)(C4E9{ zc+FW?4c@kv{mG5ldN{8>Q_g5sFz;7$B#DA|T4 z==si8?xwz^Xz!MzE}nrsgoet2gMHY^%FAi<)Ax2w1@_Ym%o`xPln0*hSuhYK$VAxU z^od2Rvc1-B?L4Lq1-pyQ=r3Vf-h$j>^pjx>%63)>444q$jAjxWYE#S;8?B%8yGXfr z^^NF(8z6a1@mzDWd`jNuZ7O|;X--FYT!^bmjPdOCiaX}v3$J8WYp6nWCya<);amt? z%LK*0Xips2d89LEbc0#0e|0*CCkT3?6BCSfNzR5b=EKs0FvKH=TP>B9!B#i|I9YlFeNe8+MpjWFjxC-s%l~ zTt^o2eQ`RyE($Bu65pfH8(od54l@C7QF|$SyV~%Ze*}$!y=V_antyE-#xR4V(FF-% zLO28#Z+xQ2HeU3(_MxqSK+k&dC&_Zx6rCT-Jz|tcO|oO@Q<14+LEe2Ku8UX+4Cc^N zF42A&=vQxT-VEqxLV*WLd?dpNm{N5Z)TyuD9!v%txl28sGz$}-{IjzfEaa@|j+Do+ zNF&w+v|5Mv=pI#ghUg#>kULe_EPaD9@C{{cdujY_Zh|?;jNHl1>zpoD|G&((ao{ho zi8+vk$(0G)9L;OZS7EASXpuuRlW*gZT&j86#PKN(%(TUALt#e3Y(RsRw5STH1D*pg zY_N-nbXP;v_@ykJcJXg4k5vJ^vJqZ35&_XkKamVyB(s zff(DG;~1KaHDtd7;B`=U2;L6`w~DFPr?6UnpP6s2N)dzh zq{I5A7@v8lkI-9Z_+dbio*Y zd;@e&Dt^6$GJpV>9{BzB7-mHJxFzP3$1KO_@yTq<`|%~28vY@`Q>VpP@w+`Wmy5P|-muPATE%KsAN_#{uiZqQk-CD+z+ zpUWD(JE%iXA43cdzhUA8vk9!8RjKta>b5f%QcgTgVY79o^4T}K0>EG?_>(M_=_j+t zMP=4U*^1?A+KGiHc*blrPiR>|hm`U7^AgS_?-lJ|ue#nOBJ&nWd3?I^oj0(O~$6cKcF6M+HN zz6}C%%VA!D8O$S=5}2ydOz{e(IGPSS+W|>7k5qc zOcB`0?iRLB(bOG{cQi!RSPh^eVKg0%SQ}hA0m}+xWIUF@2%QQWC?eyCibtx6<)rjB z6^4l)DnMG=dkjj0^}DiQbxD!1YSw8Y#rxW}$tR!d$#dF0Ng=^(a5X0*xXA>U#<4M8 z9EA$0qZ|$04R%$5f&tnC#)sPWMhPP62zuq$84EFHWUeenxmcz0t^K*#{I%M79)A{T#D zS{t)>v}@WqM!7d>U3^fQkbLU^s3IEDF$`zlyE8|k2eh?sgZNSsmjBR`(V6o=X^exZ{@Yj%NeLw|~JKQnN znG<{93g-IMKXYfMRy^n2khmS4k@pR)9z-8^x)z2#4wdqoh-oam8-7aAN*Gq}WZJaG zQ_8xtSopX)GxJ!6;6hOizzih#dTBVu%nC4@u0DX|IWgQK5-<^n;tJSUd->oy8Cc9G z?8%(&-Rg~9z+nbiBC*@9e5)clWZ<3h>q(yYeVJJ*)lx!zL)?Z8bgkh#o2mYGs0grK zC}8O6)ODq$X%m5~VX%ffr5LIHOf~s-xh!a<*WY9I*~4qwAY`QFEU=ER4X^=k3HylQ5#Y)*coXbbqMR!V|hG(63&MgoC9;i zExNDkFJUuyq95*iuypK{SmQ?78l0+Xf&X3@L_8(@r#{_NX7Oko0|^R_TTWQpef8D+ zopBZqRLQ#4)O6!@mJEr?3l!l?s2_^??lS`I&{XORrddn3ng(|xdP!}+XgA-Cl0@a? zWj1c`r006SH>{3VG`t z_#81-hWP7s3Q`szD9Sp|lPqDjDU8ZJE6|*+HU;f41Xn|p5Fe?b7_xS}PYnFwc_9|V z+^2$5I?*alRl7#yvC!5cDHqL*lv`u(BxF4X7Wx_!uXHZvzYuIp^}6ZE&@LwtYgC(< zB~>M1kp1=Qb%$qRs8!zqsg=b(A`rwwq@Ol++9%*Xbd2x0^_!p;GH`Y!N!*Qft$~I{ z>*?yKf~=?$R3U#W7mM%Jtcprh-g=MbaSx>VIWw-j%x!TCax1X}<0Qx?ZFq*o*u2n-hXN z8LOLsv{8Fy{bDxOTF~oV5CjaJ&nIQx)(?_2FNbdY2MLnYZ`8c$pf{C_RkRGz$HcQu zzz`12FmF7e#z-q^Q>N2=AMSy-TR510uPWj_q7%Wv)5g)eUwXUmp~!OhqXf4+D;?#~^>l>N|aS8-N`rg-Ci^YFlGYC(t#v z=p#V%p!{pVn_$4)3~FNP#vs!FueXv64cBjqhZ^HdaO z@3-QVAB&0>xn>dz?b;dy7GxqC$m-tVAQ_tcU&RRmZjTYfOnDC zJu<5Rb6D`GEo(B&re$x(S%|QLqDY2CoZZ1yM|aRrObs&}74VT@ljfS{as5K*A8-}m zL&Qq~5ny#Pug^bGg1z^(yWv+qyH|$+`_o0cC@mnaC z;q)nN5xsGI?1iyphuS-BZS|k{;xe>hY9LUJ3K_GF$7NhOS%(a{E=383v=z+adDvmw zql%GwdHgTNd%c|Ot7`GcJIstJvP`OE7)=WIXyO<-Y*mFOgy`Ia>mbQ0+9!iLYm13x8G zAe)kpO5Lj!1%oD88$TC*CA6A8I&bnJ{tUJV$d`e2i4iJKCyh&i6e+7Q?Pfygv1d9A z{4?j)bHmW%FDSRk+e@hG=T2&%b04PCSr+qpyyXs#sV(9zJ870El`&!ji{?Vo690Qe zPhBNcA}U>k4iMA9rKvCJ`gGaQ?oFrO6=*yBAW;J&(>`ScD&5~kA|4B=Vwz|$pOo%( zhi}$~0>{RQKg|vg!+x^wyRMyA9t!PAEz8godBWH|75Yo&abh&#`3=n@xE~4VRv=6H zUUsx*OHRg8G|TiuSpHTFz_!%IvrggM;^77IBQGTgY5qz?#j$_)x zAJ0NnJgBqH%Ls?@xK$XjqrG+~kTR&C2`E;3jsiBTcDit_iQsBmb4lqf%&?jhUQAR) zvGHHrD&HyKf>|T$9coMnZARcl5uBoG<>@bQ5uq)QwyP5|Rj?z@-uBQ6+ zKcmxK3(jOO# zcg|v(-ChHx;;K)3`tq2s+sguU9}lFUbS4{9!y%p%)CzI9L0=8Ag9g%Gz3UE-<-Af1 z5ixeJ57SP=`JBI1XNu zl1>zl?DMqu4%bkD0Aeif z)T5zN3(R`?b_hrc-y$W|8e5KtM(!^p#bwM_kQd-)jW{3E()PI=@FEY?wECaSTUt6T zsL6N7_W4%jwi<(Ap-g%xW7#&_{f|J_Jm;A<0F}eMe~$TJ%#MV6@YwPWDSDM$#(l zK5yS5jD-cqx?9t$AoG(h;VE1elMGw)xC%XWY)81rc#H485ha!2|NMPkZY~IA<=R?x z1Q&So0vx|F9#`d1246fSChNopmJ>QYZ7foiR zhB!Kxacg0A6T344ECvhf@e!351a6%s9f*i;q8Fxo30_)G*kPEU3fMyoah*TK`8A>U zahJDCe76AcXB^CZW}yb=L#LH(h~J6AoS(`KuvIk$lmNd_oS86fM;_XKh4pDW88t#( zJvIRej2*jU6tF>k0KQcQaqKr2yz~F&PW`hJMRIcm#9ysy5%;?^Db-%*qBf^rTbO)( z=Rsf_iOoua7wrHZNiJ+qcND;I#iLkk(Dt{mLin+lk~&LIZwn-RXw(*HZ;Dpf+IjMI zmjWy!F61id{K7ib(!R&t9kL1R28j7E!)E7E=>biZ9^R$2M7Q)W__NP#0n{VsJ8^=c z$@?TES+XTOEwQ-UjaAFYWOz5I9Evcn5SYlqno!#z=AFKgJRkMxCNN+8S5FZovKSfT z&ZJv4K}}PWR1No##TSc3v+q<<32@gTuUM>K)_;Rr)yi@K(l5xJQEsQW?_m&v zs_1>#h9K3xq!+|m=fLj#x2qk|C&Azh%+&qBKG~Oy65;Sq=C(VTc)9!j3$gSP_-C49 z;;1x0@`HrIJDyj7kr(fV8jbso3hGH&{%d6dc>!_h_FcTkBM*ct$+mY-5OMn5le6>} zu0mP*_2P|#9rwS9t6VF^YdC7PA+25wIHxE^U_u}+W8fd@K8G>C57qt1Cq)c-UGDEr zJs)(VjZZI@qIKZR!}l#oeFiokza~^zal84+LCD%}Nq9K%g zJY)z1(1izvMG1$D&*m6xG!0MD>4d3VgG2etBjs+lj>nP4ow1uXmP-iM8{D@Yg#cC2yZ?S``;)jdxPGpbhoI@KPIVFvA$$gujJE+fSCzG0w&x`d(8Dea!|TQ;@taMzlNW7q!z$FM;qP@`UI<F)^1&aWDXVrYJJZ!n;f{)caK|Nm7ODI238!XiYIk^lLW%bcyMW*LJSfunzZbV z#krIJie4e_yk)4*thHdXIZVae10jw900|vkPMLo~Uhv(iAEBihCX*3PA4y#SFI{rieC4R&bVsD$J`&kF5()?yC%Dr^OqF zG6~BBxR<6~l}q(lW>zJ-AY(>=fzYGHB$G0e%ad12!HhQ^ zRu>*sY7tcZ3Z&sF^Bpa!-M#-C)&8k^u%r!ny`V}9$z9=FZ#&c#NS(%+l9vYo)NXg} zZqa#h#2}Y5*#go?zj}huSD>XYFmZ4Sc9T6ZhsF)NV->Btv?Ng9lDr1BQel%;?7O)x z0VuL>js{BQ{&<=>4tpnuloUlTE2^2gQ94ioGL}$D^8Vw7^4;Yt0_Q_H|2kwM(T1Z% zbgw^^dk3dzTG0EnT}dKtZ7^wjcd742XciJ)&HoT1u}f-s1xhTC;qDT@B_!CqloH z{FZr#;08p^@PP7@Y{1LgjT%i+QkX0cT;(X)f?M;l&8Ag&q*kO4(iP`=BJ->a8pXpqCLn>8Qt%lD1O8Ycw*61el-M{AvsH=V6 z-Z?M*9-bc($hOOarsU8n#&wvC=F0E^ms#z%DWvWy`QCH|1a3J}6!%>X?HIuaKh?p7 z8_TuKY>I9Q-W!NiYCTBvHGIdpao_9LHdxCs=)DigqQ--!wukcn8LNl(+K;7(}on6flJKu(KdFxdY%zK7pxeVq&PvJ;?m%fI!5w z%H>%rM*P@^0+L^44dDz!lt zk`ZgD4qG$mxvIBJWz4^%wQv!8C#d>3m$xr}7K-!eZ%-`;E4g9m3CSAMS{(?#XY!=fifr8|72e5)zhR3-WF z*(2&Xk;*7RYvKX@VFJT!Q%a^X*zYIXsd99N7qKH*oxoF89J`~i+M(&J`j+7=6_IW9cVsfbGSm6C1x4PiAB4CQ z+-gPe;sOh9XPf~lnT2~wkj^Hg3-%b<%UsCKs$^;-W~af>HdnX+>@=*|Ir)6cvz%+X zJ%@|eIS7|oy!f@s$tmIII8zRrpRwA(qWrZhXgz1Y;|5ahw1_e!r4HxOOzw;Mvc*s; zI^fbSqn_N7eKS95?n0=_KJLd>5fD83`()UgeMvJ7NprajL$|`qLY0>qHwhXyBc)Y> ze*dhp5kebvD>br1ZArnZ+?oQ}3kDFGmX+}DVp3joX@#X_2)VIf9`TkUl4?iZ3khR= z(gDR}o0|_FM9k%avFdH9L8L_ETq`4p@$$soU@{0>7Iyai16wkvGtjZl)vTr~N~08f zVz(lUD^weL(mwj$Y#5D<}5Dl-m{Kf=M}#B-_B^VPZsu^3;UGf7S?jb@nvXK${(?8 z{qTPJEyjZeO?h3^asaLUIGOPQ$W`i2@X1OleW2w-wW34>%n0u-Q7%t^uK9~V3NH?* zYZQ`JR8P+-_Zn+G;M=7%o6kad5HX~ob>v<#D*@JlNJ@(#c4j5<8Eg#6e zHa#&UCn{AE^n8khdF{}222-98D#J9ZBf`6k zZ^0G925zx_^;**yZ2~7XMCkpMsA+N+DIVHI8KOz0zEot4ev5uw@8y*|)CsuaZ@hT* zGkMV%uY(*%aJa?g6S8CFEO9u{pFfe6TURu5wHvPVvp-xYi9LToIZ&K?M^-Z4UH>`f zrGd>zJ>mUQ}iEL6RGT@5hZ|DlCE1y0;N>G&QExRFdQ7 z!IF^V4kIxsvUjuT;&_LSef0W0iLOJ{{P#TI`kKrylyc2XpW5N0tOA&!crY=T@7Jb|vFB{hRH@M_l?m{%48kR>IetJ84B!iLn2vtrN{)vxr8B-&Wee#H(wjlXG4$`Y^rLN zG?-lRr5KGj;8~la81{k#VOtWDg*uIa)hh)U4GIBgPuw=C(`^0Je;J&fl}gbtPf+i& z*kAR7rhY#ByBG`jFW9jF$Fu$ZdfZj!0EY1!u&_`Vfd8uz8>79PXL3m774 zwo%~>u^}-!_?Wb463=Im3vW&tI_PftfE$Pv&1Vtk#H>x7I8C><m*9giagoac+9`oyb2t`=gY1q#@ zuSY{ZDEOvq2B#lZ(hhUNj$(xk%U=x8aXrkVSa_-8apMGF285QF>)t*v>}{Pr6c)A$ za9#{TOG#tqKKCu{;aUu#+pVn7KLp<6ZH8W@OgvUry1bGRR}v#AIASh)Ke*9V+uxa5qM#o;fl*S5J%Fh`^a{7@s`j73Izw{xbj+4-$%PIPx3 zb4YZ7`#I8Gt~iD8^go;o%*5zMm0Wf3;OPbSvkj_pTCFl z!)q4yFCK$yQg!L}9_)`*oJ6j@f3g6=MP1a1xOO#{**TB_>t&o$rO3i(mw2mx!?6$H zev4c8@sSp+laMXlaqWH6)c`zEyzYn;5nqM+$dLK}NpfpklRSc*LQNsOOn`qAbFP&- z^7*eS`qLVh-Pq&c+E4UF0@|@-QS%pdxVHoxF{#518vj9^9uHT?(iAELpwPF$yj+}i z%yhYo;|A@t2#byxY&J@331nF08$b2~B6pnT8uDB`1LFcbOFUZvs#nMt{&Pq6y zggF!neXG)n&AtL#pJyC74;U66$SNR}&&N{{5)DD@!?mDnrHmN&CC&^GP-viGK;|mW zt$pfc!i`#8<|#N5s->kcaKWdA5o`VzxDAU73dgcfk?*~=r$-Rng@_q<=0Wb zsppU+?(5QQE$Cz3l7Nu+NBMm8e|qRwfuO0hWv8=uaHN0LOwph^P~C9shr;6KQw@>U>)lEDSlXHy75;z6P9SJ~24<-$?toCtcKQ6l+R zDdeBtIVfqm^Su0dWmW+kOs4bIpF$J_f%EEXf1{b~D$GQ((bb+(50jSD`4;NZ2SSX& z3AFBLB;5WvgQDH)CnbHJoUGsTE)@ny@*39;Kl_O3k?N_i>+H`L zQyoYB%1du;_^6$DFn3zouLc=(rF*nWk6{f0h@A6Urf4OjNrq<~@avw1qjW0ovnaUe z__btS1hIj}KyrY1_Nqc0W7cj^|AV1Ug!&pi8oMD_9$S!(<12SENZPqP`_#W*NV%LL zl*s*mAg{Rs>FlQNV75SaHTVlspuRsG z>7EffjqmpM=X~Xlm08U zs=f3e8GT;f+?w)SMy-k!dEs3I00ANXKs7~2c*+e$>C~x%#3}-!fI+{IQlM8#i-a(r zv66i|jm}|!JzR;inJ$|T6WWKYq*OlErLK!xp(-?`g@?RnEDBK%g{{b|d7|{IGR*Q|90j)~7rfeUx z=wH-+GCd{hEYnaBSAM^Z9hcWeyu?wt%nb(v_#>c_#A^m{xrjmBFu{IU-CI}b~U?izQv_;U5y*E7m%)Mq-r zcuxaz=!qL)(R;P$&~rSc>&{`)yqzneDdi%O%B8tV^zAj}O;xM`Sl&jKDQM@2O1YI&H zjD0-Yf|K-&E`!hfPpPEM1)Cw>V`E7$^&xnDMFueLKdOXsD=Pmv!@9_%$|XRGibe6= zM>V+P@8#@hIzO|+TB#1uGW#(Wy5Op!1LfH60k%%*qBIjp>JQ=+=9k$sM?a3sMQ!Lc zjxLn9#FN8|bmST1FGp#!)fQGhJE-Deae8JXC28nTlE> zkeX4AF9Lu|_Y@tz-Ua==$qII4Hc0y#g;v!|>X_nt&%T`Y#E7dZKf@odW@^;MR7Vyg zYEd5TB_~U600R^akc3&@!!}*X z_6jq^Lut!Xf#$u`RE`LiRD54*7huK{QS$Z8uiL;0WX*x@=_Rm9&7Q<7z<^ z^Y)HMg#pfz{h!?Nt<_E&%$^>Pojftgdd!5$YW91FPKhn#$zr?QVnR!!86=*k+-34$ z2`p;!I`RF>t}F|&MMF==JatD2txE_fC`SqsQ(8r?RaTF2o|4DOZn6alpmTM5Lfr`W z9zw#aK?@GCxdJ)g__wOGg`;clQ~IbEh@P#QMb@CF=+KJnSA)-QC(SC7`79qlKenC& zFB@K08^*#3HGLprJAzbi(~&Lz!P{k1gQ~0eja1f`R2eM-sn?0hcyRj=QJWslwd~7Fede&;g0;*Gx8ziCX!SkEXIej%%+qRD|bcx7R=X zp33L(`woF!>LQ$ zy;Io^CiM6YiR8L`Jh5fZI0c0CLa!`cAKJ1}gQcv0NY|-#C321v1B{hhbPJV!WRG6q z1&~|agg?n?=2!K%+OR+@v;8>28Gm2tpTorS<3J?P$=z6AE+1UirPD9gxsx}mf~`p} z0vEaRKjJWAgr-Ms6Rh4$GZg{H0M>S;hn&|m<$o|4 z1K1GEMVEt$^YKwdbLt+pJ)_#&ns{x2{Oa9OSs68d;#6EBJC99SX>HV-zC)`8zm5>Q zJWDHQ%|*rA!20?(XKrW=V`uq0kPvvtF_yLXR(SQc-@o08SIr)$qQmv+P9@+fj`r#A z*X1Rk_H4S(KdvQLZm~$XKf9J1pv3+e_nm9m0P&nYbU*s-EJNQ|TS&^YIO8u4-%i~W z>}nTWlbEDE^4M{IG(bzbAPwi`}@;{p}26`4S+ z(R+w8@=h9WX}vU;4&OMp{cHBy{K>2}kB?SCqR=aOELOnJ(vl40Pc<=g((U37QTwpZ z(42;{_?#Ux(I)PZhCv9p^DA|Fax`IHslY$nZEV^krO6)OgZKV_eg3YM!!^{+)RY;| zr#gG+H}WG^2Hr!=1FZj!Qx})wUwVXjUWJlAQwU@F*zHJSd@bJE6w_t&2kj2jC_=5$ z`WcEcM;umD0{lF^o(xUKl_0eeJXFs8v4B_<{BBJ{y~UowHV|9*KDPDKThTWEmWVpu zP7X1%$2;br-l=V@I1J9YXoFAJK#o*}yo`8nid-e9w%e>`&zo6pM${DF35N{S52pJX zq!5fl7on(`yC=Pyh7tU}Yu2%SM`Dz}^NCLpF16VS!oT1ZmB%^IA{VlUnPjf7wwSf; zcpWt^Cqjjq#N@=LGW>y~z1D}_LUivLcoRpG^y->HT7$wT^;a)0d*?@uvznuUF^t*b ze3fY0Q9mLtThTXzN=Q^VZPB347+I9zMm>90*TCFFBY|nm&#uGE;|M62+N9Nval}Jm z(bQp9ohe~L!Mksz$SH@vT70!!qe5RJr4jbed-b0k<{0+ZBlsz&8i|$HOV1|XtIQJ% z%jV49w&1q(+~P~jZ{ToznHI>4tm%Z%**kWSB5gQmb>Rx_B}h9n*?Y)dG%<}YvaQ#- zG+{P>|D7|VxU^}eG3G9}>Jb&`LS)#rfKEDq)vuJT`<@_}SlR&d9EQ2$?kwC=wE+J= z0KjzKAT5&V7GL9ZBD|V(fj_FMa7g>zK($gY=j1RP=8}tr-_aEN@fY=5{rIL!d5M&Tv5&$erBIHgE=67TbPQGo z>;qdoA~W6*WXv(;6#VSY0VDEKsU!at+Nfu~+qT@E1?~uf*mN`0lWHe`7a3*Q#=w(~ zzMtKRX@0zYG-h&sNJ{OE_N~4sfLT4(H7TH)8*;7eNpxxOoS*`9@Q(I zG&oy%%lmWTa5bqy02*>z40K})3>2DmC>oR-Hjz^NmlFft6&{R9XrO(ya(brqGRWq! zD-JQYu7#RJO^>{|+-F;?FCO33RO?2K_QJT8c~Y2GGrd&{&`vD1HZ;CgVI9~ zl)kukB?EfS6Su^XMEo2>-E=ST$OrRX4Ld;lyI8;6+M?cht$Hku@k1|f1f?x_7)0Op zbI#FoS{yORo1{3~j(@ynO=Vtm!Ku52s*F!!%pw$;$;^*XTmn+K5uC2=49(3Ak39Sb z3Vg#Fc-TcnIu{5&=fDX?f?Fx}WoYH4;+8Ta)N-l6y5I&NZx4KfOq1MDz`YafN`5YaM(yRM`?GtX(8W@uy3ILdlYw#Q?D?nx4s_st>wSV90P-;yqcu_C z964|vp@4s-bGPIznwZ}}e$e8DSJQcw$6m6wbt>BaAe@B)$d6Pi(sSX=|f*3R=Dc9=*0|o!$ z^s{262pB#f6QM5)0({THiY?Ku4bBoPjPvOPa$v>;l1$ls@{Kf^vzLNX@5uf;?b zNh^Z_0_Cv!#x`A+4Z?MvM_EQ=AFM++&S)3`hYMwOVCU9SmUAXi85f7z5!C0zii~mC zc7ANjMBT^flY~D?c8}qDwcY_W**lEc?hMb0F;(B%ZLzOgyltQozlM%)s)Nl8AuxS@ zI`uiA^a1*LV&_CKUuw+XIlSQSzX1!@vHzBYfVUUb0ruxg$L#_X`)>Mc!Z~dv-!2BX zMp~t#Lx$dOIUh)Gd?G9D-bHm&a>5)fyFU$hpMPRu??WOdtb4gHv!1E|1!poBx+}n( zK8LwT5VjP$zx9}ps-lx?aWLvAj-lk5h{Q(=G$nGDDA_iN?Vc9EN3>HOe^*eTGEV#y zVQrpuzfrn#IAAR%aF68~+-0QE($oI=zwOsgg^rEEy!*fdDL>8kN^nd1b~>XplZm6v z$V;ka;im{8Rl?u53k}NAIHVv(HhX?QCACB*YT$LC#C7!1uRmYM?D(U#O+)W)70=!m@PS{J}wWn`Qtz?0F^>z;D*rh z@^G0M@xr*mIL$Br;>@9+&Nrkwb6k%q-JQ4qq`!h%w1R|@oONePP9l1rZdi&jzpCSv z)*Bsu9;~3Ahb~v6B@CfnL(qt`v#c+>4+l~;u(I`C1@X-gj63S++MR#Y!inxtAc$s*#2%47)^*JPf zKurOz=g8TfmLHK5kv{X|mYoBp_+f583N?VQ{X-LI;XzU{a6+q-wNtvvsTa$NugNyg z2r$mHv?Q$wEkW~Ki6&JUKpQeZ>=WpH77SrUNxts>WKd5iwk}A>`d}lj8F8{ zwZG=uUkSNMh<-3)i<8SZFvfzo?vIW+?Mb*)YV#pM9e_Yl;e_R7&V22~FpA4u;zeFX zOSGH%n|=_YnYF=ze82F(e_liw?`&mxV5g;B{^3U(^B9-vveRnu6vGUNd?xD+w9eZF z)vwXBR_J*jW#ns2uAib8=DR8+=q;-h_9zl@lqbOD&92xo+GP#eg7DhS%70Ta@%m|3 zVL!uw5VI5Vl-T`B9y0*pfT3%aJRq=AKn%!04`Wy?E$AqB7V5N3OrPL?Dz5Uh4`Sg+ zZNTnE7GOJ_0`peQh@Zwxynd-+ZJx*KOD;|kuLunOGzxwi=*f@LVg!k9JAU+^;e=KJ zZaJ{^aw=M;=yuX!o9IvnQ%YTUaFSj&CUT*grq}Ap>Ue@OuiGktXTw=z;?`_!jr~UL z61YoEY|5Ou85pd%*pJD9og++KhInhiW%U_KTj*Fu95N0_Xjh>}Y#D$l&<0&R<_-^0 z$P8V=gqbh3P!Zd7+a+hXx)NPZ0vUEchZ1f!YeI1?%%;A;fsS<}Vz7{sB^Wl;wNsIb zHDKNSB-sa9tvn)*>yDo>Mh9Jo=KB{wW37s50)N@U$$lBW&qkASfcWMYxCbA9{NN(Gs?BAdLYpyAGpT!ppeN&gdZ-aea-FhMBPO8 zOzVl)5Ui|+df?Z*ET-i63F*HZjx_XZeJT%(d!^wKUm0;g5iX~8^6x%l=ZQ$<6r)Ve z^bNs9XQk#S*Tb~yoQdVZXL@{nrmUs#QH>SiD~yTw>`cc7=ag{GXF-9a6h;K$ka-cV zMu5N8ZSF1$&V~ldp9We39KLC2WB(~Y5TLS7}98jQ>&{))H^79 z6n8cWSJj90%j~nMT*H-XHBq~Mybf!?*n=^OXKeyOha{`qK4AvAMi?7gPuBNq-0?+k znNJX3R~g75oAuuDV;I|NjeS~$)rSS~fE7HpP!@4cp8UEpd6AZaSxZPYc&sXg`S}18 z1btuNp+y4$up2ohJ*Osyi)~1+gJ+;S9sfOQU9$IN1(W10nnIacT1^numy?6RSAoPY366uv)urzCx3ixHL@tmaz`tcYq!9~gk>P;zci0(V z!Jt@H?%r)4{|dirQfhlB%*ps=4o_+o%=mn^D))-m(9Rcx|2=J28dMEY_~)+4=+9RZ zGYA_&AbT>Fv4h14&w7uUaB}b3zGH}ru=G^Dt_6}MuE&r1D5P;S|A+>lF@p6IDkd?UKT-Pvu&N+sw1$t>bpd3|+L zjuMAe)Ijn13FFG@N{4#>TIl!gC!-_!i#-pjD>bHRJCN{@WT0&TZpe7zEM{zl3diYa zX;fN5Mkk?oVhK8UJPb!4DsQc?`}iqNL;G^bV*caes$F=1?W8r>*Q~daQip30bAgz3 z#E%;RH*G9hr=Ujamx=RErxbf+DoEgqRDS8=%rc|WnUO7mzVV2&iW?(gGN43Fc18ZY z>I86bQm2oM!v8JkU`QxYqads)d>B}`u!8Iw@Q>o-=s((>hi{EKh?K%q*ki)~fEnNE z3$Mqc|KgA36Pc)pcr5jqG@ktp%nrdFsCM36r`iB$D$*)>v|8lIpc)X7{XABk6!d7y zu0gml=XKsj-3lL!hUH+uU@mA9jxye`hkp@gb9=H^f{gegF<7cL01OXR6g`rZ944;l zu*SeU&TBq6;Z>pr20_&H2}tc-@3C$RGGjo^G??-m(ZI3JU>ZAYdZ$ZcR0jd2k7&PS1pT$B{IySZ6fX32TljN5?v^s^8lM zgwhV=mhU-B4@nH}*LCu|7b@YGy4YXvSOrntHS<181yy3=c@*1&Wd0)5nn?%7@6x}5 z5Es=HLZCryfZ(N@h5arSla;phLc0`M#nL>~$b0Pyc^Eqbra%sZuKzxqYS6VvVGfmV z{{iT~!o>OdoVdue#I?SF!^R%f@i)!fKN=k}S|Qgx{B*)(YFq{dIV1^F9SmYB z12;Nxy*0?^(v_r1M$nq#Sr2LKmE?>fX$~emOnsY6VUS>o3}MFcGCz-{93UW{n1=@0 zH7Nh9T;+!@Ixm73f8ukHCNA2U*KnfOQclI&I2wQ(OZ~N(qj5AP4paPCA%3%gbSMgf z0XT#5h~}is^{|R%8!y5sI66U23sb&y_Jn^xWyKa05fFO91w_g`EZFjdG(kw^GB7aF z7D03sAEd%w6PeZpHO}ckVVLm<_#y?Xvjth-b30CyGacFYvETZ+baf+MhivMr)$_YN zu#DnmbhF$N@=V=Wxo&aq00m2rTG`!;P=yfXUX1(0LwM%|Gs>DkVRsr%G3}ju3eI>u zxdXjqAJ4Z_dt7x+dLE>uNZPk%2Kb#B-c>#8_2w8!vTs0&dg7sh&DSxCejdWd5+s|K zT0UuC-<|MzgDpq`Klck1v)t$2bRuzRaE1S+HVY!*%xzl)tNEkGk|Ol~;)#EHXKHhb8uZA{YcAD*CPYX1)nQgTHtI{JUV* z)=%_Npe>*Zy4rHe^3J!ks!_Gh`ZZPbJYvx@JOv%lLY(YgGO73}rgC zyUvd>%fAgPH!;f1^BWyh{KMJXx1kefq1JI-^L;I#=fl%6 z()Rj^fvemK8XSigU)DQqBXVC6xdg|`WvPnv-)y{>!~M|opomroFdSTU}8j~_g;)N5WQ7)5EnDI-(t9WA76@wGkk@oM=jtP9YM+_ zBjD?T53)Iw<&GdIt{625346!3dLkk(9hU#Y=QheDwcE8^Hyiu5ShWfGa?`}$RSdz4 z(+w{?nUN0Awsb#C1BSq^?~`DNfk6S_3v~@WXy^sH`{92p6AZn$i6HPOShao^Yi60_ z2BDXEcOyoH+BWuZS!1cVTH& zP7VkN>$L@kg!{9Uvj4BfdY#W#s>6_ht`7(vJiAckC|!+$7d|SSujLHsoEL>Wu^47H z5?ZDkvh%6Scs2_DV#@Uqyq;qMIoz@dfMdnnsD+Ol%5ab5I%+_dIoo;^z{0zO8d~w- zhodlqou(E*2FHGp6RbnyY-Kz5g1NDm_>zFyYxQ0k;@=}U@ z;%lr!)BO3!izcO$j$jAIWkaG|Xk_L!`a4}J#eYW<68AvAU@m7-S5fz9?E$P|#I?a7 zV_Q*gPjevS`EPkm5Gk|pq@9^2s~k~-2JI7CND#tVuGNU&XfqP#D&e*VM)n8~Yhdk= zFLxokyZLA$3=cRO;{GhIZ*wYJBu2`bVp_+|$!s?YA(Zbx!EDatN1$AZK{L@Nxq>x) z+wVz-R`@iMuD!u|+>NY0z}K)X3_Y_KA5m$PgPEcG6l=lKpZ@p$+vxw7jJZxi;S3z< z>K=qFv9v1()Yr*L^XJCxJXx(mCPn;%hu^z{fg2A6vE%vQAQ+D=ZH$K^ZC7n*!023L5IO!+p7y_IG zvY56Kgh;aGwXqwGm-rWks|b={kB4aPgPb_Tq|^!(G0gl%E1RGA>yWc&j~+OS6SSGk zR>^2+A9Sgi$R6L7e4Q^6+pT)?SrsF~4{W!M7->y<);!)pTb1RvzReTiEA#}S=+!5X z*}%)2n79KKOE1CTn+=-Zhb$$k;%aF(Mo)_+gMgIzCzEWC>6@FXsI4`hyy!Of4A3q; zzf^JY$IPC04I~lv~z)eJr~@Ms6ay@ zbO)#%Od$p#B>dHOfw9F)q7A3^P{&7|JvKw=9~WEAkLiP z4a`2+_RjQW=ELd-HJ5?A<-M*VTTn7?OBio|+51+m^;$!(w@yu4;gBQAF3Eml)W3T5 z29EY3UUJ}}B>fWmS~AlKwVtMVJ)UEeeYT^tpM6o(r=~V_n%9G>?N>~pqoDf*#OauC z7KZSU!vR0TrP?2{*Gc$GxF1&*+((|~q_WDQ*RwNZYG;-jvE^B+y~+4ThY9^%b$LY9 z3}1@6#sMUgC6}SG5u}pY3akwIJBy=3U;IGc*MS8LLZ8LOSx3vyF!PryurmCT>$ZI) zK}+t+S-3FydMdHMZl8l^&Q7Q3c4V`V#LtkTI0S7fMiB5%kXmxtrYcyDzv7Z0(rSOn zDGEy5Ud#hX`VRP)k>0-dc!`@6Uus%LNa%oEH(C#LbMA`47Ou4UUQwdsdcr=Z9sr>T zPUgG&l97GeLn2LNgi0F0TlS@5^8 z-B$JF>4Y~3!z_us|KAjF9<^*Sk@JJYPyqBWZ=VB}`~7x($246-)j&Jmy>KQLySmDj z3HdzthMd64qg!F^ICcXj{f(K8;ebB@+fnb3AsUf(Y&A<>;pq!;$Jo-ZWxnZXp3u8b z*Vnz5i~H%}E#cWsGLDn>>MD(vQ(CwZ{#hP*!2#jAgo2t{S0XpM45msI^|-b*JW8^K zY=au^&rNm(w&~UBaDR;fdeC)m)f|HSNt!J?1cR8}xYFB!$eI^Tjx*L@4|3e;*bnj) z4N2LB$>V!Wf5lE#^@Ke{S0eP5-~|(_L?tlcEGm9GqM^dceW!K|B$7tzrWKppX3bN( ztJa+@mt=F;2H(eQSIgV+nwDx0N~`kW4#Xf=Gdc5N$fr%)a_`PNYkuC4?#+o(EZQ9D zca%-jj@!GAXxu@;qwPjd+Yn`|yL;_zw5@@7Uf!VGOjZ2a4DSG1TRw}xkM+6uB?OkOpF@Mu^O6V1L>8yR zrN^^#?S0Lc(H+#R{BERiPa>=;$HnVu9%M}KZnXX}>rb&CC;YD4Q_@ct9sddaL`ILK zbL5!794|>{-8$Xb>3^&!V~3c{je3;9`0M8rMS%WOR@&Z8ruK)2my`IbK4vHLr8X=Z zk`ZR!WL;_=1xV4(+=G3TJP_!|8LS7X)M-?L&8KI5#V(- z`=;sXX3a?(k8j|0zg(A$)6TmR=u(3)ikfQ3Kt*aW(t4>RyTWhdkL-{-QZt6y_T$5y zJk}Lvu!_3h@;7aXyN8R@wLSM1!=!0nUn>Pks?&v^H*OrQueM!k-Gv=m72tP}{J`Tr zddlJXV^t=PI$ap-**p!iN#_u^F<{eN+cx0Og+Y=Ng7;h#1q|jU*s{pZ_vk|w%`?eh@P_0ONsirIa39E85WN{RS89BI~KDpUPO{)+TSZb5=XQ>2jA+xZ|G zOjLAH*I#xI6l0(LPE!8-WtfC|C$d7 zU}?e;T4db_+@q3}ag{-})`1~gSgGl^r|}v!a3kQsWE=EYa<>^ch!h>Df{%X124h{_ zwO(iUHH2+Sg}IZCAEbnSv#AQqRwXz>^@ajM%T>Y?)gC5SkNv*;kKPm8(ao3q`H`~9 zGb!w<8=o`zC&-~ONA6!KF)4(Q{;10<`p^PXK|G+EWZXstFIGPy!xHE?!~e`at@m;4 zzO@V{0OX%&i&3rgSI)7y*)TV0Y|*lmo5}&7p;;rj{M390o-EZA^5<_vsKhss>+(!E zRnj#~EU7pNmSgIHyAx_kF6@9O_(NigcfU(eR54^Js?i_WlNd^r6y!fpVDt>7L0?33b@Udk&_eyqA|blGUm^{gu35_WKqrg}Yx36wt zEBG>AU#u?r(S2q49wbzu#s)OR2Bkv1S$XcEfU!Q}FpRt!y-x*d3L@yh5yjP!q<$o| z0=`)vP`Jm51+NE&LKqVxknH2_KAVYiL>9Txm~?r-=;K|ppVfBl(#q=1bsyQaNH7;M z&S3?2eN0h<@GhTl(2u7N!_h~`s79FY51?Fp@zpvt!yagH--FwGla0^icqo-vrVISg zF=+=el}!vWwlD8KL?g&4zXvCMtBu=3*AbI6>o<1UH2i!CaqsH{OG^uZeB!jX8sNfzeUQZ>ICe=(g} zt=!+9T&ng5E^<4D()&>ZSkO%2uJiJgw7;1*-MtGv(77mKp$9MKB2~$&S%-M{s@7IZg@x{I-{tQ zjTNt9-s#s<6;_~J+EjVzrSJAO%=Y`J6MMJEEdikR5r|j#(GV8C7xiamgRBVgdhOXx zxuA^lP|w8>Kp#)ODnLKT=KbTwMXUzyh3--2q?NhR zZzVT#&mS9+K~f`848}XEb<^(FkO$L|>jBtYL_&p2;m?DZN7u)NY?)s?;(|f%y_}HnNj{#_6-Q3~l#tFw2+AJF%Ft^{{RevL&kx z1Z8f;`aziObqlGVDmz+w`NZ}4z9UN|v+A(*Gtl$b4jjYsR@V44@62mj#o!&PW02-^^1`mlPrUnBYIJzVtQ_cYHc3~OIU21lcX7j$NSb2)B)5NFHHX(U9o z8Z01AbcdFjA905%RtFty9Jo1x^1ss(;p>_BUadg?7O^!MH%DtJ{mIzVwH_`1vaS>h zLQa}r?jHglciT2So%EHab7$ z(@D930*N{#d{po)L9ZCkIKz*4JP@1Q3YU0n7^50P#<6A3#;jX)7VZ~xkwV?haRc$^ zR~r(3w{|GaqPFh#PjHSJ6qU-v46s7&*hlNs|Du|LUy`u{Ud?bR))3H(5UrKUCW$ia zy6OJ}m4?yartM959f_uc)~#wpgDpMUl01_qr}%RUze zBf#q*vopePUfO|8fziWH*Ao<&gMAC(g1orAPP(?TqXyN0GAf2m&Ns=W-9cgGj~jd& z6NL_hQugs`J0o~(D7N~QEfV~Ze%~10d}8vWNwS1W`n@*bugj!QF)Fl^0O}EE3yi(+ zjPod}-!MwOCsvWMsn9oGek?vzS_((?8?)uG@n~!jRCSP-6%C}~X*{@-2~g{8(FHoM z7OE~In5*=bdB&q1@1Km&czEMV73O%#mS#AnW993W-ibrX+X$9(8K!ltnMUIUTQ=c9 z$HcbUZk0LZ9aV1N7E>%VKrzBrQCubm(%u_ecnr5*_1{uyYA_uDU7HYW=L27~2^3Hu z{B`6kxrkF1=q|3U6RX#7c%i@$uN_*?Z#fzGTV_kp)gbvimH3GIg;3l;S{Ujo72s5(M?Bn3sT|(u6bGv<)_r% zsBzdMI)`@Nv1#>Ii10#tKq6#d1TkW9zy0|3V;BNEQE~GNl$RDJ6(GV@yo5&O5uB7rx8wvruKKbam$nH+ zJVZq#A!lz~QzsqCElM5?#<`$b@{JI)s@K85sc4k(g~@NTypuFs-2Z_9zd#UKdqKrB zZHpK=MH4ah%T-3`{`A8 z%8!yF|l{(Gj*w#9bgJGXJ4Rx=6?@CAmS3S43Z@kAE_dkB3~H;zdAf} z+J5YqGbEf%az~EKb}?(5STK)#;a*>#6AL7~8O#E^azmzyU=e-&-g}i1T8O#kek-l> zfWEQj{E<)bF%$ZkIX8MXwgUnykOZ|L0qiMVA0#)q!P-hw^J#fQzE~sGAAa{hw^R@F z`mMmZEHgb#aBi3_4l|sVXkbrFAMqnF{K6o)aGa%_4TPRrhsFns45*-=c>(l>Z#tJo ztGfE6h08KzV!A0kY$s_xK9rKo2UA0Mwr?o3EkJzO7l+G|Y`(_7*|?5n^`iZ$Ixr3# z4tBIPAEdpQ4TfyHbb%tjcmz&X3Wxz9rm9M%^gNj{%BEii^u%5NM}3VU$~Bf|{l*g;8C)*c7GXqMXLm-h!&7EQEXTfm7Z zvjM}TMBYu~8UmM1Q9JU>LJe}3pcrunR=%ua;z!)06BKN1y|RrcLVx2Vbg0;2h1a}d z;JC|cuUAV!DJ6xe=Tw|!$GcXfY~JLl-aI%fo_eFwG%}poKi}p(V<|-@c0(X16^i9; zoF(yoM(j|D%O@FDYcR)c!*@tL&d`wFVX(wt1q{tCL9BfA>sBucms^ku74Y5PxwSi` zHVAVXHAipu=x*dsKzVyB8QyHw9*A5<&vqW1Db0a5!l0)wN z?WUnaBqP4EVdKe0xiHZqyhxpP8k82P*zlbdufcDFTeUPb%va2c?lR{s# zYRmE|48LN~f->)cj3wTo>J|&xc=_1`q}2yYHL&HL2>Q$2sWt1M=;cmH3SGvOg#RN@0_2)fU&j)783~2G3&K z&SNs(KZGGk@z}Nt+RPGtN@EbmI7U&rwS7R?l^=#%o7Q)wKh1O2`&=aDlp-A)B`m3? zS5rw8Gf?*9AZo6VK;zLFyvbp@e{p%?VVsJMny{+#KOM_2K69 z!oOWyN%AKqhy5hxZZLMjo7~%1PiWj*pW71Yg66*( zlZZiwmd+sj7&N%4ee6UpyS@fX_yN%#PAMtFwZmwwa|X)}-IsZOs0X1t6F1exEBn~O z0ci>5J3%X1c4n@N#;FG1Nqqi#^*@7Ar+{x;<3E?s?BpD=*!)M$>(2MSJ87S`(hEoG z`~H6h?28P)YI*+E6;xhKjlureexPN++~geQ&Tw|F*eBLScPddpV^6az5{{h74H0yz z$t_}SxA%W&SsI6(wJfpLa)>E{sLD~HL_lQYuf>Fmw>^24bgji>KPIqD4$2pZ!(MdS zu5fhWL14|CWx*tlC=K)QFYF~8>T0V^<&9ug^lvr-Lu_6f#%lH6-VoHF| zIM1A`%GRsa>Nr~m0U!iP(|Lp|#&1NI*_w{SD-L)tJ34fvgvh&mEU5-K7z-Z-QmxeX29sn;dTFv9(ev^HCpWX|>M$g(>Y)HnK@el&e< zi-!3D6a46u;{8rng%wTR#>t}|Xx=wv%FaJwfmO4uU!AiP&A}$=Z)xl6)SBGlI3SWF zsbU`N)6P-b-c!SrVnkF*XDKCk1(PKNczkRh>gU??xNG+`1)ZocMvj2^QtDBi2~hz!9^ zK$*g7t|`aA`&!2GHt@@>h1};-^cY&nE{!A7hR+t8=;gIk4jug7j3NN$JEMx*UdWEC zoWl3$Irot6k-^9JpE2~fhL30O%v^nLvE?sE-^dPFUj3U+$dLt|c>xG_u>LF2j@$B0 zp?nYNf}pH>;0X77Fq*=(3YpAK5mi_n6zJr)x?@RmK_b@v>7_545;)g7{?x?E{aI3`9g<$>brOP&tO6d$p&9+_?C6={(12g5D|_EWX46VeadXtELOIe5u?Jz4AWC^^BGU^W3oNJk+`N zIJzD;qakG|<)$tx=!*=Z-*7*CL79eSRVg@-thSE?JLPuLQ>i@>|3^O{;0kHsvr&X^ z4NFYbc!8BLZ##9>7t9!G8J9Z?JT{w6!m=bcY`BnKqNmmm7@9iB(m)s!hKw=oxBEGJ(KYw&&TF0 z0wO*dCIk56X^{#-EHJmP2;US}t(s8F-BOy)RvOhOe3cwOmZI=`8H>g)<6Jt62f711 z^eM1fx1G!lUAf~$J;A^kD;{bM6-CRRnJpBWHS@n>X8CLAkAIcJPDjW|#u>_*al$OI zIZ|e-^xiW|gR+0WUfj5}!yMPj=)x+$rqrvO`#?6+*WB+={r>{N9t$UvArMpHgumJ~yrGWboH_`-9bT6CD?Qbza9_#g`g-Xm>ex;svk0u=YXj zbgx!7G8Y4p)6Szjcj3?y@OU9{4rZ9+E*ZotVF)HEN3Qkv#kpi|+)7mW23A^%Z{Pud zeuH?QgyqHt#E-LflXipA{s3+HcQAfhkK~=in@;c+)ER8lFy}1LRQTihKbq>~ndaR5 zTF{~3vcul2BP6iCT_?>0a39=4!L0V0;VX~RT`$X>{T1I@I&gTYmHAF>@JpEpP57cJ z_-|21R94OBAlV9B%;A{T79cx~ot9_L2V)-kn1j6$y9!W{`eBhEBPpN%a7mNWc7%~0 zK2tBb`5WNoNEI3Y*^i#tOD=CF2pd0-i}J;1iNWwoyu*HsN%_;Ej|1DB0!{?%TM6+o z9I(e*1DFg>3_B^AMMpGtTUdSx21v$Z4?ABue!K(XflYzN{UzX2>c@o?$lUdqI?4Ou zba0{)c<}merh-Xkc~dBy#Z@_0xH==xK*^_n=5WjyKFg29eJf6MnHqo_FT*+9k}3s$ z*-)k#QamDOHx`Y&H*@hRf>i5CtS{nFhE$4O8OP?wGZfW_=w3zTac5}W2A1MV?Y<$z z^{I2C1prGy)E18YldpYT_aVuv$lw3ROHV}tS)M1@cSVC8+UrpNvzPcy@|=)A!#?B! zAqqbTpRnr0gE-`pp~S(8+pF+t+^`Nw<&K;nrpSWw%+1T~6Y6SzUr3!mHlV+f8%lqg zG2d7VZhe>J5g11S;oy6K2RcduV1d&U`^Mw{Dmy#{jmGo7i|*%zL9RN>Bp!-LcUVqi zmXY4n|*QHWdfL54bRE`u)L z%x_3CK6+N z2RqA;-Gn@ss$?k#$=M~gps_i|5UWsT?iqH_bjq7XlLwnkk>K6RJi#Y&Y*Ophv)Q40 zQ;HN{qlfXo%%%-6Uu@*x%~kK+OtRS`rCx(?ODdiK<8yFdy(U_#1XSx>PNkvm#^$*yPT zH6J$iGiP8^VcW3(_1O3VjlOoRBdz*sb_oY4Eo-*|;noUPvEA+y+bBSs(y|KbQPM@F zd58QCGkB2Qrad}d&kY*_sgL(%;6eASnzapw>}YSkP6~(=9Ywa;rcPR}Cv9pIjZK4u z`bj6)vS|7Xi15-)V}Jle4qC7F3m$F(XEVB&;#NGhQagGM>cOV{Dj_6jPr=VK61Yj= zu(Tsc(C#TzGJ#(KHc#)p$BT)xl)qnSNV=M)h>W>jsZTT`!-;e4oN@#eit@| zIx_;u>X4;h5TQBaRv8RvLro!aGIhoud*uDFNSx6`Q~c$s-f0qx*;JWz;Uz=;=8f?C z<8mXqXgp*z>EePSs?R!pd`Rz{KPu@ zShHB5mu6$LJM?5(cX((Oh;iCjM~CF2^EXVDH82&x0wkaVPR`a9ph`!8*nmsfP|VKs zeC$~k>2@jR>Q-e4r;XFng=duE8S7ukLD|Gc9CO|1?}soR!jH#rS9@N`awe+4xO$f_ zj2Xyu*)~1@k#SZL&#G=eguz?7i1 zftT&I(VA|ndaYMS1h8+VS@rrK3%z7yL-m>bvP2fRY2+VSUcu!waJJh3WW* z?HtSiFl(mKc``CLHqDXv-H%@#x!Y_RiW?SefBV)2L5cz>RjGK~7*Q0bs+Nl8z55MK z%TDlwTJolr))vhln~oz*BNk@%IrxR~zbq8*gTmCG>`<*0rYQVjJ;#9!&Y?g66B@MB z2MD3Sat(`a^?5yNyg(I6L zNG6vEN&;!LlScv9SoVqy^GX)he%-?N7v5#X5aJMgmWgVm@rpZ?l0({_t~-lAKfG=BKAL>%8Uu*& zpT}pxY!R$AYX{4f&0T+zafZ&eH1}wVoRQHptH*v$rG-V*=V&0TO|Walg6O z`@zm}U>P}#(%9ZBJUs31zbjW~$g28T)6S@5aKXZt<$Wy}j_{Lq)lQ2$#nh32)4z*> z1mzAk_DnB~^IK_<0CF%+geuE~HdicPMdCQh2&(@;sS!m{QJv79Js)1ib1(mAzZwk2 z-TG~bHdAbyND#{WtT#`J@gv2MtKarWp-U*nJ?;tG+M5sZzCgW#QVsPmh+uB4X&|(6 z?id`0q7kj74!{5w`*l=fe;Rt`9PHLtNaH?%QIZHE_c^q*_x5EiM%CdNzma?1Xo0?W zM}IVL>$u-wRukbBG#Qj9b7!$lA%Ps8eK`h;fo4DiDh`*T0W6^R;7z`oMA*^I-)=bc zahH+1q&(=obExT?F~7k`V%fS^Kjm0**1Wg3U7^#--BL5r;~x%cvoPL$>V0lMmjCto zI~?mVUauGdWxL}a3dBv0o!{;9#K5eEq5{>MUUffqC4VJenRI0e)F-#*`@GSD{$+XUyLtUZigAtmB{tnL?F*9XhkS_|gs83ygK z6ZHB60mel>{8Nsm2`5U;j_-wP9mv2=E3;|#lU{80a#;EuTj3KeTE+La8uDX3vhMvj zh0LuknlyLWLp83 z_16{I5ge5_qah-GW3_cx`BPp=JXsGQ+dHGMqqcs98{XAPee4*axoTb5pvrT>_moG% za-P;Lb=Jy@!@Xx$pPndbt^wXQ6A=X`sdmgtC-hEW&jUP=N>_1<4r3Nr2rs2GG zJLS-1>>L%8p$enV(~@Rga3IA1_j7)D|50BR?qGHIb`RWo35^hyP1<-0hunO>66fwU zQFvwY)$hLM4bj?U6i-J*^iMq#QOG?uF2{sE;}=g?taE6K{CJW&-Dv-0kosZ!2tq}% zAh(l# z2ssdhd%aig-k2rUKlWeIAtbcY>so&)#-CiV*r@k!SLUKI>i_Rm7DY=t2#)tbTdrqWhz#xA7@^z1~q!6MmQI%SJ|;}BEsZ{gEUTi zIg?1jLMy(MKwsygqmtgvpI^_fPtnSM<_}h$-$iOazZ~w$cs>vE72#^jLi>6$B^R)& zEku1R3hhKvd8KpN5et!iT9U6|l?V>)mB8Ha?xs+x+mUKEjubeU@7ZR12Yw^2d8g5P`&#J% zvp=@?0h%AI+*Pt9&@umeKAZeBFf*ARo6KyM;<4wBQ5xmE9v`@F6AxksnCC)}`8xe$ z5-gt2E+#kSP-V7uGM4&-_Ek}+OYC}=pe01uJ|W-G{au)oBfKGqzJZSCLo#_JZ+Yex zo_(vg+-Q}b4(qoN>3(h56guI2O_s=*=#KhD*SS&n@1$K+L$q<*xDUSl_1VN{(UTimOYH8|}2T3?aj9e?iG-STTA>QbDK<=So7 zrY@9&!u9+9nu+Dpba6Txm)+$j?6@hR0Q~QEc3m>7Ad}!*m>BJ7ZCk=wcCj-WnvXl5 z+ADTbQ934EmBdI3v5h-dnUb(G6*u;PFqC1^Ew-ApT#k7N3OPGK!j4k+?cCDDK%jI+{rUmK^ca-?!L)-t#_HC+n?29g6K3Pw#>CA0*?U$1|qYSRHC6MCwo zut1k$GwU+_hZ#rH ze6!E|e`R$=c|ztGK3+boIZOekMAR`;LkvH+~DAJ z%AOuzBdE87lXvi!#9bj@zJGAJ+tP}8`orDK*C^K)?rRSvK`DVV>Z^^7wOjw-pwV)B z48#y?bczDx3JfPn;@uLdKbXwUG#`tGRrvyy1o^}hW7$XDlC}J*SiND;P4SsO0f(rN z6!upN3VURC_WGzzB)j3*gb@45o2&3y_W(N&#kgJdZxA!+`8sh=$@<4C%Y%Kw*;MN_ zRans5Cg!f`!?cerFF;9Sn&wfC5XZ-dSId06)fR3FeP=~e{XYVniy8J(fzNfY-~ieq z+4e+|$6^wq=+v(C)2kcUGqusS<`)06eTZb&n7)RdGlZ!Ago~`OPE=;gr16F%eT26I zG@?Ue`U}VB#=|Zjq;(?*nw3}n_+`Tk)Hy8y`^+az)pl|}P=><6B!8LMTfzRbbyXgW zSxh>s8lXi_|I5>OJEn{{lno{2gNA>}8v=G8;Z?CO$Ur*nRb6``)~dT^C~3QJ^daln z>O4-VJdSRIM6W*zN-0$fPh0VQMTg7!sxOZDFK_|Y*UFQHtR_v2DlZZ=LrgZ% z83gYCn7bq`X}9vx9HW_^AKq)<5B|JVH84rRAz!7TGa`Um7$k~ERI%AE$tbO*4_&i3 z6!+l=e8h~N-6>~YQ);!)@;G6yW_oBVR4dv{6zLE}j0kq*X5y@>oPORqdX*t$lxOcm ziK<(3T6Gy7uhkTi*4LJQY>ly^1}9lxpLr=TN4tD3Yb_qtOhu}CT+tUXY=kpJ<4gchFTa%Kn7_N6}z-CWiUU_%L_a}asyTC zfC}~rc-QIXEoy*#u|)|PNv?$>KNN;8H+v?up2YBvG@ZC?6LGA85nIJ#4=~8u;wcRe zaRAo?WJB>fY`CDn#;u?j8;q{VmkNbef+OQ$$jEquYz2hdgjaQ#JO2`xPY|O>z>!#U zIWTyro?u1rpuiH9$=G=Dpx%xd3${K=)y^fZ6jTU-ykCex(#T0C9e#2X$^+|k8l#GtWFp*FwrQzEXb(}Bm-;n*a2SQvws$k7lb+rK2L4y0rUHh z`T8zEWuIjb)kmngw6y#ot+>$=F(_VukKjwEr^-6cMYIH-&Yail|!^i)^s(Q|9& zn;I}d@UsRz>^t^*mRxMmo>uZf`b7jG-4~NiwYD_*iKU(RnXZ6j@`lE+cX*pFB@%5B z8lEGV0J<#c==j+iA0BhIt!kHU#`lx`-TIMhZPZJ#n}0b32Oh zHsDnKyI5({U_~qj!B4pQuXN?FOd##T&RJRd85_dmCA|I96EvVhLd`DxVmejQ+mrw!T2h791gYra9OOm-#Wov9gx z7I`#s;ol9|NuqSBYDxJ*JtS`E2KodINJ~e@tihQN(k`lzkKO4>*nGaj}o^ zG6S#+I)|Bk%?@GM8&m|t{HZXgFLQsOsI!-eP(aa#Ue8A zM2O`Jf+a}`DNwe}qxG%Uq@a7(8Qpd6SD#jw!ae4vGzO4PwQ+7p)qp?rqte2CV7HJ; z8syu6aX|JKFVBUgX(~9}|M(#uxDt`D@@Gm$9tAVTJkgdqS*IE-=V)f{p;39Nyq;Pk z_7CCMIt?^kZK}DE{C2(qgV}AqoA~!hg61xfdEDDdLBxO5v}h5xR~&c`YK%!P4WNX* zXdp!(c7e3Fru1afc{+-yxVfR;rLELW$SMwL;@y_e>Ru3zo;A}Qent???RX>%+2PM+ zCw~Y&o5M|ypsPD^Y)*FRP4f7zsmBa`+P3Z@U9j^=O_&2C5m_m%S*~1h16kWqN z2AvRTHOz=J^zqo{kYn%h8|`+>*?YgMPnp;=Wm&sWmnA;DgBRpj3+Lz`3Npz{JCb(! zI5$aG*Od|1F=G!G>#(4LQW$a=IP_dA7DS6Sx?A1J=)4RjLfY;!UI3B480h{-PfDJ! zLzhezl@45*Uvg8=slHR>Bo48i(i(Rz6j@}+AHQ}#Tt~PsmrVM)y59Zm_)KrZV zNo@kD1Ulm*j;_{W!vtec_wd@v>$8i_6N_viZ2(Xywkh2r4UL1usQs08jLGxh(4f?t5!m}}hkg)EjI3xNMx3lT=6Qmq6BL_v58qKSys6k&{hL-J&5z^{%~V!=~KoW{|stt?Ju z@QZ~`%-JNQe8%cs(_iRR4Q{DH+nIvA4-#y|q{KRP@obXKDQYaemQ&4&NUnjTkuvVH z{RG7nphL@mI?xa`bdeJ54Hu))6SH%~NR73EgzU>_@E*Lns?ChGofXCOA*h6Hcxd&p zyn?l#ntn*s)x9XUNX~o3+$aBrmsV%fGoQ7#c^hTH$}}`;2--Z6_)6X#*SC5w`Z0lk zzIk{XFfPXQ^EzakI*l*p^R*q-BdY;4rB2^-P@uik=3a3|z-54T1M}!{!uiagvUgRf z+G}(%1srR;k1l{ooO{u?x+-g|8(JZ|$uj=fz$(=lJe#dX4LWMl4W~`DR4X_JVOn77 zlUA@0&j5S@#QNjt||e)o=5 zyP12lS#SRfSG!1R;QzP==hDbCW1cI3l)4^60%iG(fTYx9T(hXuvVSw61r%j9;ol)4 zEbi<`LAXv1Mo>%AUYo4&2nKV5iA-~>XQlkue!fQas!yF{?JuO~3UX&u&#eprW;b>P zWbM$IBj8NGv*W0v;cwHQHrJS#h+s{|*luGg^&bL%aYa1Pw6(35GWB_0K?2qBZwBQq zZ#2PBk(Jir8uuU>yIY$ve-lXGiyrW`bdd(`iQ3p?niVu?@VnRtDzhwxh9>Qh5Hk9Y z0tn#wykvOTX$|Q%i~GJv(~@u%z2SA`c>NZ}N$>R!b|sT@)W)TGh#}D__y1AwiVU}v zntT9?gRumd5U{LZzN^5k0gs+Cul4es@Iqiai#%b37)6gYuDk^4}vz0UPl_+!; zkoxywVv!RxDGdq*aWoM`(~M>#LY770U#`LMnxHXWn&ePES3YZqFdZ5 zzA)%B@h3J%t>A)m(Rqs@-*7ZNl23&Ul($*`PTsen#15(=GRCryG(ioYqaM5v$W3_5 zF%_)ykTcep>iex@%1oY1VW}PTv;~VDO#BLoBtuI~c0YptF7nn}=DH&7;0koc$^luG z#+3%)@o5G+cBnbS&qX9;{CBv$MhzjnVYgaTg;ip~-Aq38)c=F+hH_cYy zpN_iR6VOBez<*3u4n&{0#t$% zY-lI?9_#$(;vHww1=KZ3?%WQ(!JkG|EuFT$D2=ZeOqwojSBaOFXkqC4W%iyARzmyq z`IJIu=dwLDUJE`CFNZ~Z5JDT5MNBmhqseVA?SO&H`;tzV)?ra)AArU&n<~2O%tCB zt9&`p<_O>4Y7o$sFcobF27m34`Ai~55j(n8KT}9FVc}PC?>#&CXYRWA7$ho7P_kBu z`>=ZNVlgzVSvC^D8|cvJ3`|QtoeI8q&PX+!8->i7#Zqc?R${cw9W7lqFK?Q-*G8}p z_ccu@rB=rA6Cc}`spH1PYO5CEo6N~NwWK!R)4iv3OCl(Su{R4*w%@Pms^hKtvI*-H znDT^&jw?1&V#_o@m|&Wt469!#uK6(se_p4g7?kw7J4F2>Cir-Y_39V^a1}H+`X44C z99?(1&%Z6S*ku@2KvaCkXK`2C(&!b!U(j;)y=Z6v2Tb&wTYKPIr6dBFKUZ7Ee?#Lw zzv!R2%W?KRk{ZH)I~obsJ8+%oBz04O?fO_QV}DC&g@+0U67J8Jjt2G8G{URO`Wr#f z_`av{c*!dcaE||-S9s&LgtfDpgB(jTBDV~Fh2feFcB1fcFOzga@tqQ zdhRNAFX0el4KF6epy_3)y4Df^BC~gmY0EB1qAHKn zGxN%}^IlZ8<;+#eB6ZPPizFjc^GvWtxf7eo16<$el*0_}l z9xRXJE;FdiUodX(IPN@<=79ZI>}1gmMMvUHF_mBot(NRr1}b_i3RGa$cnzqpOy{(4 z33RG@W?NnV=%S>ut1^-A+k1^r`PI1CD>=;`3fahxrD^X^YgV>Pp2TBTF};%H~*z1 zbAlGj+k2VU1Xjx@8G=Y zVFG<;84Kf>hQ1o^=bnd)*^3yNC~}9A<)hD!upbGF#JDE#*01Ay2nfI%^?)ler!SicwZ1dtf-N#4%YIpM+&-N%8ln~!R@4!iBeNj;T zd`Fb$bMlij-XXclzSK|qXz1~OC~;(LpkY1Pvkraj7$xuFYapuLF|$m9 z`sJ_XqG&K>?6)(1IpOC{3S&+hI>Azj&SmElY+{wu3+p@lX@*yPDICQGT;*bwq#e{2 zpX5+Bq~OcKHi)>6Nv2CD40Gp;sXDtj+O1WZ8Kk=SbxyryI)dYx6wU5U#|>KmHgkfm zn-x(<5rQqfRMqdG>_XSaP5jNaHws>?IAKd(4qtSUB2Z6-`?U+dedq1-Rz5aSUJK(^*xb=~-M|5Wqhsex|V`NBjiY-aQ}ZC<&PJOD*x5p$7Rdq2#K-I7KQ{ zf(%R-NPSBJbZIC+6-QuOhZN7v+@(ghc0Ihy9vO0?b@2<9uNJOf7(?Ofzfd;pOlnxn z_OT8e$AK|$O~iWK)!<%Ndf+?InAcH{MBZbg=eMNE+$DpO$=bGSo?m*_vy`8C_I7;W zn(WEpf&?&X&}I`^lj3lDyMr5x8YX|E?DPHgLbZ?hfWLO%C_W%cGaJaICD;t z0eLozx?P(6kO$Z_B!w^qx7qiw^sV&eH0|A_^MwS)3%D|dQfH=Y>BsZinuB$_n#|0V z@>x6Te5lxu!~FS6re{46#7yDL0U(}!j${fGbplgG`O(O`rBP{r3b*Q4j3fh)zU|9a z5dZ0{13FE1yZa&)`L-3_NTY$KMV9CYpiC0*XrYcpb06Ed`(ODpU5pwOPy$LQEv{#d#a zE7x4bG%D%9jdohn!oQiUi^xE&02OL|(Ytz1-2Mf1wdzn;$@clc!z3|+Vs;hZ_=Uu0 z{GZ8mekL!f06H*NdWqrM^k!1>oxsz>CNnc1xH0-7>@w^GnC#R7q@L0gPv`ixePaiuaq1 zLMLOI`%uh&bwVQqqjHWSr5cYAFXD445aE|`U(M7QU>z{V0AFxfqH)(?!o9$EX@3jU zLYCD|f+}

YD|q-orq1k1D>lV6vz29PZ;?Ea>hfnBpL|l1|@z@&56FZ#F1@GEWm` z2POn#rFPi7g54B3zXIx+iF>^A-eoJ}9$rPM$G`!E;d36+|nKwMqpk$I@^FuWi)dRzE&y+t1?%`+#R3`2DW> zAS5*4KqagwSp*^mb)urmy` z^RJ^zYgZpb8_jE_a(LkWA}X$;oB?~(kSQM7VQI?0@~0Ir(EE{9+1jNL=P8;3d91y)K{{8qix^Ju_{ z&NqMCXh}*m^h3BZ1p#fV8klFAB)mg&7npu;tU1LfN&63qJr%k(UM7NbPG_07qG5sqN%+V$T0Hwo|8EwR=YLfIQ+Or1gK8B*rPFksZes+2I+?dj; zi-nWS0AtkM(vhaE(Tw*6-URS)^YSB7qZr7|H~-Ub&Al>muyGV=Z5{HTVq?Nc|^Zr0DnEVzB{^vzm&4@iqFUh3;pcoWn$(at=*K>gyZF39%R3#Ss|M^L;f} zQQ1oa>1OTGY%9p9$$8yhK+Wd91ORA+=K_AJ)ua)liWqAoDauSU;&-_F!`4Qf=?myn zGB&K)c8|aRE*~shAj2+dqe4nn81s``NWd%Up?-B9ggcX~`I#~`xlFIH?IenjReIVx z>e~|#2>k{?bDAN4s}Zqnlyc{d2vK%qAIl{8?FQ0}8tnUL&;X=RRY9B_*=18ye2!AwU60getr4N)7=n zVL}m0yKO9-dp{GDR$_bdz_It zUfV`0qvt|JN};8)N?EtOdV44`bwAhYU{W25723rXhxA_-QU%Jxg!AG7-e44oGnae* z2vv(3u|dz6yGgR5F$ZsBdL>W~?=)|n3ns+#)j2L%0)UD)_S^EgvAW3!EOvsNN-y35 z1pp)M$*1VqeKS(>aDXSog<*XyAz{MtGG5VH2K7a9sa4Z=GYt_$6#k~tiZ)wCMEECS zLOthYe7z(<6duesZP3`4Q6SX6!5^`~Vk^yj9$Zo!Ull88W|ckpp7gpnNPA1W7(*wf z!TlbeNFrkf`{G+;C_@3l98O}~iLAZ%7Kh2=V?*sAe0=c)YJC#zutsl`9N3n}E%W6uxXbW7^mTrM!I7woYhecV*$~SfM0->}(7- zZU#s>y_lKxq)i@pvtVhpV0ih`DI#6nk35~|R>N4-F#E+2;`s~mq{a@gwPVHCaBK?P z${IIYY}!~z;4Ultj7Tgzr!5r_CNm)Ft;CFP9!0rO2S%}Yn zh*JXS>@93;+KY*Co5^T)l+mma(Yy9OXJFKZrS7GRnqwj}F~F#m#~F;AP#Vb(#q_eR z0Bsuly3Vfr3ed{(7+4Cuvc58PrNYG{JJV-x?oCm8ymrlBk%2FOt9v*JH5rM{RB!HS z7vvz-Yvb%dJ&3{v7+V>OAE(}59O;Z*^(6}mac`sFal=NN5qV)i*nIk)u&la9HI1vb z4gDL9t2qRZl@0FtAPc6<>I|nURxdG}%kU741qH?#>x8?0wZ;vBA8HHRFyKfNBO2rd z)L$lW-frb~f3zCE)H;3P8RinZ&!A3q_>WA9vxKyrDKNZT`f4IiVr- zhqAmMsCIAeR%q@W$jhKm37C>?oUe+86(8*E$L&~6b0BTicA&5G+&hzO1=p_Yji62y z5YM*pkQQ&%tdH)XY_E*!EKOGY+1F}w=`b}1;rFDh^HBcUR;^AI4E2uSJ*CyViGYD5 z>yHF}q$cz8)5^rZIBQBy)05Jr8L--qA z{2(dF-|n4;G*E+;l7Xfv%VQAjrZ^)`t}*L*_NTDZI!BqO?etP_)Xh&PPaR0WC60fo zw927*r#QP_MG9iIX~+lFb1rdR#NhkXm(TiqPZ0%Pbym}&(MH(n=Hq_2@Db{e+TVTr zAPYlMziUQUV=^vJa#4lr)H$UrzfEe}=W} zdn`Lzw|&B&b`uJnDN&f6wmP2mdFywdF0QE_h4ClKT};{;Sa_RJi^4RN8&+{97q7~( zaznI9CBUG)L_T5FEqUp&(vV?hC<6vL+hlKt1ga&o5Ve%D$=Oj(rr#HABfwm?>*VX6 zTIUAe_yKgIMgkyF1J%yHurcnMC~}mg!iKU*0=ioKId}SCC>h3c08>yppyi z8BTjqTQ$AtJ=OV_k0DW>r}b7c!XdN^kNM}3@*rz@Wm(8?MsH6p**NmP3l6jBgXvU6 zTtH?JfZbh`Az-YYI#mr^3z5F@Fn~z-ocj}$PCq07S92tVnL(_-$# zGP&B^xK^l)XNoRQi=n9rQOn7)G+ZsV*BGJKKFlzUJF>og7qf{hpgkEJYSQCYTP>O zPJ40^6dP)sD~vqmr1$WwVA7Y&-Eiv#&PAPUcPQT0DhwTjk;nHrzE_7gc-sIV(tE(w zgrIcaQWe(5J=Q?;-aji{vdY3A^<1+LN+BKwr}UrM=6ufxy8yaSHaF z#5^th-A($C)>%@WgwE-)gyli>fyDbfe!fxTjhCC@%eKotl7%NMi1$6DFVd}6qrjPM zg{mj4P~#xGNyQAe1XvChLhaVOnL^AQ);U?QDm$u^3=U2b?($Odw+FPQQvV59vR-Y*l6X25LQk= z4SAXTMwxF~<>X-7%{$YgsEY*oI(p`M2{}kKF#L)sv3B;;l*q2QQNsG}zpEO0{IKl8 zha_JI+DjqmNa7p3kn5A4#bDtN1uCZ@qI$3vS8efD>e7pg* za*I|tvy>p0su9vlbWDy8vKm_T-!P%edIIA68L|fPk8vTO0<7_)^TA{UnJmBAhaK@U ztJA=~z9(=b;~35`Y#h96m2Ei~F?{fG-O(y~d0N|($${(eLw*2C~OZl z#_WEiRZrw!q9q~2f>x(p)o=Wbv%3Qr>RaHfUs9l17fDcBLutlMCYKOj6j4ioDD|iM zE;ZyBTG^huP59%4&(rdtGKe1z4M#o+uJWl%1&ynJ;p}(HxXh!UP>ay#XD;I-l-19z zeQp1mh3xOH&b`)ug<^3mT#KxSVgX2<+Xy~e0JoxM-u`J!2tcvHl-FUw_FbsMZUM`n za2>M&gDS9dUsviYBcTcc017N$6D}Iuuot;n8yA9`%bOdoJyR_{YBa;{cx{h~ZcJzJ8U#;n=s zDF*$*S(N=Y=Sh>wP8uPeb4>$&k%Wy+8J_MDH&7ef>A$vdX{#_%ObN;fns(insDH zw+>P!4LC8-wy6j6Fjt-?LV96j zTW1P8ha1K5Se%TU03dy}zgZ&AeABCX2WnQ59bKf;S%HF5swG7<(`Z=EKvdseJ%&!m zpwYnQufGnpxxUmY3-o$y4lvBSw%vJF3gQ&SPC-OJxntl09S>a0YIyLOG0Wmb`y2T5 z6+ym(VqJeHqP2{r*WSeY{|t%if^k=1n8mG#8`tU1hHYD3i&LJ^%hz&pXBG0n$Wtze==taf=N=1z&>TNXDHE1hCd4AS??lBdPFkO z*#sLX_p}_U-7t()y2L;JarmIp_wVF?6Xxv3Ca+(Be1!NYY{4 zJ%P&+s-%$&ogRajipf0)8fj6B)yOv>cG>>KHNYTZXLl8{1|Zo2=}ZD=3* zd}nh(cCBVgasn~us!EqIFCMC*gSxE1j&3EG9#GMnMC3}HE!Q#i*%G91YlZ)~=%Fskg@eq8G5J|15LoNf z@664C4MN2gcKQ~DRh0P|d`=U{;&lH~>;FF_y6+AW{FRF?KG?Ml8a4bjIDgwwDBF-t36LK5Bit%O z4ft8{B9`RBRGRh3EZ(vmwD9xRAIj62^<8;*I1BvXc9Nk{^D!Vt5zu$+D;fs+nc5~( z4M>mcvoV70VlqYlLvFLTLM$yPrunX`)gMDdoU@Qkg;!8?8eeaS;?SaMf1?1Lrq63W99cY!Vp z>1rlyA-WD;(9&R*abwDPLO8gx;GJExNG7jo-XQf7l_ozEgt$CJroaXfl>%pg#0;Kf zbfpI#1_o{`5|ZTcszD>5YZ#Z6#+V6WykVUJE6kw+4z3AQGnKo2jfM&ymt~iDrimL6 zO#0|%1&6+!>+;C!kw;(elS1IFK>iYJ^4dVv8!QEIL@fbGoUVp1;Y5 zC%=u?b9HHU9oz7_2EG$8Q)ycRC&@}H<s~ zQ0_J3)mbT5NkmjAcD7h{fy_iRIFb$p;Xa^`A3?zxv?%?YMp(XQmD7Wn0@L_n>WQD; zb105$m%?njz7vfHVx=->c$3RYH;pi<)8uoP7WSOeJKgVy9c`UCg1yoaT>pgmhNIpo zBF<7hg7Q5082CMHp*12|TG%)w?R1x&ccrI(Sy(ZC74NXtps;y1Mb?py;&d>zzMc*) zq}1z~Z&9HIYT97P-y1H{9*I~tY^f}9G2!!=kK>VU11^Ipx|5WX!U|!qZU9>OPn&u@ z9nFt5*s3twZ#wBa&@E)q51!I=>QFmfj*o_jg1|bLX}@T2|6ANICur;Wwo>Rjn z*t3x>r@G~!CZ??=QpZyh3`f$uv^S- zJ#wt!zJVS_U)v4Vrzlq6_g3w5DIjQ$EZ)obJPG`C$gj~424I+*xPHu?1dd_nf9+Q< zNaZ>hv8;6q*NKF~Z!gv$sHbT1HEJb`El{$UKy3l)s{qYDP22JQs zsiIS!!N^tXKA-(4)cac{SjYahGWXh~$@1X&_$fG>SgRd@x|g?2CB;%wJ@*YK)?jZ1 zD~M?xmyyiYYhumEt2;Hy;o}G+eH4~TOKqXyo&-PZjg*9jWE#D=<@`&8v&Bq ztVxvnRP*wIccHG?lM9M5JSI0~onw)Cx5~64V8~&@ee!%Ev9%i4!Yq5ucpP$&v)A!_ ziy-ZQIkP&_y$Zkync+Ew{>sthdq78U83k2G3wW!&cGof73(zI=eAhiL#VIGh ze4se*Wuqnbf#N3F8hvR1aqIqWmfYDLP-}U*Ow1u*xZ(}p{^loBlmeFDs4c0!mp7607 z2OJ*yb%R+K$!`5Hut`zPQMh2Q7V^)u+U8G$v+G4w(fCs>aJq?{t6nA0Qn^acElOa=NOd1Bxd7WV#)6S=@DVyT=$Ob_}B#alWQ>VP$;gkD?57bV>0 zc{p6d7|7R{TxOU**3l7%niYuq{@$-v!3qSzID~y{T$}BGR6sqJu*;e6U{;l12>fg! z%{3#}OxZK3k5cn6E!<^naC~=fFRIoAq(APE7 zHf)At~H zrP{u($(CI-3ZVLi=w2UeC|{0n`FIG`elRZ3l?j*BC4dDc9@)VgkCvLdt`PVHo#!~& z$&)@u0SpAxc?S6DQ73LiY#))Sq ztO2fNE2YtcE-8RjcxHQ%e{wAM7LfwWEXetn*A!f8R7IKa4-r8}iKG?U3Vqb|e|Bvp z$}RK>EAsTYpxfqU>{X4?3>`zl+W%12I=E+3dhUAk?TvXopzV@uBj*ZlF`nNh4Mc`K zq$9<^% z$D%zs2XAH_qr`lNZ#049j!?f#(mkZD11%glX*&N}j7$QL8p9>slBDerR**bbh%G>* ztoS+0995YTQ%(%eF(EiFV>*AmB<^lkqF^Sc=8wa{QfasZf;|_r3k^R=V7p4iN0VKA zL=dDRLOS2hrpQH#hL78D1f1Z(Z;_ z?V8t|Su%=nisDB%!0G&&0RKM#z!jpXn0Z{i3sxD4g&O4XLvG%aj5fNY9=TkV;|9OZn`qa3-lhVD_NFn%G=>wv?P0 z%pyHz*Ea*`hXs6m!mH;fJO$1VUihz0gK=Zm(E4Fp9!jJwJ6g$YmTLuV%jRl6q?SHv z;NXVKS##W}k3IFp@~CzVk)T(ib=}hr*!zZH_yjFNby9{>lmPJAXtIaZXBbS%xKnr& zz7xYQotU9TFBK`rxO+xcZ_=ILa>;>@LBAo&13YV5|cuW+6;ha zB?uPFmp*d!Mm#-nw28AvYg^GL>bgrGc5BE{W+b1ubJW{wx}d_sHM7pWD_*5S%}Z!k zaeu`jmk=b7^*=-VY!0fZbI2HBJ_vwF!ZTC=}U5j@&Q+-fdXJ?vypSB9`|7KNFYY?RB)J7nEP z8^@>{!mh6^;)N8+&c53;zG96hwnBQr%}`pDs;+_}qErC9{f1gI<=>@Sa5m&~%xllP zTjnH_P}hA+>LzzjeF*Z5bGl$K9PD0nWw^Wmq#iMqjAeh>58d|{^*}SIgm9@lf&>59 zt}n_!piSTQvo@k*B#O2Vmr}@@qOmC3FO2px*!vWnWwE@x_32oo9-l7v#Zm;;wA=bW zht@w9K`c(}?CdJmwk8O>EsNvN3$53PD>v`eq)K8E{ndk3y8048t%#!xM)h#7c)?%IEk|L=D{#X6c#?m?g0fI%j>EB^ zG^)=(0(Zz36MWABV{7jD@fNd!{e^_cJj?)%p_Qbm-y1Au>PG*sF6 z7qKkbr>A12Wn)Cm@-x<_r8TVsGP>U4dj;ORhOLVgm=!O??oPwQ;Z*b0L8W<$E5IE= zheQL4F+=NsCHfz_! zUuek@+?3C_pM{V;fV+aX`{=I5YBXxZ8DgLx@uLbVK#cTJ zy+@?27gefG7UnWf0i)QC!~WLzWw|2Gq?3A475ObQQj&ez2%H&oRBN`4sFFjq)v~Fr zp(nYRqYr^Exh|{RcKbF2*&Izqec5-V)yeMI;OmK8(8NRd!SPicmCJfV9+yygLV;^1LuZkKs$h|&4qyLL)( z1g6M#DHGAHvNvkp7#4{33%gItROHB;5H;`I!@)ue-Xe7gY(7mjmlk|Wwl9RG#+d#!=Xo~>q)OI?bQ1v#5Zf|HDZRDMPN6p2@nz}41QDOJZ2tQ%>IVG;vB3K3 zXzIA`v=Gm=6g`M>63`i> z0G13B$-4PNL9UQL^@&Olj*C`Y`=dePyCqKICO+mn=*c!y#<)S6lR>yUktQCeP?+E2vKkTjx+rwLdB% z{_Z_#2)Cpl7s5IoS)OH+=d0D~F;kX{nUJ}GkQr;^+(qJ{-*Q!1@axA)Dp;f^-2ig( z`2qmE&4LptzsCG0hRS|-2iAwMyiIx9)GOy&cH<1-MEEv@Au5t3l!4(!lj>d;v-DVCZ3!M%>#~upH|OSLMru#7J+l@e6fl*24(0H0f8kyFm>j2|xZjz)Zuy0jpksyt zJMPN5DIoVrSH_TM_ys?xP?NA=xCn3hL2ZB;MD{rA5EI|`b2&)k=p`sN99eoes1Uv03qu<9Ch7 zF2&2~cGp{;@hIC@X@kx>NyNR%YsW^54ycmX%AIJ~Md*dYVx^=~Ij{fUXeBhVJ8I9l zxo8w*d4fiC2HdCdKVdsQNpI@R09}g}dl@xe)9;rZst3a_z)~~f=L+spEUSENHK!Q zmR(*wSMv00>h9p1Y?MV0kGu)3@;{CE>zG8^(RJ+Xp`77Cw+&~31)V8UogCmVuw{kX zjk7;Vas~>VXfppkRg1xOPbl6&(J&E&m`%B7P@PEnDI2L)hkutQbr=d|V4zY**mmN6 z2UZz^^LsKp42=%|ON$BZ>oz__ogmS|kIquM&D6BdOHF499fO?U#C&`rssFWD1B#_> z27u1b&UB{SV2T!~?nb4n6S`X9@nID0}NHT zNPy@^bHPB0M#QJ2L(YelYKnUZOW+#uohalKZ*1#$4wKAMZRKDKd~?Gj-_PqwM9O(g zhnCGsP|wfb0<@la7ViQu-FDlWJgT=$D;DH|U_tNum}@q&p{wZ!4+OoP2nhQg!><^; z;Z$MTgK~5o;~At*+nTUsokkA!$Ll(A7wD0bmw#q}O9OOaVJ-x=!zvz#Hq4l7OrE6r z3poio0p8DibB~$6M-e*?eX<}W_`wScoj1A5Ug-X6A&pDm9!*iPim+(wj4*`%2GY9Qh3LHt*TgNV!X!~i%*J8a973(v*AyJDV7h6#&Q(ULPoMT!CY05i>5B<(-_WfM z?8wUcE#7Hg5L&0KPKQLt$N|8^|9M#v?rmoI<8soWOtR)9>dmWIj^9i<{NoUEGQ8M+ zSWJFXxFgl{sPyr50Y+hOvyFBDh&X%6W@$Q0AEV`DN`QwELklu_&1N(*0Q8QhIb5Wl zaV9c~x7`!$qSJ3nnuUmvuV!7ss`0|Sa{Ta}Uiq!pZhL*+ASx=&@CFXYXb1uqEh4u6 z-CKW%X-{aN-yTT{x2zUopWoU=7dL@sEuJ>+bLByN-d}UDH^h6vXc3|ScIYET0JBiT z<9&?HF9z21zS;8Y+ZI8Be#+%T98kb#=O|8dzt)R(SWWoD~|pynF3TRoh?Q zc9&=NpZ1ZuWHXYAiK$`m$0YvS8MZ8#k|ReY(0=S+9ixP{+`Sp+z?Dg1foxc6pT$4E zTODaJ9r;H_t0 zEsh!=rKtBxj)c)DeFk7)t)87|+W>!8(+S)M)tXO&Mx!twP`ArPa7cIT`j4?XLtTVO zq3^q8NAw4#FcPD={nm&V}igc-$6gOXqGBQA6bJSFyQ(-hj0J?*Xg$sHw z>{ta(+L4_;SQ`sxlkxEm!1;~?K9);pPZeHzl%Nu|DujW~whS`JTcX7RaxgU0n{!-3 zn3<(CdeB+C{NNq_!z(39{XT&a@zG}8F3W+BQzD9BXjy% z|MH+@TwSorUuGh6Qf#f?>S}?v!-(=kcb_E7 z$O6g4aGd3FeDlSLdBk=EnB^kSM`prF6iaHwIo|e>tAhU|N=>N%H8`3fJ3p}x9jK|ghaL5M3v7@`4hL^ zY8>w{t17}8c*(Sp>5Lt)XRu8+i2cF9)`?2y;<7;=O8yTG_>f5)x(`aP-Fv_uB# zOkwg+E7?PHtitQbjU=r=A7*GR#q&yPk%^7q`JQ~L!2FA^&My*Yz5akOd=&bw`dt?b zo6>Cm*O2R8-J-&mtClku7FM8mvR$#MbeULdXNGssN?k4E}Rv^kbX$jF5W0HIY6 z$j9F$6SG2#j$tMP^>|Xzc$ee29VP{1hfMz}yLCtEfMWzf0iOM%3+?f}UK>p}{T>}7 z5hd71s-3+nMSDe7`oQQBNV%?&>klRwOlL-C;qllT(o8#jX>Jpf5ht6KLyW$QC==yt z`zB=4^G-X^5y;Y5Y}00NLEXt#tm#(Mie&6$coJ$peE^GNbGCUA*Xn^Y<#`v-(07sC-B%vFw1#*b`Pq$ z4!Xwk)`c*<$D}afGs>Lmb3ggPZ171g*6&-ZhXXR6<0qpwLrRj|=^7VX{y>gyf7;wr3 zc@S0A@B8#(V02GwN@P7uhIcr{ZBi6m;)dh&Pp%AkI=8jKr6Bez+t=w3RYweIGs??Z z#v@^pVRL`!bQGWF)Kq&g<8k?3`09OVM}iM)brriD0QR1vdNXrz2*qn8wcD)uW48O0 z$y+~&SV|IA*Z%x{2BTtW#N!6N^|9%2786Qv>T&755r`woA}JPF^pWhjmt>^RP7CpU zrwxSIyB8tWgpa{q3A8?18X0cCM)v+6KCt3KLUGl!Q+TrttxmgN9p5WNFdQ&*S--V&_?R`r~WSOUQUHZ!$6fI3Fs2~9_k*I z7kOYW)14G?1bX~%Msdn7|;pC&KgS;J8@RG4g6$kY(SpXSw) z7}N^EV|BxdH1`1{hV5F3X%10P zvnG8Ih|7HQpa_^Vbv7au&Z#Z?>{0jZ7s^^!R+X47f8_ROol~S6iCPBLi9q8l;zk;# z_lfLf*hT5*h%fb9>ua1@y9GKos)E|(inR_$WLa}@n^P!fd@VbHJFoM}}S3Vbx)c=osgBgHRNx^EfrA;U#!iM?thHE73g+!^*owX@Dhui) z1X4XHT5YIP&%8$sX(E&{(1MtNRtbGa>`AD}>;5J9m9~q=1vlGs4q8 zi9FVIB-Xi|PT-wKeOt)~lVFB)at_QEMAre&^c}!H8Z<(8;^l4aD3$S?#}SXbT))XJ z8ZAoSnQimcEMhyD#2uiQyhA&-K$-Vq?vN5)?}CZldlFTq&?$acBC#|(?5QIxya5mg*^+rC80$}W@uaN<#VkfXS-Fg%^A&m)6n{|f6!#Fwj zky^0)qp}Y{#1M0yZeOngU=v|BIu97%M@Byt29d%CaWooF(?~QLtld!{4USKjhs`zf zNsxGfp2Ytm?bSr*i9=b|7*ODa4%~|!e24LZ{jHM1Wp^9<7$1{V2;+Il4z0h3nMr?N z^q*^(hrZ9c!I%RwNVqtR?HU(ItRd-t`2(ZTw9$*Up^jAXA4UqJTbQAyD8;Y2F(6y2 zDrh-37RLB2J9L?EPYWXLM$;YCof-JU1NqdTp<(P>Q=_VZOG+>v6!lNwyql!v3S|f< z(WyopM^}%;0FGuZt!8keTOa$25?%78`S7Y}Bb2h{vdGdS6nV($`YD}HWYC}1W$4t> zlDMgMPg2hC|0B14jTGBDRmC!!P%tSxi8r}`R#ak$+FQkI>ajOLfJ!5lqPX5+Kidn= zV9Q@g3|EkcKW)aWwfygC>h35ZpYkW-n!ZF%HUcN`Bcp1NJJ*p7k8B{a8UGp_SO zm2|XMlEf(&BtMrTUf%DqJ(p2z-*IbxCu1K{cD?Lzjo`vHa@bi3_;aD$>?okLaEA`Y zg+Q3$$v6D#y5TN6A@*U3E!o|VM3{kp`jeJ1mLnX(dS*YX-tNXg+1$m;iJ4|InYcLP zcGz&4yn7q$cZ5zr&mDNiyPNmU5dqUvQ~t%>gqMxOR?sEp2H5jztnnsJOL`cG?! zO~hwHD2lxsbJ}p#X8q^a6qFY;DQ3(X7B=`QVC7^D#Lg7tQs?di7l?@luDqeAvdxXW z)6oltftXz%Gw$<4g=D3C%0TauvxzOqkb;?`Ei>9L!b01_PMKl_6G+gyx!^e37*NNn z{(=UYlMB=mR#uEVDpsIRVo^%j*etAr%aznIAeQTpLfUGFH0xCQ@3ya4k zWU_@*;7}Z>bOR$c}#)Gy0P(dchwwr(@-)QfIKB+^N;8&6BXGcNF34RuC+iH& z-Oq3+4RWL5R56rz_aK;q^#`=|tE@VJRmiwZat%ySnSj{4Yt~l=?tS8jz^?>F#@;mA zTuh~0wn7v_jxRb#aQxFx!qh6RLsH~x7$Ybsy7T4lu6W|NrecEQ96cNiucTq~Kt&Jr z_r^@Dr~R!r4W^`%o(T^9AO^IO#=NX^bI6Za zKXX4CC@DlFUJ)}I>!jV^s!ql5k%upz#~je-)&v_ZOud>+`_4W(BSh2H;ffe!y4nw* zgr(_m_pIK^U~mQ^+62_#O&vJH?%GIZN!IZdipuCJqTZkYF}tLMp5t>)G>FHmJw#2r zx6D12f`M7Bkz=h{_~%^tf%$k#R8R-j*Gt-On8M0i#MT05jf|3)2c1vI@Pjn0d%K|F zvQOI+kW%O=S{mXSNu*s0cKPHnX6Obt#B^ya+dUeTYWEhvU{EWjb5TV zcqK|Wr$!JZPfS470hV`$IKHNgJwqJzgThJaibIcF%%dhq&W4#bwZt(<(rpv=(pZdaD5sE!ZaFkJ$Fs{nWL;SSkV ztwyVAP#QBcl|S5tR*|7U^&=Y0$8_TTOB1WTw$KHE`w5!KZ`yY|4FS{qY9&iQAgA~D zsI4uoX$~r>0*oJDhx#OWA#b-I$`UhdGcG9D&SZBjXs5a!ahyEvR$t#IH{2s5-jSg8 z>|s4j45AFhRWZ%p5ecMHaC^>oX1&2l2{vf&x~gXaa|^uchDyJ!<~4MmLPm+uqfF;u z>X`BNf2yY{hGV`Nq7AI`VoX5{4MPUV=nNnPCsrBuL^KgvtO zC_h$kdlQPd;S!zhgGGH%g9OOD=jTCFDGRU0O75SPUwQ*(1udXn77>|~$jA!XdkV1} z|4zG<`57OuX(kU&jlSM>w4lt+HP2(v_%fxix?Q(H9{Jb9rQXSN4`>U?27RQCRIoyLBi~$&z2-5 znClv_!8HVS&tET^_qEcb0JW`ExcTl?y6h?&^Y>54X{cAYE%m<4kWbv3^1)@5(NDg~ z(H+}`JR%bQ1cQ=L)4A2z3TW1{F!UUUcw@~wVU9*fZusq=MXQXor=L^gCD7n`tKS>f zeDxt7D<+<86J z)J%Im%{Mp|d0-({xZTAnD!*X&i7e#^!TFYnx&X&QGv(2nEptKJncZg9C0LN7m^yuw zBaVNJty%?+HnAjXkcK)JHeegg;v6Pz#|#PEB7}$8}|rS zAOti;obsbzL3akOz%|BW3#wR_aHfEu`E!NjadH>J`jCoge;d1Q=&RTM8{g`ypHOw1 zzGC!Oa$os7DC+4$n*MpfWmUs_BxXC?Yt5so@@1;Q(tOA1X{`s!T1P6_ViY}xUc)DG zosyvlDz-|1L?zx^`DUAaS^%tJ*Rv&EL?7qei#TOB(QfANQ^q(=qLUv;RQiwmeJ?$8 zdcDb?tgIALQD@fO4H$WcaZCS*xG>jgHhG@7=t1F)|FO7f*j(tVsySCr|M-E`l4nQb zF{~#|`dP(yu_6fCYKbFclU~^rAQa?Urd5D&ee!D}MR+C4y0ov$OA%kxBB=5s6Btm) zXm^^#4-r0R(6jwa*LH6`hmXiKD2=YErZwo70i^3GeU5(JvV`60^FmJbnO)@K=KV0UB9acOxjs*I3&wdP0mJJ>N`iy>AcTt_M@adVXx*m zC)V>=qQhbG&Zi`s=*Ey2{L1~C^fKq@1+4W{T>D7pO?d*gh2((qh*!f39%9gO^x&n7 z^jmQ8Ige5DbaT5Bw~Zk*u8z*A%~KLyHWXVeDshCyH!N2==_2EKD+*yg!V6yvb0^H;yJ#Vw`&fF->oTgLkM8lQsq@KGo^=Cz@ia`BsU z+!KwNbd@VyIM1*uOM6+uX_t>tNGov7UQeVt0E9YV1@II~L3;%t&5IgJeveis0K0Py zQCfRfl0FM}tjfcTQ?U4O>>UW!DyJ6n&tzBdJ}0&tNgezc%>sK#V!L(EGBFWqke%+~ zyC;nK6t4B1$8g`wMnGx%Vk~oLp;?%wZcI4^EwPRi#Gr1~HJQV99i<=~%#Is_L?`$k zmU1bW1*J>7UiE9WzL~?rX)Tp>(%MFpMqcW`L=AW^+Lq~^wu_-qAad{B0#jsA%i5JhusY?FIUNl51aH_Sr)CEaGY=T<0msBedG4|0FpR2Q`Z)x- z2Vygnu_IHG)E~@I(o3@Zc!>#B?I0QGKi3q)hc5*tMDr#uvzKpo6$s}R;c%2#hc3A< zxFi>-@CH`I1bR(#2_(zK#OFE~6AmHKxiLZSx7OZNve z?~f9UN^=?m9g}5>izhBZ+jsOdBMlh#Nlj7)0j?Q+3?FO}zB_lKBv!(J_2A?J{TVw$Gs&}1La=oC#`<_% zHpW8~@&Z75#6(m6#bFK4)}@WI(;!K6=tQGA zA7Eanwh7`g>uW>k2o~RUW%!%vJMlS4@O$&rJ#KRO`JD@KO7{VdC(qhblD(U4dM>ccjf{1YiUz>3Heu5WvXxr3J|LWE);q`x=dZH(hO zP!_ABa3|lb660sE_mcdYHx`0@!X(sA1!-l7mIeKERg+9MD|%h4Z@Jl>JjE1I9D#_Z ziJ{??yw9AfJ)>9D_~+gPnH^=dcfdL){W)L-peq>X*gg>pb_=$;J8c44D^l@FmqFlG z_FDk{=Ud%dqiK-`toM*rR?8O+BVbg(Oi8$GrEjk8m@W1WqJ+aJ%b{HQF^7;>nQJb4jT z(pouzXWZz9SS$hA`*~v@Me)#ow+l1vpnV1FX0Kjsx2maDoYfr8u{sR~a&Ou>e6$l` zhoRq+KPJ)VZJJIaLzfqsYR!o|xSsrSe9#6Ao8QGzn4g#!`)z?c6%C9Fqb)$@A{8{e zG&2)Bw(y;Z8#f9)KBU(J<0FEwjKu(QUC7a55M(xD;X^n)evZZE=Rft+JyG1hJKkFP zt`7OlA)%W9yUlzKuwD4)Eg~HB%Vo5CK;V$=f$$;4JBt&3MvxRhy;}=VqglnJ^AhKG z=yfA?`Hs^7!#3_I(4~5}04kw>FwOL2P#}QWWeh_eU#Io1l)bt_35cS3jl&kNS2cnlB6yUPs3 zU4(G-0(npZT?HDx$pAWv@r2*>ep}|CJo0k2&8|+0nzyl;$C5IoSkn8kythrvE@P9- z@PqfvrD<@oGAdN`m+2!vuE1K!qWpFPBb5~!0=XlhWpr!qvNc#E_+S^jLRLC)$+1&B zP&h?$9udvpXR*bO)6NJlnZXKR7W~+eUG_4z`eywu@i7F;*IY~Kky-=yqR>ii8%@!P z1KCTd(2ILJ73$!|Rz71ty%dlfrEGG&Tw%ah@x{}7DlZJAicj=+N#L8PZN1Ea9~+q= z6mF(lpomKkmB-N5(a$q(ss1)Tf)>91W)qbo8j!gPbH}@8%gBK8&hs1$N>YEf!|+;M z4zsvLLNUEP^V3JoL5COnE6+Q+hb5yA7#q)X)R2g4c27kEfm#turr6)QPl zQOpnb+Dp40PGy6t#MUOy@9WnUZy?IDF;idKOY%|H&zO1n3Sy6LGO$kSg#{ONT7%hn z!Sxgbze_y7lA5Dz_rLD&5;aMk&H$Wm&{F{jBcz{~0;f4pGp{EHVwi!5P1)_MK6j91 zSmzOlX^ES0eP&DGk>@^AQKYPsd-e6TeiRg=EbF)5$jIKNu|^9U#ilCIm){!UoS57U zl1WGMY@44pxxsY~PQvwn;p3n-h&<9g))%@Jq<1O|u&Lhn)k;y_Mn6iW!|N&41+f@a z3~YnS$j0)SsID+%NhErZVNgb^h}nFMQz6U#F|B z)9N2}p+kw~1>My3)lLw0j>|LV1vuQ%e^ucu9~9nb{|LLP(RPvN1~p0f9X$$Icn*wa z+MNx9;MrrNhKx|3d8sbVa;it zl%D%xGWQ=i?EV%HMo4yYxI4MQlJQQq&A?!%2l(bFlEQ{2hlA} zPnKMUz0x!|_*oOb=fso54?8p%#}h!P(X@Z;jhf**N4`JGgMb8eu3?7_^A5f8#8F~jzjcoyK%JxG=hz@~^D40{z4W^t zya$12rA2{iBUoCK6H4;YAdm9*TWe!G!7{ zAfLL7;$0SbVDD<3Xj$~EFZ}GUs&}b+vl&u6R(&M39}KHH+{Rr`tU=O}Rm52N4ym3Q zmms`ah848RlIZ@GuMIe)B8Xu$_j+vIH!K5#qF+?D(-%^i$c#`D1nx9R+pUaX5qZ2? z|0K)4p6q`3e?;yKU)=EogckjU!iKpmJq&-pPOK*!S(1?yW*sq$ye|Hu5z;G#oNAipxRT_hIf9Q;?~Y~$orh2iCz#WJ_35gxMtmy&9&$Ks#r)iF4&B8UchY(5WhzJi5qXO)@(IDJG!8(cir)MFY+fQLzt+ z*PZtFBS`M29&JZPd<)UJX8Fe{_t+|pouT;|1~}D@Wh>=VMdH-hEs+dbFx@!);?sXCN0(ZlsXKpK8#|{<)hrK19>n?042r%p>y ziN=OrBu(`Lpf^!TWzO>gf<92!KBLlqdH}-7^ZK$A1AY}Iqq*m%Bs?iPoJIizqt~g^ zL)jfHwB#IspKq=#j~#|m>1Z#`qngSs;WUWoE7xcju}ym3{~ z+>pcpyhfYA9n1(VaKpcu0FJr=wS+D(-@Ep0XEosT?DNs~lgR@z!pquJ$2mpyf8CWU zm5ke5RsZBa;;Km6<0iPcL@d}*=roLV>U<-F6?v*EbvK9Q02Lk+p|L^RAYZ!U$#M*q zp<8o^>xmHp_DqGrGy&8O8F{6FA{$-(`(sqq&!tbUEm!U$_xjm@uZ%R`KcL4ZSFMTA zncPZfZH+i(YECP-vpzM>xBvYgt$;8NgbRke1ZSVhFH`oI+a|>8Fve5!ADu7H?oT0)v`fizr%l%av;ngjX2GRW6qndQE-ZRV zR*W~x$N)whF1nprl20m^1=37)S1C+uV`JsZ_+TGj*j1^u2Mi`ebvYD*C9_`z$INNy z4hA|K;-!z#Rqe7$Tp0HH*%xc6nh3OtE0BxbG}F+oB$Je&fy6pleo+f?Fa~C+MAeZ> z!Wr8x@651)rfC0!OQ^S#OLw~-n-*{>Gk98NeIbt2=FkRK?W2FMuTc&$`z3byeImnm z(YTFaTd%XsqRch=hG+S~f(D%Xj@3_(wBpu%$5Ukwxy#+B_?Z4Ng#ECF=mHK9KlyRD0}~N_qVFjl|kcaFbmJAM(Ou zj-2#?S3ORD^hO~|9(+)=MBctS3+eyJ#pm{68#oX5z+7nw$j6sTCsQiLMJVG zFZ#y{=1bnH>TY_0h{0j)ZxXMg&!)Rg$KY53&6axo;zbEFEygG%0cIda_4ar5rxnQK zAUu#*-utKq*i7;&?Io!grMB&G?Jb;)N$!uF-zTH06a}0I(v2_wm+cv0V-hi?*rylK zc~%6-W`CCmlKUQsGfu zcz2-yzLR;*?;+LuNvTnXA1Vj;ls@Yg{vpwYF(s2)82=lSok@W4 z;tcJ)+X;=IK=JZXgh`1zu#ZrhdakM9qj+A?vmz(OLnVaayG|~ROj{2z*PZxOjr=;j zSEG!^QE4G+dKgJXP`FWl8_e{z2+&O9$Ufe+ArT~!6dMRclSdf2@$$p^< zu}X7dCQL0ax~M?;j>g`dFw1t9_~OwBV&J$Y+YG=LK`#gMCPo5F$$wPG!WK}=ak=NL zRM14XFH1QSW?8YY*_`Y+ z8JTU9P*gie8m%2Ugb@#R%j4W!yRyi_OHh8Tr~P5SgiXWlM{pnUOM@`PIJY69nZ~c2 zpMIr%@F%<;7dz|YdSZX3M*U>YjmnKRG%4JOSWzk*y1^qcA`d8QucIhnd6?4X_FR1P zp#7;tLxJ9~xwnny%<7uf57xfOqPzC$e+f2K{^Q<5;qApp5aX@Q;Wfz+Ay$Sv3-8uY ze*22+HOaYF%|7FprdOr?OvCw02~BYZeZMd50XwVU$s5{!i5$EK7Pn#rD@hJaVH402 z-SL6#0kfjQGS1gc;|#k(Wh*obiDWM1xnn7!xeYmdEd6{gzcC!>gMk z-Cz(%R(a^D@|jZ4*1u`{3(Q1Z3z_Y5ChU-LyP(obPRop3{8zWB)Qp;nLMuaQQlgh( z=dnI2XbDdRcBOa(1pse>RjThm*Xg!p2u;g~Yi*XxkVD>BycZ_U3i8YLAU;3y#>jLB z1g!{>GM+~ghe5I&L_9H}R|Bk{y=7g;2W^ z+<_A5bdH41XS~{*JbiG`BPhK6!=>V=S`vtH$mmTL`M1s`4VNm^qu#2DUhjf(!{~5M zUwbYRJf*ez1_gVNZ29rD!AbOrw_R-?b2|QL?752t7bCKtX+RV9SmHFvJ-&^`yU79T z9*h1vN8&hIL*O1!_C0~B1*<-72KPci`R{kJC%eHF6WL=3kWykVz6`A`4Zn<>JZx^RzXJ@Y@$N7hVQ9w_gsVXj4DDui(#En_BY1$a!ezE-|$=+g1DH z8yV%JFYL6N3s#*}KAMWk z=l;}`x2LfsS#bzgORp0YfSCMCwEQ7aTd3S+2Ec+vSOxD0B}Q*cPrkFM&;_VSV|NBA z&;kw4ehua<_xZZ?39aZnAZ@Y8c?z6cF63@hc6?8v#t|C}2vI{+AxD7Tf8OWKG# z?i0*nNztFx;ccZ-|32IuHuF7m&F90h6I@4-eye|Ucba&vFSQmjd%?q|@>rChZp8j| zYlu=hxLwVff_%;L}vgK9t;}WR8BfF z1o=^7wR80qdZuL_xy*Ww#GH!ypf8R3J7c_wNJs%lmlTmrkY`Ja+X?PlrT<4 z^9xgwPE;H61Axz?ZO;k~mCb&RFxpaVG%?nx_%pdFwlzKq)l-McWJ4K7OIe?OBb6+7 z^$rl8>A6_7YD+nzcrnOfD3=)>FLoWY4^0uIa#m2oxp$n@L$?)2cJHS7E^7Sk*748W zuMDBNW*`yJt_g6~9aG>)S`p2APzC%sp9Mid{w* z2lJH8AKzO9A5r(l zytOWw6dhRmV!oRE(dM8f$lbajGn0R=K$EBzx`5r@bp4& zJyU#jta0SBPPuq#r}zew_5Opppa`hVqxNLi#UKhvNYwqzDluqueg)+3aOO*r58i6r zjlVE!z9+Vp)|gl1<0iM&;aWVul5)w&Ng*KkITG)DQFL1xXJo@EP}y@=b6X9+ubb}@ zVok+E!qti02WeBfNzb-c6IhMIA^2z$1eyy(-1t0YlLem0r`y9>4h@^%Yg1qZ_>fWY zWGJ^QSnu6AA53Cp;WqZ8vY>F>RShZMxRIl&xH)XYr?i}xrq<+(+cnt1`U$L1`VV0Qjtkxgts_rRiUf}q zh2H{gNo5>FE5*p0nZW!c#sdv$wHK}oZh{PHJ~fz^?ZwHBidtdBtRE^J+rV!WUjl_&zV*Q73qy>hY*@)3ZP@T zk0C`U5VhVw(|2s8Tft>iZ8sJKu zTt-fdexoi(EPkq_5Vb%fieO^)vr}J6=}!pMw{JM@_Yb!oCe00rfT`<>`Z6R?mgJ2edm#R>?8~wDLJs# zFMKn>7kU=D6OqVM4=i8LM7b-+pC^~wSYU6Kw3E$t$IK6<5~+;pjTVW9+n4f+|M&IN zC!OtL9VMkC#_)tgOw54UjyE*Y3iA^UR>j!KsHRYZiL&2TC`p^-?nEmBX0s1p-yBn@ z*+J8)WswthvX{h-SL&IKU&(mwSi#wlM%L2jK;NO4-PY);96l5*gEAd6fPm>f z6wwB>SZzjwpYg&>ffg=PV0+B6h$7a$3Pb94ppl14oTKgpom)0=aQOs83Ww`k3Ea~S zYn`{SP2=Z>=6MFaC>0Sr0J-wAqCH$0tG+K~n36-g97baZ*V&udRhqFE)Ohf$x6Kh{ zNgWSplfL7lf$~;3Ez^c)R(Bg(t%}+eg?y= zw9?9GARya8u_MuZl$&5RtoG_U(%<&29klRba(bkl5qtGn0|GLjCroi0wWk+&vantRS`L(%r#+QwH#1JRM;=3u=*={ z=256c+x)YR8^D=uK87$DBr+C3a$WX=EKd#JlU#?GKAbK8Ll{+|mv4Z_|5?X7wIpl} z>Zyav8*uZ_Mf3p|+{L&P{jRgSM>*mdJZr}Fn1a?7SrZ0GzSIZ)H&6i~?6?Jzq_ncq zUVjUlo+y(7Is5q$3;Xy@ClEBSMqY+oI=V}G7=K*v&Om;Gr#!a*pI(+~Fw&rV4yheC(m_8GZg}Yz&&&&=| zb6R`qkudd^&SJnGMo@et2O^p9sD_=(&r`OcOCOo7ph@5aiRHK}Mk#FN8U)o!=%gF& zFA^YrmL7gdX1KC+m|&jKPsuu&Bi5|W>6!{ULnJ+K_mTMjlMSo1WT>17b7M|w<%9Hz z5wnd38LoldiXZ_lV=DK=AIqn<{KEbQR`mooz5b=dktn@7x?aIa6y#C19X9RzP*GHa z-dMWCh`+i}xRPU9@DGN;B{Zqqh~&EAqQ6S^JA5W`@qA(BDI(G={+Hgqm(ozrUF(PFh;?YMHGP8PX=sVIa2?}iQ}+83U?%!SSOI{nCrBZiw7eMe?-3X} z4s|Pb1xA2VS@3nEOr!Uor6rF{iv?7MrSDuqU%tht%@7621ZspyQ{G=b8__g15qoPs zEz-EwF%1)+@|vpM7?kv=DFs?(ZAoDDDHBLen1D4jao_(e!5-<31{5P=m0$upNR8Ls z6svsa!%Tow?ehr5T->ypof@ZLS40*TlS>%5pJ{M%``=_D!cS@3htej<#`IDyADBRi zB6vARSx<#sjk24zb_d|&ckfW`Gy0c>dUw?i<|K|F?JZaqe!uTJkj7Ypm;t%;UN0Z) z%dcH5twruJntY;!pz^{FKvEomm!nVRmRGB_LM%)J!(hbe4K|5GK zQ$Z8=Q=?nIk3z~qNa+yt3s9*7c?8&e$o==?(^52C+|Nsx6lCIlXqXy@$K6TLNhhbA zL2TDP2^I&wYaKI1pMsU2jZT2&Nn{lcIZij_6I3kl-?<{on@d(rYa?ZMR0zqpYqxQ7 zWgfadWDxXKeR}apatChczV@KQT>C5$0aK4KXPPuCpl}^?k>87eu(f7nSBj)U=5odi z7V_zRZy`*9U(*@#0%*Ycgm6N1|HjMgjXtrHBfnml9v1VHf6}j@F?oYfHKS{s3?UQi zIiTQAqVFd5`JeoE{R4lagof{D!aWD$>-CKEdFOVuNh!P-odpzw+srjhb$U%M(k$%* z%lZ2j`sPjHuB066vVEZz^g*v&^nx;!@Adqv=0PxaE4U6)j7mclOj4W}a)sEDoMklP zIAooSV#1~`&~eB$;dUalgwo{ANnJrk2Fhi2E8u`42fn4B!Cv98Z*|fj(;$TpO2QoV zr^UgIG#x^MVV=OcJ+=!2mj*hN4$|zCcejEvdN+~)9=2c+Rp$4_=oN$Y_R*Rn3{-*l z<~Qi%{C3H($m*dn%b!yLb&Q%%mIE5zF)TuloZ{G@*{CIYMeT06ILrt|6A&Ny&-O(+ zrMitm6)TsbA;5Lgc-I#ElqNIG{c2KP^U7{cu$co0bI#Ckrqn1UAnW|2*Zj+A`u(aO zI;13A6fo=^Fs?tC^=<^GVhToKb984w9p!>WrL2#U1N%ngbou>|LGKa6L(!U#s#o^Z64zJwyeK0%?w0m-N5j z(<5E18nlP|VUroU3-IqZNfnz=*;7s-nDG@<8Mn#kV|_qBSw0qcqVqpTQ(J0&EY9^5 zt*%Tc{CyhC{Uc}F%$kNER5YD2_iE3^<}yLgRv|g&7OvY~HUgBP;JT>ta+**y8dPXW zMEOtaIhgN!=m^_hb1!y~NTpgPkV_>P$uQw|V0as>-PiK{%t88wN8#-B`GEk1J&wpRlvlM`>!(~HP zc)jWV(m!%bdKK?PN|V8sO#Jl2qsN-$tHrHn5M#U*S@3W}J zv|xGdlF4yRaesqe+kEr9*5K2BB5$DA@$bgvMMoNxTR-zNjq zZ@8oMI*5|CC&PY3oZGSSMc0fF=_L}N(vjUy$%>8=7 zo)qN=+ZM&%Or1}+2=X-#!qZY~!-##dkw7KInO0$LGY?1(1oL66tr+|_ZlNudJReLf z+VW4inKsG>Zw{#)SC6FkyPXM8gr+(I0i+1kqMbR)S1UuVlaG=Doj0CoaUDStFxk@u zm}K@Ks9%IGSb`ZgzE(dONzjX2z<^8D0^L*;KvUn^$tf!BXGR*NO}XwAwBb^8fENeI z{pi688?(lhL-K#_5Up04VZ}zQ?!ZJ*wsvF{Ho#T;O&K?Chn`QD)c~*2p89b^t>;dQ zW{`J{8B4Uv_iDAAy2mi+X?nLt^Ec2X-HD9_dSH9_&L z;i~GeZj%L?G=!*2B8uWx`AGoxpuw*O+OFQ!b%5Ff*%Ef9Et@@wK?6Bg@J3Zt^_$;dG4+um=0IJB^Wn`Msx*h zqi<;)O_R!S3Nyd73?Xh7&uWx({KH=6V+&csonH%D4N;9(-aIe-0@MR-@bjZ&HLr5m z$ILFXzUP02DH0}mz&R&bjrJ@0IMwc?hNsf0U&N93^~ZBAcYD%t{(QVL&p=AyJ2I&P zdlxlSw!Q|U4lEWmo>*cZjnn;#w|{gscET9^PKdCMWUJOyX6WBSfRZSBIoDl4UPn*{2ps4q%_N+PIbk0z^5A zo64NBs;xos#0FO_<9~#I-ixZGuAC{F1se~XkfT}CRcQ-GVw~5-&S8yY|Nq&%-b1uG zOe^P*elb(jmsdWk&es%7sla{X4#7Sg1%2$fdRd+wIX zJ{*3p4A{LsGrw#okKcPR=lsl!e2oUcfx*I_j6q+Ip$eeW1JQQ)QpzJ0{I-5%d-t%B zzSBGPN3R~@U9Q^q&fskUhnLI@EdH-2e2M#a zFZJ+`%vo7Gzix=7UavXyA852`_TJmor#noSnm=4FfQQ z`Len_TgoAoQ(jUaDsgK8pH+9b)s@gGW>o}`G>Ee(1BDxE^}gaK`=rdJPK|A1czL*?n(%(GO^ z_n%rLPgz{aAI@oyaREA{t!SYk!NaO%f2yYBt?9{`bdsz0K*Fe34bHi5_1nH64~b44|=9WlJRY(udw9#Wz+Bxd@3V)dB zyxBfvFTJ@51mknX7VP~Fnt;d@jnU0ZWdrQ;&Ya4=we_xpPSdZL4Qay0*fv!mPjg&c z@#F{N*lSganZRK>=kv*Oj&5kU8e3Ea1Yr)j^7iBrdeoB!t^s2nKawIK7S#&n>>g8J)4w_>*w$ zU)bz(hx$A({g{h#PJbX^Hqk~!wa$<65^vIAB3W4zt~CGcc%%@|!Mc8}s@wO_t2(@-wcm!**#Z-Rn3yF^!>??I^r3#@QOYs1EC9*Hd9%n6`KtUda zlj0)7*ZVVy01#l#BGKnQ=ALkPeVBlC$b5hTxfm-e_nrO#b=lLV)5ofen)kJHfz(W@ z=-C{l5Ix*2KW6!VHKu6?3kBIaH@R9R^~A@ zrg!@W1i4?i*-d&z}}^ z@M8H^sZAImqW7X&KTEXrRa;-z3E8~cAHuJ~G(|Hq`z6@=KtqFS8FTqq3l`pbCv;Ie zopv7j&e-;c(dS@XeSq^KG#0r#GeBN27TP}+Cpzde6HsM#UQSPJjnM+8#KN69q2TfK zj&aV{=;>PKG5xE+iiQIpbL5)fkagFx+S2T#v=*INt+lE&!t(oGA9qi4wNcnUsl*)k zA;@w!v4FP)M1j-VbL!U=w<`hc-BKfUQO;b)0ReOdy^4REJ^SeN(O!b$Q3!}i&2=2D zSG8f_KScC{?pEsc3XV`J1H3dLybk9wBtb)29FlJ$f}!|cLS}<@fo8B5eF4tZ!ZTzk zkExz4g@3ndOAkca-!T6s%hF?a5$?-Eml4;O9Yd1gg!-7A#@Xf^|9qH^^*r(O=VH)N z)D1`-gk{{77w-82yHr5u@Bw?~6?srgDzbHxNCd!64k@NJ2?qGfgEA06=ruwX5}J&= zeTN!_s2ZR<8DDi1$v}hTb+Xhu6^)0D`Ic%T|G=&y;wsaI1s3u{lHp17J$6al4ZN|6 z)>C-`f?~>jJHpObHF8!QyQmyz7xHwOb~`C~NU{jOS5Cf90=$E|>x#BV`kKJXR0oYm zjFd#`j;3eb9E~tJIeU)n1DtA=H3qy38+eWMUaersEty|*Y0E0(4h^n%%XQ#FK~@DQ z9tNId;>}UsD8D`3gcmGMi5Yeg#H|QFm^)-RP3ApA<)$Ax@;}pY>TO}Lj(cHOzknd< z$$rxva1XM<1`iVF%p@|{qg!u@fkzufltXQ~1f#>;(7eDk@MHVFgXaR7Fta=gcJ6*3E z7%{}H9AVOIde#C@SsgJV1a>_(iUssR@~2OXyqw!Zh$~4?Iq;i^sh6Wrw&E?-rg~MW z%9}acJO&z$R)|$1l_WP^_c5+H>?@sEx1}}EKEsQ-(Cg4u1}nZ5fx3s6ZCHxtKu+#!*PB#S?m+rgvfXy-f0X zYw+;BjTzIl;oYN?3d>W+Wa&T?g8Ss;xy7!tEF9lhPwJ@Yp6>Pi==p-D<@#P zEHMkY=V>gft>8lkFk!v1Ux|5f^%2=-}=n45dTV&n2p!w=wBTSxlJ&Y55A= zCITb9F`{eBF@0`oL~!$nfAX4LoiycRL9dERj~U1e@*?t$E|3A2^{ zys0K1F1g`qdI5PBh7x2rWEVyG=Q=2DW3!wSKG-)QmN zP)MPZjTpLOk=4w;st|-rSfgg*T(U=R;>wPE%IBiqdgOt~!10_GnpupAWVp zmw&fjqcLLeb%QpB@GRXOFu4Qje0*npuQ2QwVjgE`%I$3yB4a+b2?eGIdXK1kki5cU z^?IJ`aN6ky_|Swxd@w&BhDts6E-hwv?*pb2BNW&m`Ts+fk9s^(|fGyS`54RjE;xB1J~)OHhCu)VQ-%b!u-z0S5Su_sB$!>;ZE%<|FRw&67ZaD+)WR}R;208=h&o+ptg`cR z+W)C1F7cbov}lIEL4QkiuIzo?aMrw3XS9vC@%_SR;1CaKL-bld$3ZANk5tB}HY+tJ zu$(!`PbwT^^eDaQQ!Gy#Mo~3VY=}_&kw(d-Vd_cO7GW<;=_{nK9Z)b(ZqK#cF^>+P z(`|4gB462 z4bE*lO94!$l|t3>=<|#Aw|AInR%+)6EO$U*gj5v&Q4-O-!BC%Rs}v4Mh*%(!w9xTK9zAOopvaybd8Rc(##^|g?wJ#EttkEu;~Qb)tKOm00vreOqSiv2X=Bn zdyE5oQDU?FE-dQ?Ho6A@5N*>yS?VN0H{y4`Je2Ql$%!%0D%Mg*6HiEf$ZV1WKflu^76#C-)EW7OLAs>XoM)i?@LT114EaAiHZLkUf12x2Eq^=^-X^aw^f!E{Si-`F=byu< z-x&s}%9Md(r7l*2$3J@G{rV;hT#y$$?P@+ZUW8`unoPXSvw=$jv{+rhh^;p^4

U zvZh+N$^^uZIc*k=P9G}vFpXo`64WPK+|tx8kk z{(}RAqN$A8#Y$Wj7gXpv5HZ=Fv`JV=_uawKX_(Xn(%kB8JaRKSXtdduomwT(c_1+} zJe!-7zAATYF3FX{Agj@TY(jzbR~_A2x`&m0J0_9OR&3xs-S(zvyZaxsgkAgeSE^&V z&UHbrzIS@+kuMT4OBB(H!~V}PVjJ=@L&W(%**&yj$Zx=}r>4=Ky9Zj*iwMer_lrML zmi~RPlA$Nv(}E$&veRO-1PY5`3lzd?ac8CkhMCEWii4CD^S{(<{-c;BO{y#0?)KJ( zSz^Vc-_M)n-(9POj)*aXhht1_vsf7h!9=ZU^!#oSyBWUCjp&w_2(Ja`%!~Lep~4$Y zs0GmO>t7{TDpavMq*6EfsCC=|9$-(4POH+v+^j8q*d*@H7PuA1;=m@1wcEIM%D;l+ zzMZI?R6k;g*CYh^y4ooSH;Q~yUqpPM|&Fpvx=mSu-uOPiF+G;#n+%lVqx(`#! zj1EogOQz`4TOJr5TRJ;?vjte%l#V4StY>gbiSLIf+@9pKZTn$V4$7H4Ci6ky$fPg{!5aS9{_xFU2+Eqw?9vNnQclK)51t zv3y}Vrx~6`*4wSimwafq-Qi_A-gm8@&4y{B0Oi8)l+RS{(cbcm1b-AFKTfASFWHnq zr^fn*r9;t{ba5ub!!*DOIk!Tm3b61NJYUZ3LxI|+uGI4w=1w)0zI^hd>9&O+Z(&UO zA&wZT)I83YTe zH0)P=bIIP$6Gf)RSuh@Oot^cN!-Xv6Ta7Rijsb(jhUEdkHVE=L$g>ys zAoXgzzLxWM8B${$mBL|_u--*3&Cz1%KZ6e`Ty1H>>y%Jy>m07l`4j7u6P=OyCk&;y z1Up!;i=gZ3in6{&@Lu>kf&9!X9biHL1d#M!UaL^TcpBjNBsG}e;F zP)}I1%s<5%BmKu~a~ME0ZU0}n`8`0Scb_5H5ExKj9Lwx!x1?O2<2;Cj3%PFtVK(Q> zE;W@eAwS=_l}(#;!wU)Kw(-a0#rm3+farFno=m(U<@KF1SqOzl)Vl~ixdSfr^xCg7 z&HQ1evaU!X{oeoY9PA@1He8C>fsmbXHE>rup^D_Z63;2#M(~+GL;&2Bq;H=j`jd@v zwYai%@YH>$O}vqxDPFx0TyuFmpAlV#Kp$!;q~LYH;c6CHXf=F$jm_v|J-6FETMD2B z$Z-@hvL%Ql$kt3?mx&-)&#Ks`VTrh*qfY zvX!F&+cYzn9OZ`>ODiSO9}(xYerdsEA^_#7zeZ$Q)xI5@7)@>+rf~gOg+SAl7f`bZ zf3Mv9JVeY|80 zrl{seQ0hibrUyC|pO~d27}|2fZqap@Vy8fw zG%%ARcmFKiF{#ce+8SXE8_Nck__~H-x*5Ohsr70r9`n&mT`uS(V`u--| zW3i7Geu`}$3d!wbr{3mT6|@AZ1OP*aZ|Oujq`GBV-OJtT{rA+59Ce1pn@G`$St{ zZ3&D>5pUfryqgr3K0oV~6Y(nq5=5QkaP0L6<4nrU6ILWWZD-q*%ht`DHUt%{1|co} zMTYMw0Ev|CR4LxT4%pM2X0{|F>L<3hH3^mo3j4q){Wy+n-FW=Oqc^}6NE2xTm*)AI z)|&|=(p8&?Ou#?;P~Hfi=t-pRnyE#%d8!7;lSxMGu{mittUGV_zxa#u_~@G7a=(*0 zIJ+rz>x(fetSde+%HI?4pCQmAY+|U$L)^MZI)v#NfHu9u<#)hV%6=xHvD~*@=QpIJ zk>AlYgjT9uqamkQpLA$v!73P;{P1KKW)WHU_iwGw5}B(VF^Z#(dmpV>nU{cBcOhsB zLzZN+Xf?59CxJ&e^CD|>)H%tiUIX6r1zUD=c1uj1-z2`Yiv+Wi6JZ*};3ABckXK++ z&)4OhfYD<4v+q`C(*}VtJsN7EVzeZe&VkWEnrJCSdk<^{M=xAH1DHljm^Zr|xr%=~ z!Aw+AgRj_}wtFIvhYk|JFop_33enk>jRQ6TlS#Plt{s@Z6c5Akgk0iPWA{bk>o_En~HYl1wV zTOlz6lrG4*Mt(IuCw|;ai$SbF5=iu8w6$wWjNWcbRvum`Y$;H!4z2A|;Zz>|LMLQ= zX~aH=@Z$+V3npQLv@} z^K}dAk+lq}x(cke#{h2FQA}q!Coab4bq?`$B}_}Ht;|s&B(F6Ng~9fkMN`$W)DX`O zWQS_=iS-bjR+Rp}B^3Z290g0N?B06i!Giu=bP9dHOH^lVm2B4GH4J{3ya7rN zPGd@ifd|qZ22fy64*$qD0Lp+r5(2^=-gIALa<%Jmt%k9~zCHFsc7&o9T!_^-}{;E#`HGZ<*P@fF|0R| zxQLlv(#gM$kwWls^ii(g8cdSs4w6}$TrDR79Xf*(r6+4z|1iTD&|y5)XUrOfvQs8J zWxTb4d-({P36pekc-{WlHLFnDGu}89+#Z8szY8~o*X$ElvkEF^$YhohV|Tlheu|Io z=K%fo>n*8JYcYDJ!+eU?iDc~=M3Cnv+N0{Gn9urY77L^VK7bQi{vmwZ0Vl{K=2ZCN zNDba60{0>4KXKCI%7(eZN0|9PeJBl|Fl~)IkyDvWjCF5alYe2biO9}}M7#UzuktE9 zd_j$2VjG&P>lA;ov4B4?C|TxJc9hle6-LdIJcJ8f)z>werwfhHQdyNUIK;Bh{N@!A z8s+>bb>FzV3qumdl?=FZ zioVuV&QoId;IIq8if~%mYCUO8L;0lRBFUMR<}9y`jKhclJ`)oVCtK^?StE=@7ljAvqZ(xVTq9m5&Gp56yJIqNiwrYS<9vx z@uzkV;\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=VPN_No_FastTrack src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260524/20260524150002-Diff-Config.rsc b/MikroMaster/history/20260524/20260524150002-Diff-Config.rsc new file mode 100644 index 0000000..7ebdecc --- /dev/null +++ b/MikroMaster/history/20260524/20260524150002-Diff-Config.rsc @@ -0,0 +1,12 @@ +3162,3163c3162,3163 +< add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ +< out-interface="ether1 - Unet" protocol=udp +--- +> add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ +> dst-port=29185 out-interface="ether1 - Unet" protocol=udp +3242,3243d3241 +< add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ +< "ether1 - Unet" src-address=10.30.30.0/24 +3245a3244,3245 +> add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ +> "ether1 - Unet" src-address=10.30.30.0/24 -- 2.52.0