From bddc39484451e67d2f8422850cb745ea31ebbe59 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sun, 31 May 2026 23:00:36 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 31 23:00:36. --- .../20260531/20260531230002-Binary.backup | Bin 0 -> 259191 bytes .../20260531/20260531230002-Config.rsc | 3462 +++++++++++++++++ .../20260531/20260531230002-Diff-Config.rsc | 16 + 3 files changed, 3478 insertions(+) create mode 100644 MikroMaster/20260531/20260531230002-Binary.backup create mode 100644 MikroMaster/20260531/20260531230002-Config.rsc create mode 100644 MikroMaster/history/20260531/20260531230002-Diff-Config.rsc diff --git a/MikroMaster/20260531/20260531230002-Binary.backup b/MikroMaster/20260531/20260531230002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..1f8fd543a2adf051e11840cfeb34791661e25b03 GIT binary patch literal 259191 zcmV+aKLEh*sF8Db^aB6`G!t-OvDNoNc;Z`SPogsb000O80004Z`SAPzLlIcp!hxw7 zk7x%ZFE==BUt*1e<(T;>rKB>E*b)1cXT^c!EjQ=D=Soy6kjH3clVV8nyaM3EjYx84 zL(Q7Rr<;|pAc@1oLU7TQVU$=k(de&&Y^#-G#xzbx{&evp?`Ms z8Im(t?WagJWRlk1Q4{W#X*cK{OM{2sA-`Fox**8TA2#5aqJ#Jb4= z^!97t$1y6lEw7bEIjdt=MNtDhvF7z?@75cv_#^9qEFa6OtaUQ=i|pDC30(74M=Na* z3Ke2v7Hs+vt!UTHA{aq$%~h4{SgeV)bzNcnZ3L){9Nk(N^~@7Bb#K8e<^#2r^EC z+44#xE?dv2!OSYKy^Y@9KlA)lMOodCRJ$05N6p4X+qoBCXFf>V>wW7fg5qw%?Uc>yG{hTnT8>O5P+yemsG!{?&+DTNgizCQ4 ze0nw^;^w47_nBSX=%u%7;n1?PC5-VN$E+r)%w(5)AOGwFJ>6o94~GGvJ-ge2`iPT# zi)2AvOkj2*1>m7 zDwMTL-a_b&iDtCWQUHaD5S3-z7kLP#b7QV#RvUIE8_ILY)XFpHM*Pqt4G1Cc3%*SC z5ULv91eyfndFT#Kn@S#)zD|f{zkDA9vsrzM{yTxSnjJo=1w$nVwGv83ub3N{b0bs{ zt^o)1NHf|%aq=mEIq7(Prnn|>j*nlAC%-U&|cwA0| zxfD6V@Cp60Q0~#|tra}%6TX-v4aapXH`(RP{qb%`)qhpTx>!u@0!K)Dg-mPeL&MM2-3iOWE*=aL>{$1{U!d1COkA^QVH zKuvz!@nGwrpxiemKwN8otAN+N9CO^4wI?$8+ERHyc6EC_#AcBj$b-TQfNm1!J`+ux zX_ToEQ!rvOCmK6HX(vH<#DK^IBI5Ijf)IwstwOUyBX%CBYQCU$d=af%X%vhTNaoXh zabf@Cu13-m!|tJQjgZHhO!x;xs_nAZpJHrgbZs!2{lbURlhXsr8$XxXDWkf71w*Eh zC@3O$bPKtMN)ew;dxkj#yE!L^K740rSF`@jEVMX6zPo|we{q8vIt&7w8(KDR4xJFmLhaWUhihcY>CPpqs z{4IG|62Psbn*$gsNlnMD3ufdAv5)DyQq-Q;lG%c*5Qodn_J?SfveW0WQ&+G!%iKTn zKW_0ztMe*5E8)7YYt@)%4UMfLMwPf#LZ+jsktVU3Jr)a(Z{>W2U0{T3x}fzhVRi&^ z+p5RJ#Z!&*;`zhCpUC@9N4o)D+WdH^u7p)c8eAw7DY%wa^+=qE(#mQ>`D9G#Wx|j@ zHc}=s2xH}jL!VzNdO|$Azy?UlQ(uW8{HD;{{%2|Y+vPOr&cN&R+S7LkM>i#LfVpZ5 zB_`Qwgh;U&gA-DGt7RR*jqq43^nO|bu!|-F4B&Ie^)Y1K3>@0Q49=^dsp3|Z9n-zN zRIVs80YF})i-kj1e%W5K66Fg4_^CAlp(V&EO>Wk}Oeo;%<~~~1795>MMN=aDN}CIp zaU7E)UcAGHR%PGyq^J;OxYbyyQ>P&lzWopL7s>;8gbQ0Z-n?yWzZ7qL60;tpcHVJN zN-L%*u-rvAPAO#kJMx(X14yZz`Z!ySzf~@okKk*Ugez{b`+Irr{%q~@tY{|%IUMI5 zJ%k31Y&1jp5@DPJK#q3JawcGAOxotT&s-n>A`qAUKB_g4NGq+`23h9cwJE+(C1E47 z`I0FU$TXv$TY&j>^;MkeO2oA|a%Ea;=A6<;h4o!*H*N>umGZQL5|>A63?ze1DIv6Z zJHjFPM;T#_)+YOqkd0VCG_bOSj8D~oX>c7A?i$mE;6|DZ`Ti|g8tru}V;>KC_+f5@ zNjt_J*H?5~&ts(Z@&v}@Nq`>NUvZ$k51G_L_7rpAuFD3^PST2tfKS(RbAh?31rzBu z2e&{$N*|lWpWLM7k~UV!_O;W5J2!FO=nc1$R8^PUD!7|d+zOQ9hy8IC9+V}5Hw`lo z@nHX+;I|E|A_~u`D?X0kk_3yZdj*&-GCF{`)1=X}VvQ2Cn?fbJkS-q=um?EIDCmJ8 z&D2lmH93pQKdm8Yb_ic`Rtm3^F#Q@Y)MSD%1GAGU3@`|f!kv&w+LJ<(3)V0<(m>7L z&H0Y6%mglNYg=!tlOY;c+f#-8NVtH@j{=>xVKpZ^c~-JIlk$wOj|zh`0QXDz-R zTtb*7T!;r}tWK1EcwCZ-(ng1XEql9o+0+a{Eyp<`NLwc6+M1u>3@Tf&D<#hwVl9!z z-+ud6J?(GgDspRI#1By%rcjD#SS?WDB)eAW7Ga=jW0{q2EL*&kck zF<$;`{+Ao)=u#WZyD;~Eg8`a*j1EC-$lo$?sy_|K@xxn4&b|6h6#vYR>0wiz=4&IE z#hiH&X1d0}DyHee&U*jZE1Xut)Gv*j;_B`v+2_H5PLf#)9^SEwz$7pjRPF(S zw83&BpKZau@9$4#`4f80RTT zF9ogTM`v-Xq1s*%d~}V2QZ$Yabe5(>4ulX!5)trybtG*WL>*|s9#+-ulC?%-vv&sq zo;~K`E4;Ekr%f8Xr)6eDIdwJbTZJ8}rL!m+3vxNZo+sk=wKsmjl~DvtO$HV&3oQrBFYoU9ey@OJeI8vxr@q@mr-%pY&vXO z@D>Lu018K@$Zw6E63m{MKZCBRttyYdZZJrlD^Lp)6^ojrb79FQ)?fDXSvnWuKlfnm za$G-_4z_acC${Co8l9_(Gp_O3U?-jG;_HRFCwAMdtmzmDPb$}bs7WL#Q%ymymSe3ipP)o4WepcXyx~LNdoGbnH$b5x zB+lINoHxPA+(;b9M?sZwFY%B~Rn`2kcGGp0oH;I9`T6U3FkV{iOsZF;A7BQ_w1J2y zl*>d;0ae9>rk`t?tFWZ>qNjqBBI{P&b4{iJ$`%LcutJ)~uBykSOM5Rh-ma;g+KB}h zGb@G+3E^%_j#GolTW0r!idwZTXy_u(oth#}6<<+}g%rpjuxONDc~VNCjKD7Vrp~#| zGI43h2N&%6b&)06PHr}r;IlSM6^*2s!5 z_`gVt?e&TNZGA?D!LT1--Nl1TGL{{+#3xd>D1>|ADp^7NnO4aGBc7L$QtEa+z~0)Q zGbJ2=sTAEzW39**;`i8JWWup_12nL{kAJUrk9SJz zFCytiA>W~r(R6*J3eQ?X> z@qR#XF+%uCSq*ppQQ8skP|CIOS77_U@h!kG)}}zZk1cdX04ymi-iux>+%hZU6bX2a zY?n&geR6enVugjfWKF=_{m(BG?7_F;)SLI*gOc-KGy@|H?H)?zHpm$e3@hnA@$Gsw zr{u#4q7WMk+0*Y0PN+m%l9*?o{qDGV&%WfwD)rrS^o25aqx;I9+IzWK9v;456))*s z(3t!PoV`Rn-ItmCK!b$s!q-L>1VHA%Qs;e0Ef1XRh#Mi>zaF#2276A2G^Y*x%gPZp z^|e&|A-?eEl2USA{qId^@+C792MOR~-^ zs<8=>*Kh6$#$t49e80U(FRZ|ru%W3gFpdIPzL0?8oyD809?ek*y$Xr2K=3{PGq6-92B&99Ige#u< zc*DOw3Ts$(h3wqjujdUdws7VWpcya@>t%bPx10RUve-jpFR#@Rab;WPWkM+n`HF5Q(viJ`@v= zD{z&gjZdlh(qGwGkF#`jLtI+yUp1Ezjr^IF2)fZRk785NKY4|E$vn7+-Ossr!f>Z? z7PR%oc`}Eh5kj}SJu{05kyf<))^L^$1xddnj@cZWR!(Hf+5k;a7}i`=zJ}VpYnaCL zbG7;qvg(%qjG_!88)(&KM!#^qGVIM+%Q?E=(-DPEd}ca$KPNN}< zY(E_O?F?a+u6>K6VG~kyet1eKTy!7*9gxh1Y?DD`^m;ZMTyk7N(m^Vj|BK$jBmIe? z=#LP@x#3Xj_FQ2JET$$mKvhCLKKu)Ls9)nj^BhBhot32eRBH+qF37xVxmcpV&%LqF zCE%*{(Gs26w<_b1NZ8yV{SLI%)p6xF8XaVne(y^RSUdjU1Y(LlSU75PUaxJ6gzfpY znoD7Wnf>{uFUYFUOAs;f6$3yiR>hVfIF@MMB-up_R)sEG$dP_l*Nw$W0HVwf`8jj) zH579Uk({=}3Gl5#&ZZt;Zq7lq&+}4bSWYF|)k@`LOV(eIgZBs&fBqPY>J&HXeR~wKckLPxI|7zx{N?Eu zJo=UeGIULF!(9;MKvWZ0&5dX<{&>=WWSTD-+-495f{AP5Y`K-kMs(mnfX17wG@ zY@Nh5TAv}-1fgd4W}q=6YlocQ^ANjb1|)l0oi5;cK>-yLzm((|PYYmFiXXKKYQ)=W z$Lb9iW7lr3W=D@zE*?tXCyobl@5#9;G$S~ql{OjoCl{RK}jMIForJ*xxlKj44S~r}5exFAod`|sQmfHRe#!|Bv zxoUF7uz@TvYRGc~hc$s%_a|eVr-T>MsNM)$6hXdT)1iV>|jfmJt!0}WD1AWV(bQz_3zCW;z3tx&UR2rSmpPW0ta=Un32k|u zvs_i>JuZ?7wR<8K13-$9x!&~Q8;wrce^|bf*OeO?`YUp)=gA_a@P;9u%0$=OBi49( zE+SaXsSZ92 zS;40;=dR_{yRGmc#F|-68V#d%!kZGck0qhA;KqNe!Ii&yA~<6jNz_}*+|sy#mI1)r zsSQUJ5_Aw#ygvPq7$5Lx+iOq_l6#BDk^eCwLq?|3kBqHoc?n_3(FQb-(ly4qf;jSE zI7oao#!0&ePflF9z?;%vjSnx4I;v!)4NWFwdiyDQ$oS`uaj>mi)e^*lz&~R}7%ntw znR{7y12cqZ_anG~>_~fs%=JWFvWy+lrL5vQeD5;`Yrg(4lg~ zH~L@I!z$>kQ2&R+n=CS={x?NNp@0@_H$5-iduZMk1vU}dkw{LJL$bE;)RQGhkmH#324a-e%CFdAapoM`*Zu71Ec3r4I zY`Gz7ujWbh4^2u;ml{ps;K^H47IU;`dh9Z6wm8zyqI3cJ$~LsILCpx<@XcaFt2(Rw z$xqlkWv4lG#T0nfR)c3Jyc^%LdB8=NO=&*E-{ggKSi@uWS2vK) zsuY}Ws7OaM?R|ekQzN|?czXyM-3HQSi-q-%4m}nb=D(!jY8?;o zAE|fhr$4a&0O@s&qg?|R@BLKG0;%|)daE%($n2|0b3L~EJ>}qKSwaABV*~d=S2B!K z1E6l60z^ZkZHcaE-vfcQWnL{2hz*iNwCR1aL*nb;(%e& z{{LZHAJ`NguI+PWTA-x8`~|#w>fa63pi4$_tay>Ai;@>TP%!^~JK7pxWHLEVtcwo` zP8?cIndzFw!GXKz&_Z3k^|0*aA}$GbUatjQ+4EG|?fIJwms+{7jxUF%G`tSHf0AeQurCyOnL{s z0**%P`dE{Y@+3NskLVnc=-iczGGX-w($@?}>jn&VssY*t>pQMdK?e`Y!;{{^pR2*Z zIqx@H_n;(}n0B~L+*3JHf`;CyK9yRnET_jp+rL)iFj&(Z`>?V&LBfF;WK|US$5SpuJcWKjJ4}z_8#Y^1+7v zSdbZy;`YBG6MAW4YbwBNOJyAzpO+hyS;LO+5>u_vtKkKR=OSSt^q!A*574j<+`5j2 zmMeN1MZH8TdmAYM1S@w`oj5$VE0yt^Ynf)Ub3iQyre>w6O5~~h$0$dbtGF9+;%c?v z-~JGKu^L;h^L=|@E(;9bA%j_u&Fo>r)N9bLv|E`|mDz)tAA=^__re3nXu#}34$jN} z5thDuCXUapnB+_JCkhgl$Z7iPIXHkVOMfq^HdjSO@CuBK!X8!MhAbZuT+;2?ZP&8N z`&*?_ETHMP8n6m|(v~M}#Mq#OZ8^uefhwf3!rcrlF%-e)*mc(%2!-XN@T8NNt_NY_ zB-edqWQ8dh62-WLZt&R7|~lveqZj)m?Zm41TF)yakMB4qJe zE{S}bb+%Fp$EtqEulWS}y-%vifKoAWA)fbrJ}1*Jk@f&D$c%DeFja5KkR5Cr1-0lo zNN+kbu^6)IEy*>%b=xdRu}^`6qIC}|&A0_9zUVA~!GiY8(}357fKd1g78no z$#_%OkL{JaOu|DiAd(JVGCOB6%btUFf{Wc!aBrj~N6yEyS{qjl>~6_@aZvXSx>)<2e-nX zJA=viX$eclX|?u&k0A3lwv9Gf2s0_Pn}h!QQ-{yAr;X}hsv%);Kj?OaSr+m%1`Xx46HRdD|DkcH$#aW#?C0uCHW6$cSW^B&`wK(JeD-_4cYk@?IWYjSyuP4SM(bxd~QQ|5&6YC z2y{H81MsoQ5eB{-=PvxpyPPp{7miVI&etR7IV4G)^Wg4hv&qOm(2HWEC(4On%CsrJ z1~GzKR}<>Pte#QP_z47oogD~LC)mBBtzcCeGe3CP$dsp?i)1VFrkhIYXs8pmreNB- zbe7N_^wlVW=z$395*xP~;b?G0;P#MulA;1(gvbqt<2>6@2(S+Nsy|Da3#h5g_XF1brbHv%`APl&QtaBGF~!j(3_kTLs=Fw9ljT0e zLSpO=a~)UPuT{h@60wbNdr=n|@0WmEr8GLq$#K*~>hh5-~0(g_uD5xi=6QT8ys*+;YJX9f;kUqHu$attx+h68Gd{MgwyY z5inj#J<3gdk*1vW-BTqq!BQ9N+6yYDI1h!Jq;0-R^gU8iA(U+yXpW?&FQxrAgc0s- zn)OwYRiVbVjv0?6sp_Nz93V!eayKzng*_IM%6w323D|Z2UA><+v32@TmJzrNQdhNH z4JkdH#OOSTmXFVC)_x)stMhXYD|-JZ`$g;Ij3-#e7?qYm7{cOdjaJ9mQmA0xC~w91 z`SFl%WC2)T<)5sL&AOrud1K+I35y=iHP z8~;p8a?fX!@54f?PJDIp;!oeAbKj0K&52{QGc;V9)}wYo0*q|&vLG9_s0h*NgK|FL ze$zV&G4nQIf3-cR6Uq&HvS?L*jfAjOqCcl=9T74{_svt~`5XKa2mI{Lp_y)hjt9Ld zxKqOG3?&(Pg38%iPK6Gzc3Gw6>iqST@>xg8S<9`CA=Jx=QN~HF)-D@`xy6j{p?Gh5 zT}2|5&y+^Fm;jOg@f*=<&|}}V$#%9fT~GLMq5g*5IH^i`&rFG1riaERYFRAiapTV7 z`|}UEN?EiYkrw`F*_+U|QdnS#1#%S_f8RygG5Y}-M;v%(PkIsuz4Hk%cicN!^)z62 zJ9=Kg={G3bs7pV3SJfOA9Cd4^#25>V@17+qL`_I^{irlY)^LI zVX}>j+(B|wsd8^*VuUSo0E)=`h3X_af~s<%YS%~3PhHK{Oz+pB9!&tia`K)7qs=Kg z%cXyrUURyI^B2AfLkxvc1qAEWvI;h191SlM=Wb^cJ)hc^w~v*peZX9~;15 z>K1(qq0*&{3WrQrZY3T7wtMn^5c)*H`ICh(4GP}64S~Q6km!<;PT#c>NK9NMEN+{a zdqxav=|##BSKF~7!jkFd#*r~L-`_1<4xA9jB4g^S68vVK)?wNpl&xY+IQkO&oI&lG~D2AiyYd+aBlhg$Bd0umBQmW3C-IV_oO(R1%2fx=CYd@tfgh6 z$`3+3{DAyp(%FF+^|n>a4C0U0Pio~;sZh|m*B}MfmVmsiv~n)~I639>?X0LYBWw`& z3882?Wrz&QQ?K4sLBxzlkr5@xL<6YHdq)Q4jjl{6ReIlbOIY;%5eSoJ>8W;ziO9nZX?}Da}`_F?|@@!Vi+KPVtxdxB=&Di-Q5nqK|6 z3ijUiuQ+Jwr5GVtiRROSiMJKfFDD3!7N9SIvpRvd>`tO}JI_J{~Cm*&xc0R;FWE{ZJd2i|Ho>VhG=`L?=AhjO^@of(Q zj)lWIr@VzL*uHM>Yw0>6Hn+&`r_GY;SQe(BgAkD5uVr{%CE3uwHx)(wl}?og5X9Cc z_ZFsQEgfO{Y|NG16)taI&i)1BrK93-zBZCR-R+;9q_pIg?15zDlcNmlU^JmyRAZkM z8%b0?$Lq9zCF#MxfF)V5vUcH>HixqF>>%y0Zql73>iRRjE=fq>uU&}cEVHM|<1rO! zbiF^qAYISaU2i|`Eu37IUT=!CL{L7rX*NEmUw<=f?6~FAh;)#S2h(1?;nuKRAEU;9 zDXSX<<%EH6V-5!FWhh|BM_H^MReBOcW*|kLI`B`ZdLkraZuXn5Zbb|1>Gxyw8I9jj zGHUvh8t>!9yldW)6w?9~ZrJF6dJlY|3v1(ZQ2AsaUX4)|HywnClUR5-i(u{FW}C#1 zI`ip%w;;{-FXmpZkk@}*vN({v2Th=YCHrqdT|I~tVROuquG=8f27o0CA4j@&&Lx1yW*%&3oi0p);{sPuls-+Ih>2!oc*zTFp zZ3>sQI1`#kO;sV5nnQZ#R`TuEKMsMUevi0X&6X*@)bqW!cIfK z#|biSELlVq0u~vDlP@jL%?HSKv)oK2fFL*Am-^FF=h&3?P5$b{U-u$X5N9XKQ~GVt z+u(09flG!dBw)O7B=ubhn=OaYld;PU5$>6A7MLK2xf^by>yw&zfF8 z<`iZ=3q9A$ax{<??4f$-Gv|W9VTRoM4R@v~9f1^HBAU$x) zm-vC{48cy937Lo3XIYzUH`Grze|EJ#>N1GL)t5lE*zq|!IMI(_yowns_wPB(B|k2`5{UE^id6{nn$J17n#1x-kE zc#Nba*hL_g{w!Rfp)aNXT=FJki*P1<$x@>?>cBRfk`beEC6e$oRE3Hadh&{ludV^U zs|Pf;HAAxzTo#Sq_dS&iBtVo_{FT5Fz(lz61px@j~6fJ~#JJy&8`Ep&Y@kQt(v*H*gYUBITx*+q}tEkA<@A-;t(X_}5wq z>{fPnoPKudp84sVvhp_J|H)yZ!3UxIf>oNRJOWN_~l-Zqa)$5 z8)Q0LR~8^Wwd&^Of3xtkCbZE*5PKPa+uWPrclPf2m2dKZU;vEnMNWagLikGXGy}x1sGD13yE4KLIbWG zjNy|vWZgH-5%9^Q7(aCtNUFHv{N8xRP*oqJl83sw zAGJ=1hbGal9B1^&yi9IDSAVr1g@9f(qxPjxiC9B~0|=|9n4H#>+Jrh7Zh=v1t{nCq zd7@OXaC4#}1Ug4-#8X_e9!kBwDU>GL920^C?GWlvyai(BKmVQ*xH0lgMO}F)LQ=iE z2a^X^QEfgp>u1{K8*%6Xz_T`@M(FFRz+ji09nal@*B4!eyI~iJML|u2@pi`>w~2ng z#2k$6C(5j-cRJC?pMMSfS^l)49kRO?E!Ki&E3GR}uIZK{bAu<_(20W+ceQAg3%T%A z^;iJYhz*Ls7?W%aO%m>E9F8y(Kyv$YitRgxCNgOOCC`i9bg%BNTRgYVuwif>z7V>Z zhTw!u6TY>$Y!oLcIELkz?j!nFVI`*iE_^T>sDCxQ`Lte4=O}5`^x{X!9km$hyjeTd zb}KMQaoz9{Y19S1=W^0`cXinJTMI#nzxX`uu`7kfBPoQAHLKQWY1b|&7%-!_Yni7} zGJT%W{Y;`D2IzWz-DB zrHTC>`UAvM*&-#7+398){Tpysd>fh2j%ohfSR?e!tx8>6l1{L;@+QzRc*63%+|}cA+^EyUi%Yp1tV~y1nJ(vKP{Fp zKecWbc%4Q*)(9YWHL?7zgq?{*9G;pya8r%W{1glknzS@^~eycYmy81f)*k z0GuFRGeA*ZwxYFioe-wm3Y3Ih|J7XYi|9md+Zu2KT+VdFc{BtG+#^7kk54I=v0R0> zjdH?pA*_*9M6%DkaB-MDg*J)jy5mgNt&S<=Th(xtf0QrdR8qP~8ywVkW*#D5DJi%3 zSL`_NofhEjq=m3sJh(l!w?ffEqe7i#oK9$|e*N3bI$cc7@RYNyGv%wb{e(;*pr{9q z9~1v=tMrM~Q}GW0X@dPN5r@owoRzUEunD?Cy+zv4Y3HYU^Hwy;`LhnNG$96?aa}lT zO1Sv|imMZR3F%dc%JUq~m@qNtXhZF9pvl?YdF@lBHb!`~A@?~-k^t3Hl5;$ z@V4I`O58H0Dkh>~C_vp;sj{?LM=XSDD>ob# z%@#gD9p4LJSRI*?Wz5_3$WrY*yC(u-f^+^;E@z>$4t}ZQK477qz(qZ!#5uL$qYfSB zkshN8Qt=bW8w|jKE&j#QtTFl#p=LU26E;ytVCjv+SHDKdi&t>G4P&7Hbs+gvQ6+$K z@zxERc~Iqog%=uMn{8t6N`n>xgH!s0ewzJChUOU4PMQ4=K+MTW@!N>!8U%@HP2-~w z;$eIESA8(7L%42W1{#dZ^kz7t*t=pEjZI?<5};NJ*;!|VZB5J>@B%S zZzlV}HUq?@izDu}4g~FdKd;KlQK4Lfi>KZMN+v%I!-?AYk==dnIDDD=Y>7u$ z{MA>Cy>=60ew}NchW5n%ze&t;hCRixph5Od;gVz6uy z<@PO8e&m0YM1GrM^>a9LoOA@E$`?e>y|E>%d;h>`sef$rgJBuRVs!HU>xoxreV?{d_-e+XVS#+ah4M^d z=SdpNxa4GH_~+9X{iq@~Cq(E1hDLnIt21;5FoM0~+si7}kWz_56EM{sV!YnInZ;Lg ze{jFgFr-@I#t)t=J0wz{opYE((iX{#(=IRNjwzF>B4Vb^#fB!er-HKgMq)5~9_3WG zS3?#uZwC3_XsO7nbnqhaWez!=HaONGFy)~bvHU#NNw-JINt?A#*pO!E)o??wUo%Sm zVnx{!T?8>v{Ov4@GyAiu>01)MBHJ^M1D70K^K5`$GURV#m0V)tH!9-q!s^#FkL)bp zis5LxVfI#NcK9|Cqk2gFPKuj3d|m(}#ZZ<&?8P*>uh$~6dkji$38v;Ij%XyA5O%L?$-pbbjRlAvkV3pq+eX}69MA7+fX-1~51YD?5lPjxM zF@7apf>&2sx#J1=4H-a=r)pCXrooe){@=+jaaxs zPgi>G$$RcG2j!j`{w2?$zAPisfemJM^Z3B=CxSR~nD8NtxbblirDCDw(OC0u*jYI^ z{-a2$1c+K)Fx@t6my@Z%80zxOty7&`p*@E&(%)-)w*Oo0QsX*)M&dWD+(Cl{+JVHM z$f!CT=DY0@Iz1ZYbE?m``+LHH@XXd?N{>0OTj&UE86PNzu2j#-gk1f3I^@NJUYSX! zw#_ce4??z|slp6_A^pZsb6?hwk`(+^sYII!TixMg1C`0Yc=WLL@m~-Qy+BeC)o)b; zsrsU#Zyaf8t!%Hx(|SWH+0M8UBXV+>*Bg=BA9o%e=@on6Reh?O zlO(}oj|P+lR?`|AQ&1pl8ocs81i=q%m11%CvVV@dOF(BDh>0reT61_gPJ(2gozIhQ zkGH_5;~?c2hWr=Y)<(69aV8!Dq4vTWUF5~e$~=&skx}{z)z6q7#1;Dx=NEJ3gg**X ztVtrTMhhk5mC*aB6;ksTEj>Nm0IDZ&+o6KY3=ZjVS0A`B6n#QiRfW@mNGs=ewuTLpZcu^CqX5=7Wucnb6T@71UO2G}LfIO31vFxJ)m7PS zL)jGb2?;^FDr|`(MQryp&;H%pB&EnJ=w<`Ot}md)C(!j@Z}!^sFYcZL)~9zE5Ky@M ziyjkq+NjMt>BF}jQ?$uW3b8}%_p;M2idMb*MqKaeL&MPH8(p!I^kLU;#W;oA1lygva2*8&M#!js)|JH|dLgm-zP`!`uF(hY+{@2XRpnWw$gvQ_-En;g z)eDI?SJMSu?h}!>L?azQL4_b04o%$gFszJynlBWQYTqedgHcC_s8mV(d<-6~hI!Zr z@uAog?73W#Qew`E7Uw*OUXBikrp|}__D!NFe8U4L$H(HgWP1vm%(+L zJCUv8s@NPvyf}+)lUR;_fStN7eIVi&|wkm6RgsPBtw+m748sVKVpUy@_Vj0=Bo`GErz6|dmQ?d9YIHvU8hFJug z{aBtQ(?!tOVzH$LhaZ{WzAF3-8``Lla1&&6@5kezr4o47)o!<_p4RJev}HJCVKTXt z=$uqXgoe>hTxpFsF7q0Y)alS8!*doY$Vuetnob93UP98MUo4MKgKrz4UqApfV|br) z!17lv)kZziE$d=-qzH(GQh|!7Fix_mWXQUIJkj&-40`@Z_(ztgC-SUT@?nuIJsNfo z%sahwq~gKwT6=w=Y}2-uFUf}ln(%|mRRU!~3eV3JT8(X8fnnFAE|iITmgeO??CtvV1wU09V5x?k4;!5n+@Q%N5h5CND9og$NC5KIg`{|6!B&-4ZN9n`Ll)a zWU>}=oqTzunB@c_Wfa!7_>P4qUC#^feJ?1jNZ-munOELg;o8<-#_h*aTg(|-{M(Lb z3c9HESd95>3b8yCXAy;L*a7NXfr%suFwV0w0y#oVuaq0I8E)6msOBa6?HYR6fmX<9 zGM~h{l*xxDe1-FGFwRj!_kfAOX|KTHF&*ki!GW=pb?c@Zle}X%ihcGa1>6WkUuccp zvZZ_gw&=7O-~}Z|dMn(oY|iRX&Kpq+g^`9jZ5c`fG+``fD~G+j;0LTr(+UYcR)&wS zx2id|g^ZqzVGW1V6p!3a2Xl$JB;N*N)Xxm?V8V}*DqezXQu>9`7Tt%}9Fi1#?Ae<( zPv4enOl^DkhVyedRhcn5_Kn)Z>{#DX89H5M?eL`Gy)i|PNBtN*_XkS6%^0HkB#E$x zV!Z2W0cXs8sgVHxKLEgji%<%l9sv5u6ZV(Dd|f*FbYtl)pTuz`+GVCa;qlRjDL!#V zA;{tx5ixa1)je+qG{aGiRg^FMUrU&#e%e;0`RW$lk3TcmWnw_MLdc3sT}l{$9Nw+5 zch|srw3#hc#)BRb1>j-dY6PS73y<5zzQ%^(Ol7g8Ce+Q-Nino3Cfm!$H2PZef)^{Zn1qD1 zl$TP9ned}Rqjj7&u?z2X7}LS{^LM!T)FEtKvWa%|1ivu%9lf&*;*;d^oeQb*i{a68 z%jTg*oXCcGFgjWR1FjM#F&AN|&|@pV7UQbAq`uL?qp5S>a=oBj>Y|(G|Df&#RxzdZ z{wXt6#YDA&2VI0BKQ@2ih%Hf71j3%lcE6@lUh!Dvrz|gf_D4Xs4r1&m-?jbUzwN>n%6)Sivj`VSw(dd zE_t0%aN9J*K0Y%y{7T_v>06>hW5-$mBzgdEo|Y8mW$aNJ=6CSB1%P=I4)nx#4R?r} zyL9mefLztgu;PxE4nz z*J*Ox5teMveg%o{ZA-#rulKbFj3simN?r-yKqbnzKh2&N%wk^0Xw1P!Qk|h8Xf(Sc z)%L3n$G0KSGHVR7Ea4UcIHjTgCu>Qieo;QXn-C-Uu;vRTd@#{3VO^)gk8f?DHv(YbM-kmdebDbl9)1zgD@3=P<*Ok90O%%mAc3{@j^N9A|1m zU|0ua7=RJovWOn+yfpmNN7a{684GUk0lPldJmhJdG;slpNsDYsVfXo5e6LDiSw8iU zV%Z3tcR4kNtA8$y6}tObj%$}o@hgiKb9s27=-bsPBok<5AJDP zt)E@elE#sJY4lE7+jy9Wey^_yy(C!SP_#<}vmliDyU5h7KAcQ~Rf1aeF_~3m)pO~x zPR~**FbOQd=_|uH1>ki|(Ue3PwjR}lb>Wd_;%C!^!{@oHDR+girrL1>U9qebo)rw4 zmyTs(LBQ-6yy(Om`mVZ#2cHKP)v&YJHrrr7AUnuL|QJ>uN|D-6gB=_239`pywbFntxL^zNi!fcizqT zaHmv+^LM)5q0hH|dU`O7lRzpUkKI)hp{%<<@S2FC19X14oC0I4+ed#l#6@N6ob_uj z5VTRjamHhCzQ=Ts5}`gCu=>GZKAS*YgY3g4T-SJbBNul4(e$jCjN30MFcAxWBUGqg zaQ?D%=6LkBaDi6!vxgr+81rIx65II?-ck#3Q*9tgI*2#g-^Fh_WGJ5}sjrg!ZeH z6zZvb9I-7pO($oHC(PU-kfzagr@T}d*c0Qj=PD)c8Z$WON#+h&i|TL$t0-!3es6*cG%fDaTF{&hnieT)u$DC^?H#v0u84GOHIW?IZm?0YgpBEs%g zdrWSVWmv;fUsvZ$Z>HYn3$;+mYKOLmb`~M-uyLPmi8fzFAar5 z&7xK-W?er7cwF0$>^sry9F4;GFQMuHi7{9`YLmPCv$~Bn>mjb+Lq&YIN08qy*vdbh z#|fpf0Y_ZE767!oNpo*D4d?G>+p6DIxKrU*2Z703b8u)x8dz1*b41UHZ% z9PDr*=+L6ex@MzwBcMSNVg(sc)cZH;{a+3Z-bs=v9z1jCws*N)Q2a&K9eeGhJ554C zm)G#*b5xK1%ZYF}(U}R@tmo(V<}Nx^uG`A^TSf9)K%cC(%P9=9QD}#i#s=`%TZTgE z6clkUOkc*8Fx5U%)81DXH;2w+{766f2EonK3ol)r0xsme$sY%XuaV;{9t#l^!XPCw z<-%F7yUq_Ai9T8h@f!H2H3bhasoO&1wB4-%9h6Hywk>0u5#Ja1WGC`SfZn83kCgeU z>mCKiXu#orygqchhBw{Im;9?ec|{bqqcsZNeb2|DPWl%S$wrcwN@fN`6{zn!&d}}m z^*v}b2_X=hwO|B#_Qk5^Ppa$KSk8&8AWBSJ!v2J}%Wn`#NeH*(8pN?Mq9S|Ml$Kus z0ateaI_N58f?yAs8lerYthWDmo^!b!uv83nEo;06k_`}AYm|c-X5iv=@0i&FV{ygB zoC1i9@)bS1WU}D{a&B4xCS5qaX%AB_=KOj z>WUzu_d0$l@PPcRIZ3S6{C0-6=UzV>B7tXn622EgLz1c5L!CkG z@r)#bxd8wm0`@9QU&}9j|F?y!59pvpQ@m5yNn$f9@0J6w0^Q(*5!AR|CEzMS{?f3z z^c}A4Bk7#}H=PaFj}m{e$kJV~;AlAS{uS~fMBLi&O(!_(iSTKU^RQ19yeUZv)& zh}X}vVjulv=2?LL6jrH>)qnRHsN|z0xaunnm%skf;0(Cp9MH;D&=x7D%KzE}SlZfD zJHv&tk(ke;a3xSaa(_!%`Db}Y`AaDg(9pFD-31qA5~%_PzHq_(c=QXmf5L2HLiL~$ zD!!stD%jiAvlaC$M5=s%^I-}9%)3YtCOhjw{_)QeW)Cn6wPO0x;Dpat4gQ}&s^{me zc4|>_@nCEBGSm2ILsJL&;ld$AJ|AdsRm+5S_`Z%SFCp#me;=mo1iy|7X_Nw-fIS0h$ ziuEq&$XL!$e~5dxeRv0m)@LCV$&E3Pp>fZpA+9vd;_Rp4ezD?ED#!6m+`^ZD1<~l> zkPZzwi`!I1DY13kAIRq`oo5WmgdB8!>r4jlBXRqr3eP-6w)&;DzlIQ(DLX&DTstC8 zj%E882pbA+l$oGItmdcAI=gh=JfkLe8jIBbb!DmV>XO4cr^ym#ql&Bi22MVlXPa^3 zR0qC4i;&4IbIRj;ce`+9Zgq`|yF~eI9|L37FD-5$PUQhrT zQT|^I=SXTM!Wa^gy5>d@0rt9}UgFgz-~5mpl_4*iy<0edbk=>F7VhJm`%zr~G|c*m z?o*9lB>Dp&FK^Dn6_Z1R8nO?bR8{AqrovCxk2n0fBhs4hO|>e@{g3sehTNRhl3$r{ zur4;^mSGllbqbo?b*VK_UGkabC=9qkO4{g*_eg|uwD0EC;f%vfI zmFE%*Mm*+apOi7dU>|4avZ-7Gycsj5Eie-8l4|hr_p9En=bJ1Qbp{bwFPp^B5{@iB zZe=eFb4w4b;L3@8JN_v~i5EbsD%1d9!>#d=T17YRhO%o%(S`g`31FI<))&Z5_|G=# zFpv~0zAL^uAZz6K>ok=vWaETX+!}FbO)ef(i3owz@XG18L-k8ikD>gsVxqw{wfn0B zh<+yLT6@)Qtr9j*WrX51p^Zd%fAEC#ir5ZLQIQF>)%Iq%qPh%aoqO}Q1-Vt?No3t? zDEh!gyQl)P@W;D91?CT-|3?2<&bvxKw62=1^m;sTz5{>#BslscP_MfY?HPp&U%Cki za=AW@zr|wF5$@lCr7Mp>Q91Hmw2DRT8ghv+7O04WBS*RR1FU}aBpz7Bjd4Bc$oM%+2N-i+_PQu!KKm+6K$7edng$g>`dnL z{og$2zM34$UtuD4t#c&#t>opIG+tFVsoh3{_METmh$$+ubz-#Y^yxqWMzTW*YUA(; zoyBtLfb6XIjCu}AQiN`pzEXrMbis9-!GiZdgIj*88tsoStEodB9E>?1I6EdlVln)4 zCQx-)0laK=nieuKd4DRbU%}0EX@(oK5D$1fF z*}?;BK0JsB1>!5yrx!H|hd{_nWI{ET>`K!>SI`#G^{Y2y@*A7~(D~uaz2zS&sRW(<}`5e3l z8134Pio|tCh8%4Z$A29%yWN1S?M5JR=X$Jglj;$y5HI6Pt}V{13_y_$+RWjlnbp^~ z54Z5~5N%dxj{W#M##9hUepZvUM)(i{oNRBg)T0Fd)b)+)gSxVp0c!St`u_8PCNCkt z*uzW3T1URI$U`SM##=#HMI&pH;+0jDZx=?${?UzpU!F$+vm_vvhnO5PxRZfqP;S># z*KWf&HK8{GK2tYbSGE04Ohk!(@PMMAH`51s^$Tz*J#7&l&ef|<9f0iUn(EEp z5GO&Xe*p5(FOzX=Z^Xm0uJmN9yS6rt@K;v`-B&UPXkD`j)yx>xlO7z>=^!Do`1I#n zS+Ao4yPPhn60Nn5deA{1=g`b|pI{~XBjzxOms29;&AonZUi&o5Tyu*&O+~99kIuMI zhgKzWYjx%-J74ke77m4(zzsj#2>4xaZQX%qW%jfGPEsFUU7hb}3URv|8cKnBO)eM= zUn3L-PZB3fQ$Z@Fn|A*r?`OyM7|(}Jbg&@dm`gDbNJ={ArHe5Ab32sOH+UF;!A>U8 ziGf=p$NS2W)1&&QzY*(fLMc609ipo@7WSYZSbrwHy9kY2Jho`rAFwH)giU^h7+1I< zM#jHPW(MOj?!8;(;-siPpf?oWcAGSV{ZsN3*C)EeSuXdU#TTF2c>G9L{3`(9hoIdI zGe6wik7N^7X(X-YT}$Iqlje!ie*>UiwO|^^uBOndpBC8<{u5?3G0`?6x(B(@uV77p znQLU4OFNVVQBp)KZS`}*u#PcK=Q$YW@T4A4J#42=uyHO`+3UB&*`$IX-{pjM`cpS@ zr~n{BNg*L2i_*;Vi#4h-`?meClsoBjK_DRc0&*2vXwV<^)z;l`LPZQ#<7~To*2NMY zwQ2+n;b!srnd7^nhk({7Oa)i7G)fv+TMU5_Ss?&)WsROgwEb~$5i z2`lr-e^1H`EWWm(e5Xux9N8#5V+~d_GWErdL5vEX*nXRJEF{rr;%x%dP02oQZ z^N<50SY(88NqW9VMst(@w>ON;fyEG$q;JAZyqsb};XCyI4_Pe#WwES;JW!aY_#$8` ziN}E*v!GOTx;Q^^QfGwOwYH%qb7CD@Yzw`dr?*mi8CTpGC0pEQ4)-Fw%xqSSR!?AT%H z)&aA?z$5n^7CG@ug01=3slMvSFBdr6)`&kY3()2(|ahvt9EcmS8T82=j0 z*JTfM8mysAJga%v+^Gr~8U%^KJ}a(h*J2u5>wU)Hv@on1krJ5H;>hger@Zta{a;= z4LJ+_)Msi0(&JeXv@&L6K(|J(a5MqrEPCrd8sNs9mQv5H$A6P824sI&k@(fL``0ku zul)Lz+19mP-rJ#QyPlz=IWu3lvg=PJ-UyIj0_c0yD^ZU!3nAQ(x<)T$75&aJQkxp@>r2%O7d}m z#g>sS)4o7afs4)!W2HBsXiy|vU;a}p?OKe)G=J5XX{-E2Go8=tl#KXW!MEOAHzD~PBo?JPt|&O@w-CQy=G@if zPj805z1dkC_!V1|ep>)rWtDy$T8PV19Yrj5Qu9k#?k=efk zi_fO;9h489{ph!|Pl>8$2~JG+ze?tCx)DLjw=JY)=OGvtYh_*Y`sOm=8P517%Pr3<(mGB^WSf;W4EtMur zDTS}_wFoo?pE}0fqDkt|L5?4(q6&qoecjg%v zhA9pX=Q{Z;7L*FpqF$2Nu+eZ7-#H{P_szyV0SGynwUzTzed1mO5&vRv?)Jvss~v(5 z7}~yo(kD?XB+QOU9I5WFzrhr?4-Jk9=bRo3<&dZ3CIo29I2t96qsi<5fuMpdMV#3^@E=G+l8S z(J)KY#cNgVZs687AK6*;z0eyHq8`0rEv40$Vb}%n?A21!Kvec3)v9+GCK;z>A%@4) zD!&%dUgK4p?JG!bIlMRhB)yqPCa08ly3oifty$VuKLsEq2atyNG%LtzU^m*uiu*4d zdXu;0Y&T7JKi9<#n7w;X4qG>m(Q0m*{p_4 zUV9emMD}4=@{A0nGz!xc!=~)wM)8{_tgN>j8d^FXep(OB2T2BPQ1bz87M6^XS$Edf zZxdJeM$>#%<;(;)Yo;&+L8+9hLy{uWY52 z(FDnpQV}V7oNPKIo|Q;?qwCkv$AJqa%zm3zb`Gv<$4S=0NF8A`_51LGz=kvNBh~7- zX7nkt;`k&F^$wBczps>bCX^_;ES{(Hpw26qL&dX9yGm;Yxx|-%Q8GDxL8XaRE+2q!qmK9Yp7RZlFZ4b@+=affEfiiV_ zM9%j2gtv2s>O0UPsn#WaA3AQ}Ei!xf!UM?2jY_6H_M>|Q;Ua~9Hou&MmgR7$f&ztT zBWa35uPwUla4s%&oe_Fc<^~I(v1Q_OjXjzi$Tt#@1haRKjETmmANa6SsGFjQBq(~C zhd(Mf1W83%D*_9=A(N~aP7S{@0kb4iN7v~%pn#bhcqXA|w-l49y|sjcZca{$ORT+6 z{Zs@}S0Sv@QX&_TJ>u02Pi)99N`0fGMo930JdBI8Yp~eyLB=Wf`Oj3i>VK7+g}j$c zQ5jOdjiE3Q9jE>~anMy63l=+8OGR+%TWIv$$QSeAHU-c<1r@|Pl+!thuBIGRDrRb( zCmcLC#EfBFmgOxIzoSl1&r)$>V@s!Fu{>UU*|K?ob4JwkX zNX(qVcX#crUo6tZlGc=QeqRY)BW@BG0ckggTzdu^u+NdPwJXj5WfAoBL)Rks)ALkx ziRwElj$n`l26HusUB>g;W^<@GRT32wi_l@bA1jcZx-ks9f0cpk?8u#*_ z8lWX@nO|JhuAmysAd|+DX7j~DLq!9L8z+60O_p$r@VnF9>pRui7#?{bx1j1KhALC+ zhxt)6d2j2LRue)MY4QQ{u;QnB>U0Zv%ZCaQHDMKFsFr4GvQ9o1=!N`L;30&$Q;KuN zmYhUY0J%YgHEs@6ZaS#wyS$%{XaAfPr9mS5b^NnvZIV380rV|YzZsVJ$Ec{xv1hQP zi#vb6r#Bh0TitWRk+qowCaTfli=E|R)tdK-s*g-mW3gsWM65Vc$cg=~OVLa>dkG3_ zu5a5@Z8Fbra{MF$_;19GYFyX!=-5N16#6v3eq5NXLB=%BeDiGz-rJc@Ib2c!^A-3m zKtqo;6CTKTPv%xXD=!#n+B8$ogmO{Ey^)#3=fllG+pJlE->46?C4N}2$hLgHk>o}@t!`ZWwGgKYJ_2aB-||b!9qm?d$P+1uJqkC>bQ^vGgBk3^0Z?itfG@%0 zru*E7k>!*XyR}le4lAUbej&x7hfeLvl-f5^Nk#}sc5TOC$27Zg=q?4P7|PYzj%+tk zJ`uIyvCWO52>YPy9O4`)Q_m|1bKCEOQo~w#cj=5OXXKSHf+#HY%f98Lceu%{=#Z3x z$b9LqbGMxp4D$H5S3Q2(%9|3jB?#7=HdImLT+(eKx^yBu(}}5aT8q4pAqZANv)@)D z0GMR~29+CZUsz_g9thhQXum%eEUrm&qJ>sFVt}xBZe8kS04PWMP$oU!v&NXcS6$JG z<5LQIPjgZODpHUK>HNokuZ9GgVVHR~ImfI@HlAl;-DhJUN3kb!sRo))nP}IFI87-j z^?&TMTZuE&3e|c3Wc(qxE_)b4RNx`6uLTbl0kC9w|DA zSx|hzm9X;DNP;~(bo8N+bNo?(vBO&Zk)KyIO+0+_MJZn7l;2BoWXmx&a%tv`&;(t8 z`OQZ5=~KOmB75C+H~N|(r3tXq@)Cq}Tz30C$oVFP*sm53smIg(DY0_97J}fD=Flih z7Ne&xdjsGD(pMYeVtxAk8f44>*wlQtG%6O6PLg;#QFxb7+mSZ_=&;YdvjyaQj_>;c{7@5T zuBa#2zeF*C~$hLAfd}DxjxKuzbQg1^f;@CIIDwBOMqN<7VFz-n&KMd>N9G&z^Pb!yk$+#zt=~p%- zXZA)&@xl^<&ESjT`NfW{>fS;2jKI#}fVp@>=&cZW=7 ztlHaG@Buq#v3S>!+%(J}Fqy}GV6i95%ORw1172qd6_i;S3wg? zxxgNkC02Z+Lh4H0dmB~XtL1~%P)PG87`C#lKT4w@b}Bes6;GHub}{B$15k_OyyEDv z&~CCx5|NV7#$(uuulkNTISwjf6}Tm!C@4OpNTRxydBjT+e#~rhOpC%Y@z&S$ith3X z=><45=HI1fZq6F!XhIQlQgQ?1rBkVSfw72}wVCZnaI>_!1*+Id&R#zXh6}_KSscL$ zf7H&=;se)VurT$y;xRImigB@B5I3`YZ4H<#Gs=$m2~zwPy~&TOwfKV^_44gw#fav` zLVfsilrYqsF$L2s92I9cM!e0T9peQ+UP8qeu>)Yf6TAUeksK|7 z@h$GHsKy+jcgo;KmF;G_+YhMi?IAt6R16`m%R(`#CM7mxK>g-e6Co*LRyq7QUp|=R zD&fpg$et_tVa>y`S}KKvGb(B}YR|lo@|~JCu6uI^l@y4E^!-48m4ae;xkZsX+MfIm zIRvN!P9ww}KB6lc?Hwh6zOvynhrDN?YTV&8XjY1K4?&B3rhD2RCVrcZ@N2caZ5KY< zLB?Y!qny@aZHdSw_Q@mp-r)u=MdCTno!luprW8~ULx`SK(XqH!1R(=vzH^xja%~4? z&~UBEml}gqF0#83nfs-@ktqx?ZL%Q#O{E!vRfw?*HuDph%+*VhKV=hS&2%jPguw6f z^sE#x+$$csD4>(2WtiVseH__yuJ?T|cT2U?>s}jL634B;vFwv8O=Rg_ zjEl;~v!A!H3l)WeS?cOAYj;4_`%?*oauo86QTVy`pasF$P|Gp+ z_0-?)`^9#FC=>rbiY){GBYtvWRbLL@&6kLX0W=G>{_~oiU{K1+9}(cH*}-^QtDdHe z6b+-zpDknSWwit1lp?fzr=5xpuAkW9-q?!n9mv=S_##PP<-HiEnJMaYE3%O*ucpDz zBrtIDecGGD4)axxZHWLS0;;UJ40XNfL3e4O4AvOTw=BlxC&mD6o!S7B+3ItG8_FpD zBHBM=}qRd`m z>?uxLjfe0;7$~U0Q1E8~^&z9B6H|U4TaO=*i>n*2-I?13w#9q%c^?S67bC1mo{`?m zW!N(Jfdp;h_Z!{=tklbTMA4;c(ZKExTWLEA)Cx10>M=iup)Tq>)v+bt-WY1e%~HNG z8RBBG+uu^e0m%HKpZ&cDTMmP}w52=H&$vc`>5 zPqXwDQ*eDoRYTU714mv7F9>KMyf(O!HJzqCK%H_Wkd#8XE2!%46L`eJI1?B*Un>Dd z)FscG=BPq=QQ{3%@K_@~(PSDez#1YyTe1fdr)2g#Xq1mUZktWghYof7S7s0+TOYLe zw`kS+sU%${q=G1_OT}lv)AqTF3}E7sU{gKX)J!tWph#t@!o$xWEJwAAP7!*VK8JN{ zI?LY%RCXxWfNoom7(+ttTe)Eodjfy+h599I` z$y}qPlh?HvE4{7L?N`$yO8zrWI7|uycnb!1Nd`8kj>FB6m9>@I#23k(XM*&M{ya{j z=U+lic2~^daA?1RY;ZBf?PA^Zykr!OuBs`OvpjYBOC3Ywp7rLC82_aofo5X^s940k z^^=Cxn@aO){`trsg=T6)FBGb+jYEKu4a6vI315Z?fGSDTrB{1i;?Gkmk zfON6$9W!-n2BzL=mJiXuW7rFmdb&@hPzWrbCM=Z#qC4=uU%Z7lv~4ZV25R@e`Y{kz z83~8|-PT}YFHVISXQ2R1`%W?UDxvw=B&!oYDIkw;v4zM`f90o`@;i6BQ{NqRvA{~q zfe~Skjk6#o6Fb|bF0HLY0IKBt6F6`z8m9JHtNbtgr(m%zhwrDewg zaYZZ()LrIa7%IF|>hf`v*mQ{nt@^&j8{J&!Da60Rvsnh4Q0C=2Io`E+yeTOC{tstJ zaNaliex=2PNX&u7B|mT@J{vCoBsK&9T64JoyFJDgx4(VD6li12H->4G|2c}l-i*f-oHDbbv zm0^B2APie^ql7`6CjSRja4boDX+WLmkl}TmNLFD+M5(*tspKh2v~r37My6Mz?rfKW zzk)-p>y(Z0dZiNZSgLkTM;AqAYv;XenQ!ypptTCWWg!GCnb)EI@(Op829yt0V4?NJ z-&8;<4am;?&5&Wq)qz7pqT@m{9QYQaM;J%vG3|OSm>}2itmwPN6#Qc$$9Xk`D*CZ0O7bD)}z; zk~IfsWWy3eY9wjJTw^@B*PK-Qq*Q!$RHiz90**4{_9fe|fZx7abad-)A0Fx+Rc9B% zA}19LNKoN%duvK&F(SH-s$`vP-xE~lJu!?V zW~1EHDXm3p>m1eZd`sHGLau^?@l-ll)R{QBKGw;-5}7B_YsEr5%WOT$VAiSJaH!pg zq23NP5O)+(rxE*?hsw%VBXf9u2Cl*%LXKQ=EOi}fg7>*OCzkxty#*u69h6j?yY&% zI-REOT)sI^%M{k(JH-BCz!((Wm%E+$jCB}kqb*Z)gsx$I<{m@fIHuE4-wdAx_@Bvp zPy-$4UJ0RkLe_D@s5-Dy6&jqzrpELRX&LDx8xModM3FBF>4mgl8ITX6!kV1QBtODz z9i3T`6ss?*gY&~fm+15bHni;k@Ua)G8(Q~U8lVG5&oKFJm95SWVJhM8GMxi>N{abd zp}pdQ?O8@2+~!prBezs+R?x3Q;J8I)VuJynJCvIY-|0$(G1c zXVbf~vIVghj_9>CXAH-WM~tmHLXQ_tqLRM4QItudJe>3)W}EMYt5e zSp|A9k^kwh8M;U_ptKrU%;U48#a+Q(b|v-_TT7+^&fA+(8HXGkT;_{?kV37-KMPcw ztrAca|H6afP7xH?E;%*X2c~Pd)>aCEw7HA^F!i~Fi*2ABSKu=6zX~QqTLD$cdf$JCON+K(i?-w&*HK2hBGR@xm%m<{hCphXAFmi6SPUD; z)c`@+wZ@v?Qoo=Bos-kttep^rwAbRwJ;qr*k6bpdjg#W-j=e*39^MJLauB&NT99Fn5qx5N8iu6@sON~Q{N z@(h=?=7!XpbnK4xq^dEQ(~Qj%Ulr5zk>pXAa=5dT>?%1PcY3eN2nDx2)gk5A98ARV zHzGGRQB5R4L;v2i*m1j?tcXz7*X3m9ktP_3#;$b(EcRyN#JWBllG$2S4Fq=90o4Sx z)Y+by)F%pwSa695SUVtH?!{4aNjnRkC1zUPKU}6&3q8#2x>W9$hMouPtu`=q4_Owo zno^(_fo2vwuENSOU43!s?hnOseVJ`-$f&)SeG=9wLN4O?LrP>rNP>A)HbB-OQ-=`~ z<%Ry{T^8tV!d@C#byJ)_#!qBVZZ!@+Bjzj{uD7jW0}9)K7N_uj4^U?{MAflOERXas zGV#sfa2n%e1feLr4N|Qx(F_#2!@3Y@|H7nLm@cst{WO-&jWP|!Gx24PRPN7d8bqXmzJM>!kX=dxQX_(AncEAn&lnt7VGi2pP54N{8hBN|*{MBjZXxjaIem2=;W zf4G|R7JyKczu{S5&`4nk0ls^98-8Zz)Mo-lRyzBx_!{t(&D` zZC9`1Lc#+xrZpR5G@KtW?6YWAjXSey*e3}$q2AKTNnrs0SSR1+QrCkgMK!7$VoEKg-C{RWVTMsu4~3OT z2n1CxCSZp`_@}9aVF3d&eyZd}l8~luem}*!s%82{H-B`gk1d~UYG;^zBW{@ZxFo+$T2cP20VEqKiLWHb>aFF#isMONTW$Z{HKY|AiolHo?Z?1eMLA1&xq!_3GpQ-}>z9z$x-v zx75nsB!um@I=v&XRS&x)H=bJZPWt>|N|0%}^oi8v)xG?AWKpXk+bHC-Z10!;Q!r(w1}=GVA4Rzl z6{6}wC%kJ3ZKl-XXeU*?+~v(oB4|)7PNJV$1AeJ_Kb-@M3%zB{UNl236tdJuk$Ge}O7 zr53N^Dl_0&HU7^JwUFHo|qn56v)iC795)e(YgcxPGMWgh>|2YM&N0BrNua>_*vgmGXOB!hHWu~?shZO$oWEbe; z5I@h6dlI?msw6st^^d}xx-9M7aO6w?m5}}c>c6&Q?{J^%yup0Wg^%tVlsu{K_BD+R ze)uksG&h30PVV9SsfGG(ZK+25^4%l24To{=$$R2tm|U=^?mJo!3nId3@-Rhvf;e3~ zkGU45PlkXHf(#Ei8=w9D&8D)7V@J=TjLzNIu(lCkWm!cHezunqqm%ZNV96^RHw;0; z`y6z*9!3!t;RtbA{0t6EF@>cXA?%5u5;&WF-g&<~qfZoQLpb-6P| znsgu!Y`#a{Pn$QU%T#L*HW}E z(8)63%n9K0MeuhN3_)I|`4TZXf$YPG%b?P@u`C4)3L(FcPM-in7(lm z_^_kVq`0*W(PZ)f6++=7h@*y=sGNkQo2aZz^Uuuq7K`m`i7BB-$g%b>s1{Z4uiZ(E zwm~R3GJrjLwY|yIz<-#iC57BYVaUR*z(^!twfP=IZ3qZ|D0vigLc4Wqj5I)vN0SG@ z>&czK@*2Tj;?zkux;fF}PoZ$St2v%(w~GKq-9-XVTy#%}s_Btg)pCe%+Rc*p7|5|e z@SRq7&5;7V1L)m6jBYteJXUy;y@7=c<{|r+5t9RA0Ne(Q1fMFkuuB)6x$l%ex`69L zfi6-8QSvXwVi``oXR{;pi7f(_MgB>G_hYA@-yaa;Y6RL&$lU91ZDb;!^eD2y?_#Kr zCizQ8D3`Oc1K;8PlcxSHFXSc@##yawHW>ta zVU(1m@r%2MB$V%V$;dzv7{5b-zqnBkfh)zBUA7t2JJ0|qb^^-PrzGe$Mz|Cw7qo8N zFQZrVKVH&zw~3{@TWG=}t&oOkG zh25ftMOFwQH(2FYAlJRva`xr<^47!vp-wvFR1=h6o%hZD-ndSB9@-D|p#PN&EA% z&#y5?&@FL2?+yzRIpW0*yJaq>t#Rpk@y&+LZ8#ajw+7kLE2Vi&K^22B$mUiax{ z#$q1bWFblu%qiHp&QFWB`~DQ2c!gvPIId=`p3oO|rPF8Us_m%ao7dL&@rc7PM;Ppu zS}j@NJYm69fSy_w9^DjrMalS_7)SId(_emwi8wF?I)y33)X$cg6R@n>0c?0H8e+e9 zI&LR#(|2zY-3cD~GWE29cpZ&2>>m9==Ri-T8&JzR_9&xIk$dFBoai>wyMbv0jm7EgNj!rQ7jTHj4- zOpn$KFth}o8bH+c3aVs0|L83Cq7<_9j)u0`aZk5gg{tT@P@t!2%;vQ7+G1PO^6yP2 z<9{zgLkoymmK4P2u&+?B0N6nb@1s0&a7wG+?!jTB5dng_DU#mWDH}h0FuIpA@;!No zzQEkA)~cmRDA#(vxumC1HJ?gI4ov1g(`bOy&;ON@9BzE|16g;E8Kzn1l-s4TV>-0+ ze?PovJb<|kWB2B8LAW228Gl)LZ!yhWe7-*vG)dyqBqXO&w`ox%Hrek_BzObRUGKk@Lyyn9QeRMJ%=**8yEiq2_g`esKI+&{ zUf|YZBI4t!$e+;}?R2@~d5;NK*#MI3dCGKS@_pQ3DpJF+u+MW5JBXUK6>!$dDk#bo{^P_7C}jBHKVlLp z*b5nUIDh^|;bh(Jv`Ym)zJrL-WA=fBs%1(M^9nHeh(7$~ssB?CMieVFHB!F)%>-79jMHbW39-$$#&}{O z1JxDFX<$;9UL#5V6y9URZ}gRGXO?n`MA_r&nROhD@z8Pg;q)M3S$e`6+J&CaP1hv+%q9mQGH)U=GJPIV9sE3Q z>T4UaO$r5m*6<_xaOEO!)xI9?;~cX5{tV+cmjjRS*@Q?L27Bli%+6j^4eSI#?sB1c z+}5>$l?!a=6L}KLEgzN*vy!9z+3qOYk3Uk?Xyd!mM|jS9e=Ia}wq{ zLL<6~?D~ax57>PBXa)CqolJK$bo{vHJ4Q5Vns6Z(CIeVN>$3F0z&`x@= zR*wpLF$jkf;+iQTION1ny(%D6>wli=EN+&i;VYQ5wU=^Psof`(e`j9`oB9-b&9-v6 zH?OdK%Ypt3_Q=5D6c5VvAE~GUrax_L{WIFG=__GFhz=rDUjRHV{Yan?2i|-n23wad zIe2mP=ZEF;AJSM3yo?>U5SZKn_t3BPbLR!4(t~|b$6~y5o zZ$ciWYMh=R`3Kz31{^GS@OXY{9=iO+VUH55xRDMnk&g|Mlfvc1Mqn0|&eX-J#OBNz zuAK$mijfFF{OKFtS_ohR)bwgFpps_RzYf)&VlcsC#ue1ndVfDh$YGzM8y|xUsDI@t zgm!l3|9~Z@g}APJDLvrZzaB!kIRP~1uZ1qe(TU6?T3c)o7i||TaJ3`!yJ|zg*=w^~ zIt!S|{-qdEc8f;op(RI$yAn85aFg<92e)Pr8_?PY_=M?QtOpkx{FNs@AB%&AElp~8 zGIfPPN=P(u$j01(^-Ev%e;%Ltt|Z_7&;-tPZ9AYqvASU}-`CjA0FGCgZ{Nb3cnfw< zgL00nHi`)i_vQ=nZ0@p!IvM{feKSk=i8pYR&~!E(2!DHVh{O1nWk!S=&eMWIOVJOw zxbHi>2FBGB*jN`|dH5OTY=#43(jwfpkzrib=`_?uqj*@A!f?(oNKih4YTQYCeXOJvd3mNZpc~PtNfEU0e|q9gWMAbXW*N2w=d;s?wMcEthbT4weKa17GnRqU4QyhE7^dtIAzwJv`- zIm04k%cv?M?!`vV)5o<%kynGBwvEbZG>dx|#*q@BWP;btlN zXqJwE04=VRqCYju&bWJ^>}d$7Bq4dSsb|GEw_>j6n@PY|U%Li1crN9rqHX=RUhbb% zaS$<5lVpSm!gn3y@HZ4CyXq0`I^%!ffyriW{YN^_g2GIe+F~_drnar}XnEtq-?P(u ze{0i$M0La(Uc)1CrTXkf0u00&Mf}(XYP~l>vQV0&lcg3M;I@mSE544#$Hb5b=U7L7SJ)uh>Fx2DorJtIV+CU5{+bJ<=SA`FU=x6 zLNvjcEKeW8(Kn?-a|RYw=Yls^Z-dDEUz@nTgFFyk(byoADQ{2IHT-tL0wD};Yl)e? zuTPh+P}W$SG~vh1z^CV8aeNi!kx;)A#7X07D9Mip?Ah?aW-viHj>~+xo@$uZo3aFl zm1H1z9(k?mKYw_iJ)ZkZOx3@c$0U}jl>)m~F}7`&LDBLM@YBX1-8u&4NXaXQJF7wg zUqNHI1<2@$)ce;Tn8)Wi9iz`MM%O=rAvf&yvQ^;8(5kAS0s>r~OQwChu{(S>R!ogT=qh9lCugeEB~3tBa$ zi+;?O(zSfvz}V%^xuE^J4|uTi@Vu$vv*@HVjk>mm>Po5Ww9dhzonsjwR3;OWL226+ zp_IrzO3l;Bx~E?7{l}Q+xcb3K>{%uPF=mjg&AYI>w$JuHT)w($yp`!~Vxw#~AHe*o7i#W0Wi~>6$a~Y#@)PHm-|Dz+%j45|&rXET63% z0MpCs9cC|EgFq14{&3h1ONQ~F<|{{*Y?_W>g#HtUTQJ}8h%xR@BZLYIbm-;=NtkM! zElos&ZMkd#pY+}W*sur!UZ+d9&*I#~tM79d!CeOgG*N3V$IdL`q^7B}V?q!w%_Ayo zlDhZsucX#KcnU_DgNTWtsjll|$eJoADddDFM`M3?KH?tn@)) zn{XuDX_RUTecePuP*GM6z=Q_4ww19{20ZpD9Xz8Vxf+dRHxbpsZ=~7354l9ys0mE< z!T1HCb~~=DKjYGcjKzSE`U#S)J%2?W!q*S3SA)ZPtkH_A*phn%TKtf-5^n!Q^ks6a zj=xo_lF_Fynq#k~?q6uy1GW^e-GLHmiG}MdFI6T9vo6M(jeQw}k_e^+;jm0z5-z{P zTWey03&M#Pj@a&m#%SX8>ZDp(cAfQp9;Gl7z^PM%C1+*mYU9EP?vo3QI@PYZ#}!8# zlY>>dcH1p3kRfdflc4PqrGUffcGRJ#AM;q(k+B&b7_?(Pba z3u_zw;|8}}5XsqpPTo#aiWt{2fQ>vc#2_CIzgvMZ=+jRtt4fEXHgAvqM0c$0B{`ak zK99hHI=7dWJsZTakU=0devNgOrX{&=*Trr{P-LOLC|nlCpWAr=u{Y_P1g8~Gr;cu~ zSUD!duT9YUx}%qzk}=I0QG6WC%*0eVYclNi`=&4wD{>BKi{+g~x;INX%}`Tb(z|gJ4rQSAR}|)Z)BV~<9+yuD1$k` zUh<}ByD=>_bm3z%gY47D8yb7FtMUenS#-e%C*3mD15~9vX9H5K(vi5wQ0)6l zGF6lX?k<8CTNVq44=XZ2xI0h2AR{5BAcb$f+)FyW;TStBeG7^t??Ezz)l44g5Z1+j z_IN$RuiRb6#t`dCZ7~}&X#DHzcvt2+TnbIz_mabJm7W)+A99%tk33;bbRF^65c2I{ z=jGt11^OhdEAG&BG%U?$Ma6K%Rby$AXxt+XOi>dPm9>vFx0Ff4wnfa+Rv^-%>*p4LiAw}vM!?9fp6SHKXh5BM5?)q z0Rz|aT`d?r9q_H8M-~^-0B~t_|pErUqKuO_B*6nuYs)89i zUWk%balF`n0@Grp9eyQ0t;dFsrSot;=ukjw8wGqU|AY?M`qJ$7A>j4nGEF;y`~s9U zYSgeFGwAXbJSbvDRKju6(JO1Of#UB9z2Z_}=>4ubLH%bgxNwxx-C?h8&r0I__?GZC zQ!E=cLYrCI=uZ)Sz!)g{Dzh6dr?&>vbG%pS)7NTj3JN_DlWW@^*Ze1COPL=hn}JU5 z)HQEZO>bdJGAv^{ZDfSJCjff;^o=AhrW*-{mH?Vj?)jskp$x|C5CF-Y%-9g6ohx2w zD=M9TxxSK^(%;|tfq-&otSjM;W6sRtl0idTRQo^!TJK*#=WZws(Xi$g%>_=1WU=Yi z7^DjIyiRAda%ehE^iw@hK5FbN+hPAO`O2t+cARFL5QR7uM_14+R2pdaZ`u*UTLfN zikb#`COoJD%{)Wm@BXp739h#;@c)U5;4w7jv1iL$F z9}Sc6d;cA5eRq&;PH3*^l`BQX+eHR!=@%0J>D9-Bb`kX+U*ylczD>j9QBYu{C}c4Z!UC*9T*TZ$$C`v;&T1yem^ zc?%I9(u0i|#cD`*hM$QDqJC_-&%Fg9ou;=T;wI#{m|07xz|&0In@kAQq_;RrC~G{u z*OGqJCj_JYw!D$&Y~g|`FDFDd*?ua(AOU+o0gJwdoF9qfd${#tkHMsFquTpWmKIr{ zSFi|T?z>q;ghkxn8<%n<>{nirvPqb{ZZQmUQ7u6 zNesNX>Jhc-umWEBlLQ6R%#2VRTA#6z>V9tNAa5ioN?F5@N!YOv{$%N-Dsl4Y%C6wp z7qxAyHBv@T6x)t@9|;cAN%=+4T9W6A5qAniT!IxJLa)md(0gviFGyi;17hXgV80+B zl zz;UVUHERWvs}%$*>z3EXKhgpARRW`9`}CcM$g32U5C6S0oN(#;+`M2R*d5e72UYxR zo3uKn2l>mFE)@i_#O59WMNvzGngVzXe_kSSYjH#c4=f;A`L6=oA(vsWqe#>P67cyF zV|yKii51f0SosgS=*vB&x;!R)#LJ=wR)9byo?Gv9$lmaht)fSWJA>EV!9aKZuL$(O5!n#s)vD;6r9DFR1%7r)xczoXIvBPhS#iVs4&ryf`+!`CubagKx>YnG-2re%;P=J{oH{@~70u$o|Yr1lx ze}tUXjMxww3`cKU;w`UJ#9a@^Y-rJDjj6&z%>L4wexR|sL@(S;RB?-gC|iB5&H;+OZydWHM4~J> z@@yCE?yBuncYf3^@g8e)5ii`=R0G5v;L~hJdgtEe(!53%Jkk|pN;*1X$VxA3O1aZ>_!#O`er{vyMYY{cUhfZL4*ArBL!ET^nI; z9F3A8fbEgoq@s=C`i|SO6!YMdg6SF26p!Bh7vH@;sxttrqDS0gyrqg zW;scijMm$8Eb+x!yFWC|z*hkn6beB0cISX8(;E~T>JJ?(u(fcwB zU%T32f6hvS&C*_vq6dTQn264bT72p7~xeB;N}_Q9$h3bLi_mJ12(#DX#QBi=BR>sw2SS5|lbUw{9o2sn(0 z8P=rz(2(hZPt7NTSP-FoU$69F#iT`Ft=s+74YiklET}3cHG0Ap&!yd*#(0BmUhx9@&9m1JDJ zd`0Q#g^%Q?Ds3p6m!Jwn;`4o?nUM%8{e^n|&~ooI_CNp)be_jA=>EG@xJK`@%Ul-i zyq{W!hTT3TngPm)QeDC_o|S%Qz6x)(Y4W+)!#xUwVMvzak08z+E!K1fW=_O2DwhX7Fj4 zN-{h|S{uA9#M|5Irmg4)Fp{Ktghc)`g(ONZEcVgMe!`FQRiqOX{>xNMc0;xcq{sP^ z5OQcvw1Wm28gFgbBE#{1O0C4ys}z}=Nxxcqki5f7+cWTcwvoiU_amAi=)Hp^9N-pD zAE5a-cnu{7l-WVuKp=!$XwXh@(`pni;vbzr7S5q8hJXJtwXT2dRNnS0cx&HeR)BJv zLbln%O>UB55BWB@_Oz!CxRTIqQtJ~$&s{)2AfWE;GeaXd{rPc zE7%&0_>tkf&Gvwjoi7dTKbq6g834O<5n>&r!Ec|=~u==c~~ax;g3`^BmO2V`;ZZ~cwxM^EdTYs{dqR14HbA^f=|>4 zzk3bylIcXB8>mA6l;o3=2U-1oxBbb}JaZ|!VzKR^uFahf6Z1fWSDls1#~)A!kE7VV z4Q#gto|apCHD6U-9{-DZje{oSB`a6|$yd;&zr}s~7n7xH$9fP~*EK8E$bo?6lqU{4 z2dB)-o|xf9>=U?S|HB2zedd#leSn2c<`Scn=#|D3ZPiFt=j4qM#uFzxN~Ek5*P4=~ zOr>6F-oXE?s_-wA;$VdOHH+TZxMy4-kzJgyRryZT_0a@h7>C>4HZl2;La}i}eTnnW ziTq|6=?|X|*c)VoX8Au?F?dq@x0R00H}6;BNL~74<5dTY$=!9t9i-->GKpg|QZoQ^ z@err^Cs2WV{bvq9a8bSH+)8!utJLhso!ISRIGhIbMfi*{pxJt#TZUV`>_k{SUSVZt zEv2^p;}76gwMZH^^`yB2KBEKpd<`3wKlXomS9)pKR5aOp4Cx7Y?5e^jl~5V?m}o2iNTfcFJTJ zf-XE`PHXrD?(*fezi=zuxt@u@0Z%n0F|2~y%ZrCSV!^oG1}P}F+qT3p8m%K7^~jp{ zB=J=AVK_#d;rZGtnXG~cBMJi;W-(O35Vtp9MQ4!gekgTw9NmBM+9+D9tM}WW z&<-q|FMl1S6bn!|FSyApO^RKT!lZ{pAlWe${h3p^yCS9T)t-YUS?m1=(9 zeVD~AOuSlt+jC9VH?_{Tq0XG^F!y@E;-oy11|t*fB)X2|59W>dm;UI5O+6A<&B9L0 zNu<%+(@AHvBmdUIVYUf~+Cv&RU2!vJ&``=gt{WnU&1m1vrJ3IUXGBIMXnJ9okFB~6 zzS{2_2Y(MP`n^ZVj=ZtLY<}-&6&9tgvJx1%p$x(t@pP$0*)Jg~vRKqkB^6@AHJsg^%6b6x z?w!yw*cwVX5oJb~pj41RS0FOJ0IVCo!B%>6mu0Ck5>BT~{t_q@lVGIK8ddU7the+V z5>mk8LUKkf*fPh06|mHfrnul(hAxGA-t?8%5V1jImt`CeCwnB+-C@l7%+(A%8BgpT z6(yJVxjF$-o%=v>4vY-KO7?vPmLywqPbPl<6mH3pwg0m<%t!3PVzOExT!Nq@eL zNPuvs#GrQUeQ=8rboX`<=mk!ONS(iTw}|5+^{T{QE7{a?9^8dmBlH^!xG_v_(AoWV z!NQ8@h*4>WO6qV?CF23ufg(C=1lFs$DFf+e*{tSkw!Q>=weoIlqu^|L zkJLow9sxUk0)g@*Dz7RY)N+XyK5xPz_ae{Yv7Zg(CuX5HGN|*@v1k-DK5g ziHVPxjPNoGI!ae~u)W~+k-2vF9w8uXF%Xwq-7hm#<6c@WOaa-!_iia^oh}0I3n!*e zk_>}jG`4cnO~|+T5He6NfXAEY@)<%vHucUl2175lCD6pz~oX zL7iCAIoLXbN9h&KvGGfda0{y?pY-jumio_<3d z5(;+QQ1{;^ugfa|`Uz%!+nEM7pRp0>%o6{2of}xR_$JJ#-v2pv9s{_?u{ow+L5H zp%{$nLjjCzXc&icDvMo*<>}vH(r!zsX4B2~($3v1%k!t^?kabU21nwR>T(Ck7@mh# zO!eVFY^g81M<|xb+Ocl$kIL&u=*~W#1Tx~r%E_{^2st`_b3y^VFskt_ICK2j#j}md znO}XM)e<(RBf?0qy2G4^l^Y7h;U zK#%b%Yj`7EKtG6r#pgYE(M3s*l!1+~bb2R8(=2cm&~(`m*J?ygTIgQDLcGt#J1Vc^p4mepORktTYRd8l{p)3PX7Fj$!he={$og=_=<{XK3TE`mvO4 zK+@YZV+i6oNn!ehB2Ez;0?&P{cWt`$_$K%YR+YfKIfM9(B}A_?8r!;ix7m`qUGs1q zr}hJU@J4*jIrndFqyed?h)3bVX`G_#;5hYh^)Qa5&y9mk9oDC2S8881 z@rze-^R$l!_UOej^^K5J+w@C6PN)Wfx?rm0<}f&wW8mrs-t!@k^#en|P=K{b@s1iQ zcp%m+pt;>!(BwV$C>c+tOhdm4atgIbm8%-w0>E$IZ=TMI(*xqV9{W+kII@bAS=LBg z!uOBvE1;ccnmEiI4kBYX4eUfQGT5P9{=M}jFCDZ6BR71*lVs6qRv3RFo@Gq!~2vi7rzzT&Y^-qL3`4v8RL=ySk0g9a$OH z&wT)f1?CxURRpAw=m@z>f@qS_>Ee;*HQ$5#_%m&fG#0t_UyNQ2HO3jYs5Yo6Al%P$jZs@ZpU@N|WK%*+&*6Tl}j=Z$NT6o~L> zl{QbbiJG^l(v;c)eh}dhjAU_ znF;~b!&ky>mBg~dlCDIxm+E&q#$U#=qumCmI>$RJ(4HtCbxWcJOx)bY`*Zd3CC!Lr z81c_fT`Q&(W*174Z!-a#a%Sg3@sj+p(gr31T*b}(%C0JxSVI`=S%^%_n>5AkhxvVg zoq8d{njiP!RZ}lW7R@O9_;oR*^|B~yaBI6ZVN$`*w45Y?DFc0Z_7t>WQ+TsmrCr!b z&g3o?@P$1#&a}r;>eoUnY*G|>KL2LwMaUFG_IqSh047IV=dSuWL*Kx%dYjm4Y)u#G z9mZ52Jik)C^Y=G&rpG<8;^1@FN802nHWl7`wV47t&`rk`rc?X8@zyR zdMXky8^|*5qMjDepYUs*+xiV@L!yk1l8P7a>gWbom4}}ceh;Qfhd{-e7-2LMl`z#e z(@f;}`Rnw?VJRxht~V$6Z0{G}h3m|4WB=}!3XrOvQ=?Z-5xivida*KxNfIwx#5=z9 z+K9e;Fv8h@=#lOFhwz8rumfPW!@tV_Y=V0i6lH%U=6{e=o~*07G7UlgmVaGD7WHspupTK*Ij*IWZ(tw+Dv7 zG&U3zzSK6RJ3-uZ(Ps@T^f${?C&k*ZBiqXs>g2^JD#be7m6HP%i;K~83az4bQya6Y z8LUV3wv}V;yXl^KIImVmV3t3!Zdbqu>2dEyUjt&_m;Zp=2w}%hYVKl}tyF))x;I+#(8anD-h$1 ziAoTbz#jY<>HWux9-s}|P-_~R^EtM-T+#na)*BI^$tscGp8USnmdDv{sO?wZEJt(e zAYH7`mSumd(Ly6g1?LdIPCT;dpX$CgC4qKJOlu%`*rO)QeX=OdSl21~BYfCw)hH9k zMGOF@eNWObLPmzGIN8KCJ};L+l+;*-^qpHfpQA7qSM;$C9cQv5`HJDK$iQ9l_UpYE z^U?EB`S<^1;vGVw4VA_y2dZqLVft1`h?z$p->OZ}G>gz*qDStI4L_c%NNI2qJ53z= zA2pbl6kYb5j1ikv1!!p{9^nsuhEj-C?+2a7hG9U!&_NXD1I}zCIDW~keNfn8b&rra zTT$e2Jg7El%C_R)#d28umtG7auw)Zr-%2I+9zzAyunqchgDp0Iz3SGxJ-SHYv7Vz9 zRi_f>w)q{e70(3QDN_^pX7TxwxuRB?RG2L?--_D$`W=9e{lepZtDbR7PhOPE20QRY z8q<|QfSG2FiKUSkO-hWn&Z4lw&oWg{AI{9k2c;hWe$V(o*yAZ2@4 zWt;tDOdxi0@>S0>X`Kb{br2x7+k~#S;q&<+B4zx`LNiY)zpQH|@IB#Ml3%ue$uSeV z%cXqIUb{;8SWU0S{PPz9JDNU~Jcfrd?jPIT0*@WSx`0Me2RDJKyOx~AF^_w0dX9xS zqw{_EgCk7HJH~ZPffj?#mt$=I6OQ)I+$or+H0-FB`+4I4qjI&1p);{^eX_?Yvnz5}qtCLF4W;(nYpw?D5 z4My|!m>@aKo$vegq!)LN^3%Vo5h_6djO!QKemC;WvbpRNb$tsfWgTnSb_X zcnZJ0#ns{<6_c$hm-sLo-`5<2wdV1jCGUSw&6ZqJS#+TYSMGHU$h#!z0xaSw}K(&vSc-)bC|AKbyL+olK?wdjsl zH#vtS2N*ESSODV?(p+OY^rhH3R>yCi0USj$R8d?PU3Wbdgg2ccMvONZkUm!77Glc} zd#iQcp9y|hKajX$^rpkpC=`)D zzLt%p6N;7fv?1ZwESb(paf9e!2lHZ65+uVXhR#FOvs@@A<%+sM*p*~w%RDxgGq|Uz z*(&r1BxHa$kmz`dN)j6YsyG_}3WXn2)Oc|enF(^x(J(xv=%kSbU%DYD^etQ$f8cRO!M1Dzc z*nH{%MS4i=(|8FQv=u@+Ld#rK2;y_saRPZHG|$Kg>|UpHdnd`W;MVI3W5KvDef4CKFOnZw@>mIpnR&uR zk+=I9cT>F5pkSd}#+I~Er5FdHkcxhG8vCDO?)2K<7ywI;^^jm_-Ax7NvWFNKj5dk^ z>F@v%8?=Ey&Y8f8ls3UThxlpx(;c_vHi z-V8eF`+*!tVFC?nzsn8Oo88Rj^wbWA@Y!3+v`M5|hgR+Dcf7&sVn&4SSXrgQ`_*5D zH9SvXbG)kHP#Rt9B^1}#>;3mnEk*&=s@5XUCFJIa6#m0b-l3@s&V!bv$ZA%ij4M@(oxQJ0NXRefuSC)qADbUXKa z`c7B!AGl`@u{hu`i99CS<^nY+Q7F>U9Vjeh45Mu?|0$y+CG?&-DYR?i8bOl22xa>? za;dW^`FCMGJWgC92DT;~=(wIlzqgQ6nv2Yq(MOs?ECBz`VsLuHSugEq9BNVgI z__Hp955}K#J?MN(aafVBPih8=s@In$of$#!9SHyH#sLq0l5#&t4(02vqPR?CVj!T?y5G%-Mf#TCk2^lKgzFak`N zA%xigy8%yD60L##kRSj*XUFhnq`r8p25GCNpY2PGtzpwP1zA*@8tcQ;NkeWt(T*&| z%vQxIAwyu4Y6G?~tolCPR{Cy0qqzGy48{MEnER$Ogq(fCJHR8`qPrB--*ee6G_L__ z%is!xx`f0rwIGI$Na=m`K50{w2vxqF@%U6Bg&c)KIQN&;fGpqR!Ci z=wKtzsutfoxLUm|+LDdO-D#_M;kFJGJDba*IVnn!hffTB$7o(aG7^;Xwx1DRHqVzk zt_IOQX}NZN)rHU4Y^g{zKt)1>C(IVFkK@!dK#QjeYxbLuwoT{`uPGd2t-=4IVR%oHQ3$*Ov?W%qg$hL%XdHO0$*x>d1iuof5^M=7%3w<<_*m4puI1>r@=#L z2=u=PIFNMkwgVx&F^543yWhKVwnG2hj0d-OaRI65kMv>%3nUYn5An!yOH&XSa%70q zf(4H~KPEA68&M`IfWf+-H$|C>QQ-#7ga{|e&pA8w>QOb2unzYN zawgi1$W5kV`5DiZYl{+Z;_SV}brScCXEl4hAmLVLT`m2oK@+EHJ=kmT?@h;9-Szgz zr-})AlK!kak)fNR7)1134YZATGAj%AWcnNJ4mO9}{o`Pk$XwvA)AV?VEUp$tnNF4% zx3;yPW*4XDPDUkF5n>v0v*=b@xDy9Zlv30EfNv+NM7hqI7|;{GbBx(CPrB2&OYBnO z%*Q_QEqO=%XusJw&B+cQ*0235;1YuUdIrdvN`ZW%$7)a^r=GHvpW<@@64_fj-SxYz z;k<|bps;U&NuH}on!K4Y9025V-}SYwqQ$&m%!><+vd5OhBPFG==}X;};c|!A(Rs0_ zToc)dkKeaAg14z~+H%(5&Y%z9C=yrU{Rom*xr1~E+BIJg(T6O*zaKfC#t2Y7xwa72 zG;KJlglQeV?Cp#4Hze=}XCen7Ga*EG9e)Uu$^>KYWoq%;3euFkO%h587mOXTg$cK4 ziB&olUm7DeDEIr@Dmn37Z1-nd8h-A2tX4ia*O~W~ai{LO5xDEY%YOO!GnK>H@ztBn z>@(;I;w5Y^&+{OIo*LpO@VB7ZHWOL4ccN|;Xc#)%`9osb64uqcOS{_5Su$2V?!(7h zWe%Gw>k0$~^e@HzHZ7GsCiB=6!l|3jW3DZ0PN1V*o)90Tx!30fUc=WR@nf!bYb?_q zuUu^U_Kl(-qE=rQwpYN zpWMh5@nhxVW&6ianrHWfY9Y~rC1s_!)pOg!4bk%LevB$t$@F;boAv7!!NOBvGTkz( z`l)bIuT@1SrTMNtt+4Ja2DPi1TCjqrG8pPhP(^tPnBhzMCSfbHbLsl}kwP9$)4=Lm z=v=vbB#cr`y|#UWF>KGrTyMJp;e^_4R{T63wy(J+l272MnSHRZKcKqh|cVv(~<|WJ;YnPj+gB=dR_zQWNVo3 zVoA{VNeNQ8P3s66yL3h{D?AYbvwGfF(_z`tG<1+_n_zfI;#7gD0;k`>gnYyWlIH`7 zlk*-@XzjHk-NgsnzpgOUDXk9X!^^TsgqYfZItDafT#z$?qmd<7# zVAoy$KGh*<6QWn!Y`P;-4P8Y&$bJPj+#8=!SIzqHzkMS&o}78YVl(dhj}eVN=~abK zl47}-N5$Jt$u1RPOTex>%q4meX_U+R2f3!^TOV&!sUEM68x&V!GWTDF^0$i zABq0#gO|lZQgoQn%p52u{bBK+oni$Y7`a?xib4!Ios(_NM3?uw&3Axwc zb2z_Q`k7u_sadElOKeLZuQI2+pHm@0V9)`)E^#o7W=Rc$9q>`kPj(E-PQP&l(fu~OMvi48a2fTX*<`L# zXWwmX-~omNs(dS7X2Z+5N*2#Mw%bY0sxI)M86FJDi^_@^Wl5@|>F?=L$JwF6609Ps06(&62!xH(CD19+N_UPM%T zV9~q8UVt-s!!XKnujIag(}JZ#l)*a#h-)+8ip$q8fVVD8`{293`|dhS+BSvy}47N>ldVCEb<^pYg$gGVZx9zedLVBwbw{ew4CA$=ly<{@;U zPz*F^ye#jRoey*I0M&_(NvI9PJJjBd5~k*@3dpe%Z$|^1G;x^NIO;VdZifR|VfOGF zr7(u`&5$`2FrUcnX#vPH-Y0^}SYeHC;C37v2(@U}7C$8JDZiRtXt@^{YQ z`Ypy7)>vvJcsbceA_Qv!`kmyZmZzZLX$q}`p(zQMWp9&VX@Vig?nlgTT;xOFXg?0XgryhL(V__hFpT9+=6 z;iVkq_=DaP=H5oQs6eoEd zgMQ;B*#O=zDgkT%*2cz%2m=3q6t>}f?-=zbz^5}KKG<)_J)v+OdpVdNq;}?(^%NoK z;lbD{I98@>XF|Hd#t?8(sjTyaz8%RZ$g`FG8_V59y8y*CbPopSgf}I)ISD_q52}01 z8oXAOewl6Cc8NsN*m1~P!4Qs}yBryP)9gjLTS%4GqUw-91WoDljz#wsFX0frvFM7; zCVWbtMwiqrdFuCs%hS2gV9qHseF5i+0@!&hcFgBz2B~WcI@P;&KR&!sj5{L{Qs72D z7&I6*se~CK+GF`3mVp{kJnw@6&uwxhj?p9l=pmUlHb=n{uBw9Ov~2SieypS$)0O?` zA-DY!+1UbvNdMyFiUTMIq5}#?TFrp zPpq-uk}WJEDxdoF!A6RvOrV4|bEt3V!9GN!@p5#w``*m65r)sJ)Jqn4`;jJ*2v!0#f9-phv{$cw&I}R3-;TMF3t;~zT00x;P7@{WOQ91rH*QdU)~?$C zn{6I3zQg&*%bo`@CTLTmapXoOQewRE?AthV z_ZYs3N4+QILBrbfLLFcf|L?8D`@w~k?LA8yLT%;si7^WwYjQbQL)F2sE1obE(pIG5;v<2mxiYH1>L=&w?uORLQ6yD9pHa z-Xy>75p&UW%)waBYN67PKtwmGBj)LXd-R|MEZb^vCYF0{B|2Vk*KFvd36L7q8a32y z;63kQpV^VzbKA5H&eVV&zN3;)fgidPZU05KO-M#lWlzdBY-PY}2ib{k=WPAS*@f#zGess8enCO0hldUWq$#(`j?OiZL+OSM7)vTv%gYmvXTR zhGrPADOrS~o7=b;YOkZYO(`2OMO)T+o$ex^&Oo*3bU$VGIez6)h438=6P73&oeS5x z@UlMbq%8L21`VFni*d7w4NvB#sby)VkxZ0S8RdZRzh06qx^6)jxy)_Cz+4EsakWDY zmMjHDwBk3-$~U_G>_^yY$haWg#EaxkJ&3J5XsYt46aNG0vdA;Ng;2x;= zwm?1A+3UGY3{AAqu`oNrdzZL5>8U#cBJ20biiioJ@#yZd?*Woa!z#h!? zR{^b{^<_3GJ!%e;v=7kV^FI@l&i@d$Z?G@}TX^No7DUH!U7P?{%glK|N`OL?5Vs6N z^Yvoi>t=*tDaqLW?wX{V6&Ln@Ou-b#g{ff&R%fD1G?wJhkabp-HnH^)KFJ@{iB`%K zuj0Q+aVQl2_T}%)ZSjU$6H=Onv?F- zAHl$!Rd$@l<5QKtJIiP8FFcm0?QSnkDOY@MQS(ryN+q^2O*nW}1G2}2#lyyirBi9!1&TD9lS1mFV` zCjhS&7FJlHdJ$mwLrPwMVMpKL9d68$!WB^-*OGCc3?MyU&Hpk%B>+d|*zqwGP(1he zb*p0bYZlGUTaG4>ZLx>t`ypFA2mvL`Kqr8o+!(m-M;K*tf#YSvSL;8-OS%U?d2!Bv zqxW|HdZ{)OWVLF{Q4ka-3wXMYLB8|>gkB^~aq?duqhu6LgexwUwv&B**2cfi=SoD4 z&t$SQUv(!l7ZzxbWqy`6B?tQi@EPpfAPdQx{+PfUBIicEJ=m6(2+%g(ThwL>K0vOm zK@L!#LB}@W>32wETy5_>lntk*pQLPfqEgUPiMZfSj+Fi)M7C8bQ(Jh3Qv8-;TnBS( z4a-YNV2bXfC=x*%II~NiIu2fAe!rzs|9LaC~H7smEBERbzZ7#)$)&GgNY zT`NV4p&KhkzT`*sEvBm7_t)q&@PpbYDlk|hc=p^3G8HBfn~_I^qQmU=6^-pB|_a{C)J(h`6hB@fpLqgiT}_Yvb93XQ8NcinmFiTamAK7 zU5={;=V-hl>L3z4GN7qqmZrW=nj4}Hjd8_Lh-6Jp>R=?LpJ~+TZ~m3;EMkZQBbxF^ z;r9`Nc8EB5w(n`1jaJM4@sap}5w{0pMYC|rxWpP`Bl#Ck9eQ-rjq+&nG3ADp^gbv* z9TSqtY~mUp?CVVd9j{9(jSH17eP}LCt>o?Jh(`TjmP*gakPk4UJ=Hp04|}3=-f=p+ zb0_YOr^~@VkK^4KZxXKaj%OBg-p5TLhcz2+z*8M4-`YFuR&huZDmK_1ztDff0fOpR za20YBk=i+=0u{vp1tp~vY8pwgB}#(mg%)AYnylx))gKL>5`|8dI#BR;q(Z$-VM3fI ztw**dAD6b^Byh6KGhmedjo_<~0Nxc$TkUqXm@UIS$|`KCeRVwCVail}D)cw@|pyVWcAcdfzvK#?gP#qlTpTwwEmQ5ODOAH=N zAEv~GvEQrrKgD2iQMfD3}Pqi- zi!fK8Y@H63J!1-~dg}v+^F!Z7;JytBknwaNDBsyw-=}bH{$gk7sg|BRQe$J6weGH~ zkY=Wcf5;3l8j(iP*K&WGHgQqK@*^jjBTcb-s+Mnjy+#JT((Hu`-BB-|s=%~bo-y!)sE^gIQ`)h zQ4rB8uvXO=W~7h#&c-(bu6hIiZaFFY0XV(Tx0x>@^7lF=cdS@@2B8Hb-v-H^BMQ*s z6NX&QgK*23FT=?ZL~^P>SuV&ZDAl1i=TqLRBC05xDLVwU=Zy<6DNSucphsd(PD>B< zg1+cKfYU{fF6kYu$%|R8uv@gO0k{uw@cYbG5kTXioxWK0G&Qje1ga_|)h*N)0-SWs z%@B~|tQ5v;MJjko0B_Ao3!s_+0F_(aXFF7;oDu(HNr1ms5Y63xMoO;;2WE_@S*!NJ z^N;>jkdKjX#*XUyi}^DnWb1L_#Jk>0UdB(-A2UWVId6il-VZPxmPv9x#t? zfB9K|;$z%rbd}nhEk@f`b)8C8YM>5$pIdNe?9kyf=O&W+`~?@CbIT0k+gq5%i^roO zp-XOCchvLivHfMq1h%;i1EE2jtSsZ*4SBu|VGrFQZ64bag{+R10Se^&>00~j8xXkv z^{DM_;t$V)um<{-_scak#FLCTfJukzWZrm=_O|r~ue|Fv*#gP!ExId&a?F%xz##A{QkK*@WN)7K zFn-PqjBn(aEV-~4B;#5;#S;jzqSY0?MYOtbvWazct@p8ll5m5blk7l7X4m3&W;Wuf zG-y+o@c@bRMzEr~>fN_PDB~DIEFNbiX1I1(SOg=+qmJ6vk`J6JpI#+qy0VkL+q#p{ zDw<2Q_HQ)05DVs=V(W+?Z|C2J&QSi9eyGBS~g8#q1e(<|AWdfxZ;;s%Od8 zba2b{1b^~+H(p|H@FwxLUf@3YmNbjLIV5OPPX+9O#3uwDvLza;y{x41|1p6CQ)ebQ zUsWhWHbExNOQ#pnsA7_{bW4FN-ar{LsRu+XNrbFxXh*UlD2JC28NB z$?H+!TW??y9dxt9keX@w6X=;yCOYSC91rA0o-`&@cFoR5WdhCr$}0C|ElU2$*Wu87 zGp3+$OWd)F10qz6dy8JFqEtiMH;iF0%#=EYO1!pa!=(`>QJL3Sh1*NW1?gpxY8HV6 zunx!v3Gw8G>%%7c)y7M5pcM}1P$IeP&QQ?0sj`t&@w%5o2I*78I)fgWJpH~Tjjew4 zx(~uk0eL~n-kAsxPz;|Q1s!?G{F2uNxCImGSl(J~}KoZC8i88l1H?WBou40ym_2*dpCuzWcWav;Yf4E466AFiAT>AAN;T z@NX^?FQZG`P_?Cbg!>!}7y2;9oQkoZFmyZ*471wrz>IZSMGh+tC(XAARVWT!funXB zM8OU84|QX4^sXje4%F%wa&CxwpUnHh;1hR<{WnkO71RmEzN!1?U@jwadifOffeBOZ z5e%rn2mnAWrBw#bTf3MMnWanItKK{glIJ2{7`YOAmm&9EakflDYJU6ycK(AP9g@zydfs=`PtZXa^AC&e0;$FcZx9Hsfv}990eP}A&JAw|OKnGf z_QWh^`63;yXPPf4u}`K05ju>?Fvvv(T5s@40IfPHeex}m+yQzyI0{6d$$T~ciD9No%ggsm8W;pV%SB!sDFJh(q}@y@qqwk8-LEpKp7P36u*cT^GC z1W(+oc+bGg06zBqT-qnBrE)Ysus38|kZTBIl?eWlR<66=$!~1_Ws{C|Y1=3?#v1TY z%a?VFj&#m$X%^$a1F0rqc2D_zqHfGy^$%uqU)DJ)<>Ep2yHN@k;SC<3>H2eC8upDF zsSIiHWrf^VJ zIot7%8HJS5$L2gMea%8bC%hm>^$=%aZSpX?eScq(D*9#{8#~b1An8ByhY3mb)luuu z@7yfRqYR|Et0c7c;Y}j;cHpVvcuXG)7ul6zZar=NPL(??V*EO;fopIQ+|Mg7miL1y zj*=U+-IK4g^J|04KUf7Bi=A)G%57ahT8&3Dc!i(O>X+lVNx9- zJK}YJj;C7!4HAOJLQASa#B)$mhN((1C^rK{cimnJ_ovJhBKca%fW}$8@yVzCho1n3 z=Z+CGO~?)hx+lA_YMIEsWpKs+d%G{}fO`%+^N}l&(X13kRT=8hHhU>UCoPF;V`Dj1 zk6PvR%*8}_ivXyoG*lG5m7-I~M!_~H08Nv=0Qs#^$B8iPZ)DD8dVo^U!3OyZLY}f5 zryKys&*d|Fx7R#6Irb95O5G^Ay+Q6j&ES`ng{F#!F=gWWu?HErci4Bx$n7S65EyQ) zL2@fO1I3y&pW1i`B%z@xPxC1U`19_VwOMVA>?kQX-jqmgWq7Lx^^3k1iKRUjj8ucj zPOFaVqsecC|2k&q^k}a4dhyC;J#P=l3pCQObq3SootScopg9)`s^u+2tn9p65CK0$ zT$VKEe1TN;nmC2Mm>#tFF$9bCdDWDC*Qud;Phz{j%@o6tG9GULsh6* z2D&XuH%6>VJm%TOZ=Z1q(;pmAUt4g24#A07fNWU-=IeM7t;cg#LG3T3W>lfpJA5ZX zvkZWweDPWZ4KAr@XVet5K)bCVC%!$2ITh0#U$mG20Pi6&BH!bc6>CKqD|&le*cO%u zp8?e#TP(kq-p9z={}vD znT#bH>FycVBO;&JzM28fulY1TYfz*4uQi4u5P};-K44AOa2phs@5FsRL|0iBsjftK zC%;t?$x*g`q~R3MR?Z<@czegL7J1rzUEk}~s)3QrLG?uh^@Dk+OfiBczCkA8!FQb)KzEjRCJq1bc~zjafk zle3qa2`wA49>$}0W!6csY#{0m6}$0bG<5EZUg6UlECG6=MYdUxE^YCjNL(R&96RZa zoV02}a#!ZqDDbm&*W&~Miu@jh-DqTA4j&=nzubrF0xl)^sd``qG5~u9{Q9A$)b&w}~I*PEO8dRl6tk zxEN}%JwD0NgnZ1plasowQyNpYAC0cfSPOr|{qf+E9l0m7t#ZE2n2E{?J0xG~WW9C@ zL5~`aN*kgwUlMW8r^y~f8cGC6#dm53ow}-?NeI_f!2F1TQYZVBxAt+ixYw2eO>#ds zqxV{*gOt+M$+Q%>1a5?T=qSlYXOQWo6)K@*x8B_$Iqgi0m_U7s&&PdRi>|utooMhNyFg;|^BE&52)r2n-GKbal(p2sWf@jBpM3qhE3`r_2nmA?VxFFF;;^6UT|!3!m3W zX~cagXFe)1i@IsQHG$DRO8dh=!R&RQTiVQ!sK*AJ} zmf#j1K`!)P+`ua2{nkQdRS^%*DgqSTymeR^{6^+#!CwQ-uXbB^r`O7g>ia;O2iYEh z-xNMD%pfKC{?;>W-PYsZ6 z_v2YZ7?Qw7nwlZbq9uo-yL>SN9|53=F?vNQ&zmax9WL@Dtrwq1AlI^YwJVqqt9umT z$OqBL-tKS$M7%sV=dB9?!^gC!1)B82RYlc=F8$3w7?V8#`nbm@t*n%sMyADlDCw@C zmR|RcBYW7p^t27DLl8D)T^;SM^<7oQ!f0-=CBFG}!FW{gZdBwU zSrWm_A@{z6>%XoFD?^U+mj%KdxH;W2H;a#6<^#qXZ=PQWYqHI`1IZIY-9wf3DmtW8llet+D$RF0d zp2^(lH#gcg`zWN=#){g>R?ztY)IpHXWpUW|B!8i;o?15j4pRVc$zmaSEz@0esB|Ie z-{;RZsj|MnaUwjqgdLii5J5H`iBl!5S*?P8A`678#Y(u2utv#SL-*M_CR=TP+K>8$ ze}=6g3e6Mr95ujTNw}T96$&Ge&NA^l=px!#)-D#Pn{@zQ+Z1lJ2i`Izo%Tk9T9*wq zcGrwLr{VWx>t&w0?~{`OZX!F!##>QWIAE~RLv8RvCV|V&Z`(vmyeIGn+TThAJYox0 zSR;#z60$Zq8qS>f{saSIhr9N{CPH7m=yPfrW4T1=;9CD8w2#=|ml;+pqc+?dW;_|c z8!ZR-}Lzt`fN`(O-3NiU@#B^0B__x5 zsG~4{VO}t;$DU_rCRpT?fVgIe^`H`)wq`hIx;zevZUN3+dz7R(ZBN^JC^)-il*aOJ zl8ORA#&UlnRb;L8P@DNI9b5B)k1rEQZY3FbZlfrZ>!ue;%&?izG4T_am)ss$$EJPS z%_)?W8k3L+c2sYtNwl$;WQ$XT^i;f%m5w*=Sas%U8L2oW>uKYk^sq4Xc>%SiTw{6~ zSg%EUA}h=W7h*+WM1npZ1Bw_$VY9+zM&m9Dd%_VP8i|R&qYB*qxNojNAO53wJc0gy zY+-&t1@vFU8#+KPuJg&;cwQcYZSfhk0&sv1A>aM)o-(fjFG1)? zJS`bg{F{#bvO1Rlz_tLbomahxJ=Yt^5qk>W5L)_y&}NbBmt$2%$k2wECIfCU#JGw_ z`-O5Xd?bD-f0Oe7$qICS4;c1?#vL}>MrRB}GHo$F(`}jg*<`=?(5#|tmIdh1>qk~{kN`rQIV9Hg>PJnCkn>j`6#o`Pl+h9SYzB%wW2OvXb%h-wS0Rb&k!Ozk9 zrwu!2t%LhE=UmzOs0Qpy+zIE9P_cyNO|*G(+Q^~;M~H&!Xe8%=uCRWaxGT#WlRe5^ z$JH{h8$R~9sKxufPJ@tI;!iL+}BO8iYfV2^? zb_J7z*+n%;L$XhP3eiU5**0DVqpM(uh0E4?IvcGa1PDO2-=e+1OBBEBynnH@ua+oK zJf2SnVfq5x3@&$Ulfiez#xpg1bszLh5OZNH2Gq4F%NDy-5h~-@2_xnB0-(7ODirl% zZz5}B8weay^6VY%jgtIphwaatTGdb{V=ez(M{s>i{0MxD7navrWv2bw3YtOD<$Ma2 zbCCGOW-#PE*I0xUS271k&KodYBU2yeG0l0SXn z?>Lo+gQJJGocAFsLavwlbO$!qh9vqyj!fMY!x1BA9<`ws3ivojn&gge*TVc9?`76$ zphSh1_?vP-O|{?RUQk-d2d~gNT!*1K&@=R9nZgNW7YqwBbQ8WTdl`3-XOewtHwhu#eFM{-ys`5eUXWMQZB6pEUi6Wmf?90UPgfN7zK4294AkI7|nRss!bs>=?nbu zzU!TlwfArW>U-?t98=lmi)#*qv$ZWG29$`o{_P0^F+|NWwv&cAt8g~DEq5}=AoZ4dWZsE2XFFAyH>2y6s=YF?OI*jyHS_7U3#SOz&M1h<0^od zTUnUsP+hGZ2hL}PD>3pU*(8bqvb+E zt0EzOH+&+N{0M<2i>Hftb`$X_rK^ao%e;W<2BJ9Ef*->QLM8t4MEb5_Kn^CpwVdvq)Fu# zBM2R;v>SSFN?z{XfnU7qVJ=IkkELIc2m;$uS#D%C^?ygi{Spd}1hS6ZaDI0(D2c~t z%W)icb5FjHU|qqadr@g=jJDXsAK#ci%54v=IsOvFOc-UejZm1af~tSZb*$~^BoDGh zd)yxPX#8~lM0aq~M_&oY+&z0OK31Ga;)l6Pf%4JJnd zY0IU5Xp^=uL#dgm=s<&OTdB5jfSQ6o6KcIb`i_7IHQ!rl(irGorERBcSDjEPt8u!R zK*WtA$2cJ(RFRa))n}Nj7{;M4n3bvmE%o2pak-}30JT!jc|wG-R$c%1Z4V>Wk@*#2 z8c4L9L@6mqDsmgxx!(2z>mu(^MWx`pAu zOYja4af~ehv*1=I7NiTfAdP?HBwEQE?LKyY9=vBE!b=Izzho+R{zv)r9Cmxph?kuS z!4ak++u`89RbI(TZcZ$7BsXMqKN7VuPO$`COAro!W8K@51!FctJ&Ru?+kJ36Oq`(7 zoRyojRWMy~qhvlgcHBo${zA!rwBG6}Qe#vluFCQw3d}M|**zgusxD&FhEFJKgdZko zUIzYJ%9H3o?jm!EE(Ybt@3^%419(+$(iLFhq;Z~`aDVv%&k?g*&qO9-W_JYhBgt7j z+Eh{urjcS{cr&mX*&p=msK0ugM9hJO?l)EGCL3@K$@`8t+nR?x^nBHCctGl_!j}VR z0j2%{6iD7T)gs2XG*mM7S0A(RXIkE$`32e&f5)-8-MlPLEbO7{>j99Q_uO)6}|kv0+pupDk_&!w%#0js1P!& zNoPE&s#6bycyZiftC>^~0o?XyLk7VEmZn(zz?PiPNF_D?R#ns*hsD{}oWqISHJhlN zsTB8xe~VU-+)gB~y2%QNq*zg6A!=FBrKAm zVXkc3*_jImE9pyK?b+aSZd7&?-=lH&-w4ru*-N%r&VfwP?@FIP8 ze%(y&hLE*nWpgoId+j^O+5Ae1qa2M1Md1LiOie1nT|mU&N)@_IfQ%eTfYDmlw{2Ko zj0iP1W*5T|eUxY&BonyGYK<^${$9Be(p1SA2htE5juS{AM5#n#J0Ih5x$cAC`xpi) zy=9H9nddaBDNZ-}X=?F79Pe}lSOy&eFr_@J62l%{i2_Oa%wUVEY)o^|H)b^ZW;8W&Bp~rj6bNXNOu+qG!4oN3J_z#2QIw_DIJhM$M9hr6sQV8Gdqzx(W z6SMyVRhHpDv=*_5+?hiYMJ8%uzKgUK%a21}&+n2nKj}*ARXDYWB2+>oA^1bFlQ$DX z-g!KRLx6W6@7E2**Oz2uykCF0$S$IY-=%XGU1GZr&2c=)R@|+Sf$WCMM1osU4;G>Y zsscIB3h2+POzFkIiXqgm000W{!Upf!@uy1l;OBWP5ra>?|!vC)iS)X)7_YEqZ5 zahE|~o9PMPEzPj-WZ!_U#3ZGfxPG{S~NQjpH{e{dkCVh`#VT z>YcRLaBfUQADo3*-nnsF48aN#Bd4j`PBRD;Oa~T?u0okMPLt{tTqa-`UO4H1q_7jX z%G8$E{35dTNB)O-CV*ATxX=N@r`t6Rx-{|t>ddAmH?+AdXW_FZs|{g_;N8CntDSRp z0En@j(`}Lnt{ab@ecg;`8x5?gPJ5M}JrFV{^H!q&d?N?_Ge?$(SjaO%dzeqTh9X#f zd-qH#`?c~$-{)5ak1fsT&!7_@BWNh=O25x6;|SCYj;zv!|J(QvA!UF9$z978ljG*9U>i#dorS+u?%34JSmtt*o=p*2QE z!rNL$D37)Nw)h%75A=fSQzGICOP7c!I=p*aVv%+2xoS<+75Tf6kNpP=cDHd%aJzw9 zZ2QY2Y%tpCf|k&k|1K;gMNKCmjnOz*b@E`4PrdT~AqG7e2X5 zfv;~Q$(4$!4A@jqA*Iub)c{d|LGbB@^A9IcL7Kha}bJglKT!DR73Wa2jiH`>J zw`8!`1)95dG_=VN4NQFQ#)9^kxsve6=aip9IVg?kmBq7PuCNXB_vTCUwGVKf=x~{W z;@0$_V+MF47R{N4TgTATPd}hBToQfjt@t>xt{aVEfcQlI4U$^$x=VW!JTag0R|fs{S77CEy63BUCF?Uqyp09IdP!})QY1o&Y~;O6 zt`5QLB??uM%K135lDKLZ#NOOD6<+AiSWN>W1DFmQtJCgYgIU9wqN4Q@DhfWbxzk~p z*(Vb1z5^o}kjf>23J7PkbsWv@@hRb`+53XCSh%aTYDxl9W<*W~?!kg`L}^%FTVMS3 zML|!KgV-#8tu%xom8y8Bq{ty_THPVBr9u_Jn({AaW_driZH~vp=DBS;z4bJDe6XuG zRnHq&U{^GG6>b+HqK6WV(|eXlMkkv@vulkfSsM@kr$*EraCd063>(2e{3Zr)+`)qt z9Jy>>84X&RoahlOpo{IP{(Kc&Qq?D8;sAJLcc^T(v+m!@;y1{aOf#GOR57B#V8Vjl zBZ6l&?lmtmW%Jv_R3-im(h^YI6|)nt&Xx*9ciuWv{Czs$`EnFv@?emeGnk@6a{S5r zHtj|wbk`MJO;Yn<*QG4WGC_diaUZDLR3@#mt{h%GT-38r^37$PtHyNt`T(}-u#L5r z#79czPI?0CtKVfz_i924S7~IK7{4qNEnwN$7>i7+TqM)!Ea%;&yPAjtZ9m;$N_&N{$Q6PLn z&GYFs2$EZXxN>yLn03HW1xM-Ms%OsBiQCa=tM&|GymY5i+h_56eT(CG6aG))a|NMK zv}LVfH?Vs4@cy|;8vcxw3&Ez?Xw6dY24QUt5{XtNI;6ib44rJHrm&v_v;pMIl`=?z z=o=;=_ligu(8>VfOH!xRwH9)6Hw&J{G+SUVkfzX#&H~T97(`ovkU1CDv`Pg+I3kN+ z!cRe0Wiy_HL+@z9cM*M|^ETal>XU!lQ_I|0aQ5(0UY!=Pg>(GM7ANH&>|4p~2FE=j zGTjYqFeFuTQsehrg+g`*j=6%$Vl4{dOvGb2fQfV<81*anqp;7zk@tx+_)Bfp=R}s1Yyw zTbFMoza4q7XLI??sl{0iHE917L*omCR=JD^m}H(lo3RUiFyp=83%7x;e9hK-2=hu% zgYopo#Q2>(k}reT@L$*)jNb^G#mnJ_Fz?J_nWIe2bs|JUC_)ySA#J2B%k&%rB~;c0 zU@%!+B(h?4miq<8j(~4q>GweH(t7W6yN1i~ixF={-Z#1ox7_hPpHRu01w+rpY=8FE zdm-nJyqVpN%N{h7iz;xN$c>hSeev)$kx$fHf4ZkL8GZ;MqM5J84rXdrWvY z+*@wBX!$?j{w8~vO4@+R>f*Fs|0~PhbkuypKsbtWK_&!nWP(G0Ufa8N4|jBS^y)i_ zY2aY1EIP&O{P^#-a^w&B)eY9%dYQYKH^R~b=$_pvrWk0aES&WtTkOu|%(Y82Nw2gEQ+qvoFqtlv(NCFbZCMY_W0>KTEGgg}w zVL{HspfYboHzJh&jCih_I6%twveAXwRRZ2>)onxos@vWJ4r15sek@)qv4-fNWHYV- zoBeozY=@S4BbboH=Kw$U%JT-Cck>ZFm;!5mXFR>STu*SeA8k{e`{3d360r@~Cpx{j z|93SmP4wB3D3bxKw~cpB1m;8#CKrBNq8LOKy-b{+ecB-zf9pMi%6w&pZG1xQBbcDE zJ&h7D6Lv4@q?@`$xXJ*y30weWlA3rS6kEhqNk#gPb5cKs4x=AlY~uO}t%0 z-X>bYj&gZ&*o9UD;&pTpl(%@$p<~j*HMasrFjx9E2hLRoa~O{=V|)DCVm;ENF9Ea> zP+zVSEn6n)hqW*Fpdo_e;7M$Xe6BJg{cWW=6)_)g7%0`FazUfjldBpk@>P2tqc-{~ z>?Kbl{};LL1g-}Bh<&7oTz^$ecKujx{!XwVu{vqfoPgO^&M*(StW*~bs4Nj?Lfc%d zsF;w%`P;}PS$P1GQXUhpS?~`Ku;|btQZvA3++qnb!oHt397x5`*sM~N^(fv-E>r|| zK!`if4=1G{LxX(QIzg}q75*E#t(D7kXCQ(zBg^XI1-0KO#-XsQR*1Gz#2Jv0So0Z9 zsp}e<^LtaV7uKkMLnSzv(Jyx6Hp`vf9A~FBG zEe8Ag2J=kwUDEPJH-8rRn;nzgQ%+pr1#i+4uVo)uI0PdJ?fYPnysbPM$0gVXuY#_p zt-+5NC*xVaGHwY{I`H#Gz=k#0lp`{7-E_=ZM5jAClVFFobZ5*iXEC5?huJ`fo1h7pg#mxy9sORd>dgq zd&IF;%xpAlo9v)M^qRCqqDb5caxt(k%Yh7WR%~l6?6OI$gO1LE_XQXqM#O==YCeiF zM4yd>k3=FKgDt@UsfI_fQ#;p>x)t_7G)A~PT!n@~AOy|5R(LcrcbO-kc#_Nv3?{jk zPs$pMw`D*uZ?wb8tzZkXojGWFsGs~=7JNx&?-(OBI<|)CXUH1lctcrI=1HA_tdlAo zJq?E`H0&a1;hWoDnR*=o_}kAe#4B*WXO}7*MRM-M6u{ z?K$FBTb5&n%a>;^_Hml`8~yqEZ#;1h?Xtx7*+mP zWdEFM?!GQHN6d6=R(AuDLTh>YSZz`J1DUiYef>FJ0U}j^M43ebMw)Rd3R>2P$biJy zCO;LkycJqinO)|zG-M9p%mJzi75r`~2%6JhY(fkhDdv3OS)r^9Z;n$RcZ7SGEN`&$ zBe6u3#$O=U6M@GHIPi4=r=W@FUmLQs{BIAH_%7nMz|1RJ#-)^h$z6*DgXFiPjW@xx z>m?_*e|vG$46;O%y+pMy>Pu7yP>ZjS)+OG<;f}mIEhZF)xyy(+#+AZL?F3~XcB#z( z#2q`wEs8J6GhpI#W>RO?)8CHR>aX9Z9c>RB~Nibfp@E+C&DQusAQ$y>YzlL zyc05o`y9%X(6c>RT`i>2M07}WJ+aG%C?G%8(Us`QM=l%vvcES!lr2BW_K_5MR4llx5uLW_Y@=Qs=F26t?m zh{~ob0AG>Jg-KhRXT{mLJv~LO1E=q(`lO}@(hx*TFeN|g5v`ewywTTlP^zK9;bO0O zv?0l!*1zI|9;yXH@TuM7eoOcd(23Y z`TrP!o)-O!mHRaimj)+pJ(#sPz`RUv!Y`rjrYEP)a7yyyoOm|AP-bjHFB2!`5XoO?F`~%O|E4z$Dz0IgYl1*$ zSnl0a3V)^RnHTd@1Mz7W3u#A(j?A6=9P6E)q;A>t!;pe2N%t}bKV3~XWg0pkRB!4k zYppba)Mch`w#GxN|Dzq?FdaQx$w(9IRjT3o(#cE*vDQ0+HBf6$B?4+!;G)GLpqRAl znHAz4FdI5u08(3>_Aqo(RDWK+yk!(732Tn}saC}Fph!hrJQia8s@`1-2^JB>$1PtSg2KTnIX1{bbrXiK*TaqV#g@h?pW&lTl4|kR!C# zPUO_!v=9FYU-f6yFgabV{e3Skt}iSuBUfHxQZqMF7ZIYsai2!+j7gn>nB+zHxaW`+ zEZw0aoSD&{!$qTBA&bLK@dV=I_!#hC9R9Bm$A=5kPZ*=G*S{2D(^ZBSh7rBHH5@-I=ND6+XXa*CCTeXnT6X z?!%h4-pi_UlJck_kYS-8qd^a>KQdh6%RPB9L zIVvH`ac1!HpdO`e)s>yp=dIX!cuPgC(BuH7z&pdC&ujy^9MUe&oX32f7)JI1kwPhWn}*U%u_R1!qV54vwC?Jkf;eKclj_2ciDLoB*(>Z9N^)z@LL_r!f7 z1TF*azpCg*qhwv1VKQ@_I+J{JX0~8fWwz1BUlM^`QWTd7g$tHENE>@+1o~5QsOde@ zav(`LN8d#1&NX%2uLZw}SjJA1BV{y5jqwkwj)7+9AY?8aOs5B$YZkn&Onf#VaC2kam5gh4@|DZFD)M(7UYJMQ@9aSJz49 z8{TLgyjwc>t@_vrIYSCQfK1fg-(pokWO^tOLe>eoas_%{UaEpFcMuGUcK;!O61!9w z?4#2=^Z!W%<)le)oS3aWyX5M=pI8t{gt?!W4GAX4AH z{#+JIhi#bNF(#72Cdp-|YD3V4G$P(;ff>)O&^=r|m**4AGsmpA6fk0Qyh_gG-s2$F z13FM>hC%q4o1_r^shHJD(FU=M&hG)Zm7rA=VZm7kIKv%o(cC-(VJ0B6Pb+Rn5?VBSs zjr+`%NkfnI8F4Nk5Ny^2AnFc(!8iy_@hWut;DHY{8A$=Fo5H+Z)P-YB=qXt!7XvHy z2kbha5GDQb=B|#1CA8HlV^RK~MbFI?S4%n?*ip5jZ4xqImK7Tl>h>=+07L7*H~$WS z49mAp)ULIg7{V>n888|@fO#4astQg_zsZX3oX3>n_@9&mIyXR8dtOkaW2bn03DI#T z43V|_j#+MG#){)mpB9UuE7++sli}~!6Xo6^qxDZb01_`XWU&XeD~yOmEThbrA64L% z&AQIi^7|TQf>=EhL~R`q!HtL=!zosZy9FjNt%XB~NPl`0`F~bbNzks&3|v2LMfT*- zlIz69xg5!81wyk%K0W$7Al#2@F-0;{qft|&dNkii(~pCNbj*KLQ*Rexe@cY7gD@{> zOZn=<8u=y`prtrSgF`>Tb0x(RI#6R!@QyNY<5ZD_LNBW8nJ25KXQQw)iHE@%R}9e$ zQDtPZI+F+_Ksw|}W|kx`c^}^6x+b|HisTQ_9dJXc05Xan1#<6mLs9i;wJZlicUN8s zRAE?>C`8*wH?@fz70&a9KJENO@*&H$%PML^{G3P2){jgmlk>^DCC|SVfPuPJ?@KGq zdMnk@nxQn&`R$uwTYf5hPO0S`rHObd4ua30NjUf2kqBCZ^Bga}Qzi&|LNP*4;=(LA z%tzirSGSjKwDQX*Nlx<5+>*zRvNZzvFhC#LZNX?Nt9oR3b_89jzht_L*t-*g^Zll)r`p%&ur9&_CKku98S&iKQM z+E1ZeGSLL93SNq5t)pElC&kx4DT$m_61$P!J;$;j-KO#o_k0ac75nbmqmxh z?*+4Oriwk*gwKo!&5qj}*fJg4?5cYk`^VA!r|IdYYatAhzx2LWjv3=wSQG}wjL1NP z_OH!%4Z1H@o^gfP05jK_CKYGiwml1XVIic-MNA(W^30&-J4$&vJXXUK_ly!`lG&6@a&PZ*Hk0rZkOQ z;_dWm(ExUqZ52D@KnBo`e?U+kEYwjl_p!oe*GtMNT=(V!jAkpOL`m)Yfmy&4Jq9d$>YQ1!}?;8q{gh`!@bt+!MaGDl{3z!yZRw{|))`NpZ^C2;deek`X6PvKJws`#Ns zyn~8mes|vzti@^ivixfa$P$&X0TKMvoO)#9SMGihu+Z*C#tf?q&#)}^T!NdJwj3ff z_M_?7Ky)>|!-1X!r_8y^G@u$XDvJyK|A}n|ql<}1Yw})wA{95xK;=I)>9`YGu4yp# zuP>bAw?h*Hc>>jeyMO=N^RR!*U1{Up(&6-By7clt&lRi?wigx_D9)jkGw)%uBb!=l zNE_qR4uQHG;S||GMH?e*~@+ z&-OAh5^ukND@>Pv6MnMs^eB%1N7M*czZu{Lh@D0Pa^=MR!V^3UY{8+fk)6l8Tyl-w&^(HaGRDo#ESl;3B~mPi~20W<8DuOx8V^xS<}%X)cU4+l@Oel`URZM&@RF& zNrkyN9grOfwLa2p69G>kX>`oOJH-EEEvQN*C$Tdzy?tz;nL>3C8{yn~0o5fqy=;(` z=i#UmZy6W^Z3AW7;{F3ET63d89{sPZf9O#Ub+ILz4$>lmDvEQtX15hJ1N0P^dxXi( zrv50C>OH;mW=vMG7(?|Q=}r+-Rzo?%(+bMl+>Y@v3^pAR9`IlsY)LGa@&i;@oPk-F zL+-3R{p8s^!nQhX{v)d)1%OcqpqA_n%PEMeNK{{W zM7Or)#$cumrb#l8hGBMg694bfbVKnav31LgX!nqELO#^-GY4dzw6+5v6NW|F%M*dw za)v7Lyqa23Q#V0yj<&~vy1>(L?$|U0KPjyT(c=R#?Fl8*5OlqV`h~2K8-ndf4`*9S zqZ6whNgn!~C|rvapPB0?ShiO>#+_qaR%`~W3rq0O{+nCLOE4n(nnTG@W4Gw!F^4Hi z5i6ig5E$^8)#R4H>>wv3Y5sSrf&m@o@ML7-A7HM22rGnu;XXgiI=*7J?O#Xf^;At+ zg{dr|<=++?{ycC$UI9?5o)Utxc=9skylI+@))$Oju3$g{LSOGk z+mG+mQ6y~l9jSEPvMjI;>eUAyNUg_mzr~I}ZuSIg`_{!?^rSA9hqIH?5sfEi@WzPb z4as?2{P?NRXr0G`llGXPSS3FXnqpE;2c-(^wFD}$*Sz+lRw3y`atp&0KIcg676S9p zfpVqsvCQkoJo(%7FjoTG@uM}&36a}@&j1utt72qOQ_}dx2N2I>a{c&{cGe%SP!^7q zc?2S6VAh2%)El`f<6QZ!gHUQL$!e{OoIFtWg&eyvVw+K#<$~_p_T0$J3&^NX^z>B^mns&(F zaw`rfv!WNx-|c5oYbZG{5X3+L3;SkAVt+mt%- z217Lc9DEoqjL4wI>C*AkdHre33D>hJN_iz_B8Z_*1+xuS9Hsp!Eo^GtD0{=w%#%P6P2g><^DGD0_4a zrcDebkI@>-5^iIR<700@VK2ynFvBuN$JVBpaVvL%K{%^p%xi02qBtmb;656eXUu$3 z{~MKS`^`}Rq*Hq9IYR4eiX|v>=f;Lq+qjj+KOQ;TqPo8%&n|CA;OwEd*%W_*!zgVA z6d#lchng&XLUb#-{}%ql2Z z5|tZNi$9tRIVhLX&&;wo!z3vxX5hHde3oz*OyZgPbOBQd61+;t)3KHTgDKl^SlZT> z(Z2J;Qqlv+!Hu^{!wD)u$US$Qd;C<-t75mDWB~gXCPsuCrbb@`U(&#KiAh(eyj%Dw zc$P`?GptFuEEKBdqdHcm_XwTZzCInOyGhvf%y-nuZUVXhLkNWp$SP*b*vuq!SVNXL z%f_+9R5konZa8bSVaWBl8N9L~<+h`|deK-g{q&74U(@mg?LzroT=3*neSmbt zh%D%C{h3x&viVnh%$#fRISVdrz`h%C6C1%DD|r<8XoWPmfi ztSfv|(iasl-pklh<@MyU>^6}H|9%e$B^0EjqBorQNgWi?k3DVHO;9eGXdf-lD@31>%PYgX|jE8Rygitzq_FzXAgd_ z(3ZS>>?o=tfu%?b6{^eA=MOSc`N3CW|GbNw@?hJHwtBH7$nA_Ohfv{$F z+WpT5&FIw~!5nbye$Qm{Z^}1vbvq>>UQd}Wbr^Y<$b#UcrM(J_!>MGT9!|aVIjzlc ze;Yt1x4%q=%i1tA|Xf3Oclr7ocF1WP7}YzSM? z={f<%PE{uwz2nQ$0hMrf^8q|0lGvgQ@XBi@-^yTp>-S8!vjK}hM))s^ z;92Pp+V`X*WMYfjv35hZxIOHH2d8T08+gOn0L9B7uwE>qt|&f~@otvkGy&=^h4Wd8cj=yC& z*E9mhV_*ka5eOA{au=PTob&a>iE1rzL*G6KQs$|+M)*CDq{7E(Scm{ z&a`QpO=Ed3A@uU>27~o>0KNae8Y4fD5tK+?Kd-x<8%`!Au7S6@Fn;0txZ)))y&E@J z#ImN;FL&M4VL^F{;sOjOgv1$e>WR31)EAZ8@#YI`H)EeL_u1tt?y;yw&XKEqaN3hU ztH0D1q0b~It@EH-Cx?5bq5TP{bEq)ykkc(6Jj4uIY~M>Qjrnd~J84HHd{j6f(Pe4yeAMXc@qyJmBmkO_DFtM z<{)uVc@LB9&-7%CPt1cu14t$HJrOPl0_xUx*W*-hU~x8 zPKwl{KA;RgB0ho}GTCSli-x}F@Hm8r8HJ7RBF3m8_x!$q?pFZI6*(cx9t8Dz!%K=? zE_0&Jtc0PMw{dbg1$;V&(eBNhaSz|zG06YQsPmyUdy1z+fCL+K`^Kx@I45X?Xf zwnX~oqnN#jw5MJ{z)`-`;&qiQvnWw6>-7Ad074BD#Hw zJya&7uAaUhL#%xuw2NRY_vgC|$}v+(jZ5|qwRmzSY1lZ>OxSt{Ot`qgWI95v1(4QC zy12kkZ*ZoV#`+)0P_qT(t0FB&aaOzDZD*gC0OZa5?)*xd+BqzULP%>;!{TByNMG6I z&WhZHztMmP&SxMu0ZkQ_b7F?K-+Bh~`BgoI`hrCIttx?OItKxC`&blJ>7z3s(^)Y^ znp1j*XJDv~YADug<@;SC9GA6eC3%;h!tK!FTy4X&($VuZ#}vJ?N}4}3_aWp%Q)j#F z+E8Vtpo-vnEmk&s;`Gb|s8|1Ay(oWi1{Xvy!1StBMX7r3w}=6euoD1-?@y`kGr@AQ%R(V`Rk4%-=Yb z;x}zH$jj7r_uP+qzi-uM&N|gn7*PQRIVO!{D1(B!QdDwox;f=Xz$%_(egXII z1AoGML*h?Yk)PMev%qsd>CjlDtK|qXNN$!q_O$YRt=7~8StR0do&AcoT>hJdyLpuw z$P!#dbaWdueddx-2H1O%4x;xcwU*$7{y}J_mmB=|qkXvN5cWib2_8SF>IiFu`MMmX zQD#ynvm@)3rD-e6LI`EiBu7LlUdfi(Bcy>qM$cu{njC4S4ALV6Y<+m8U%6cY{~ppn zWE;Sk7w276_1hk%lwncZx7$~hgs!F;_QEE^pd$%+W_miaS{IK;CYpr<3a8+&bG;uy zYRf{Z%oLcJ(?h|u@Cc>oueymtxA7&S_cl+9w}gcL^lUXfVU&R0t!f<2AQ?CPsJmAQ z-)hfk0H*IDf6@7D*%m3OAn{S7g<&0I3`P$L&B!AjJF^11O~?N9Bj$YHr>4+{_Nk&V za0v?f=#O8Q|Y$;G%CS9zk83cEDX5} z6SVKvwfcSZP3BYhblTOG*C{p2^bL()5)9O(JU^cdL>Sv^yfNs z=3?KJqrn*ecdc;w9WYcFlWPIlZ#kPL&ii$LYKajmue@V5+%i{%8VMV#=`Lw@$`$^c zS7%>s)RyezsFry(woGcwcsoO@TjT$I07C_Dq%5LF9HmOiQ5JjYVLTY2AiZ;n12pQI zS^Efm4(8#$u9s%KwKYRw$jPI<)X?x<6H#OrVwH9KDbY=e$l{@3cxrT)#xWp8FxlnX zk%uJ<#L8VJ1aOP8g2x(JVxCmOL7Tqy3C(uWR5;7idO=IwRtnMQo(0N%js0k+SzzKo3n(jwQF ziJ1-NOxi!S#0y!LyEgVkD=tH?j%MZr3NAI@uain8{AdmbQDruKpHEJvfF)0=0ZN2! zt>tE+@%wgm0`tBE!mU@?FVP9_bc2}`2z{d-QsdM*nR*l??u($_qL93nDDDQAEv>i~ zhjPLXHzBDopWyPjsS4*fhQhk6n%al;lGo3<-eMT7vNJA9j23m^B)v@ z5Dk5ya8QT?Ang|OXpA{Q5P$@=W{Vk~tnvjC+Ucvw)9Vng%8Ht)aj|WzRpg;pmUUS9 zGp}bwT`DYvm%@TN_+bb-LG^{7-k$h>;d}+NBv7_p6k%e>B$+r#{QLfU<27*SN2YsS z`b{gdXAxJQ$bs>imKHD-cWU@(AmrW&(!+UP*I$*O0AU`XI`cj>aq({EIF8i$IcBZh`W;#>j#;Do7=LmMxk8ib_8eC4a zm30zUE_aof!F=I^RKL#8m?r+$N^FFBJFbv6GP9BD6|FIRal&YU=$WHJ(E>mA&oD-F zDTiH8RxjSJ7t_{$r2Tw`@g9x-eJ#tEpHe`Cmgd4Dkqx^LxkCRt(09aiZ_l?y+maVE)+k7X`e z$i;L5Z5wum60d?NZcs+f zxUrx(P^PA8--O%93+u;m4C2|KG`<1DwY39W>7t4%S-6ye{+n;Bq!ujBN~cU74dap+ zm1`02^1mL9uc^ut^YpE}*`?%8fMMSb^cHN(u5^qnJR_oCKVQ!0)F423S!1TMPv`1a zRasarhmb)ysED%7c^DqGLb>JIJt=)E?Kf+vh%ny zLkll)$iS@JatLZbW)~;6ht44l@@jIkTcVpAgxhRO1HuzL>Up&fW7AzGve^H-wOo-{o9LYaeOZ*n-BR(?LspoacdF^V&r2jc%|fU zPx)Wp5$@wzz_R>3=+JVA2UXY@l;%v8%~_t4wUmUg@Vuo}ggzxCdI&QSW)03PEGmn- zB-@RpS^j>Y6-g6NqS~#T=XCPyuLwYIy+kS5wUYsbcby|C(^62(cj$Tv-yNMVVd6N6 zLc3C_ogS8lx*P9z5w~(wpK*5+A)n7t%6N2(mJn&puBRZoMC&KL>*5hdOZ@Tk!PQ+` z!p@uQFkj5?rOzE|wR_iYwZs2YX5itk30Yp_#yn`XoN)uFV_p4H^(5VGVMoI41SU!l zlTIij-$LhrGb~)FPT9ZH7Y5Yvuz7l6j;P(5eoq88(2f4YDMhaL;0={GV2nI0xa0Z5 z`6PY2jw(8(8)JUOCDLvG5nI~wuG6Ec0{_4JI%=07=dJ{Ly9nX?hE_s&U_v(+?+eLr za+jd;Oss=ztDhUS3WI7t$N6~DYw%6pXYIzX7fG$mqV|9T9tz3cQ?OFu$(ByI{!RR7 zV6^}|lDpFbd-_`9X9bnuxD&(3rc9$$alq+KE6lj6=G%{)l)VX=Zf?2^Y0RFQ3@JQ* z0z{tn-hY96y~RSKNxiIu=I!-@QxtEEdcXiFD219En-rLj*c5$#uXKwo9wk zk!soM19a61wrRi==SNS?!r5`h1Yli(Hb+(?YB4F8VvN)p?n&L4Kt{sY*^HyoFZDek z_DaW2x09DZnzh$ocqI8v%zUZK2A(O_371cgDV&_e=IM&lpXrr~!+-~4yW6JzoJLB8 zi93dXLVc$Ko5r0W^`P3Abpg!o|ZqLFe&2ECh4luKue} zD%a5!io_P{AKxb=p>_ElFSVwlx_6~3n_FDAr^2-qSPY9A6e;L41a)+mYWhP|T(yL> zr^Ks2xJ%(1=;Id8IFfmLC1cOvDsT%VzX)NwFHjnUmNpp>kLwj;*niJ&+hr9tfBBob z>R0%c=X*y}5(wi58=r}IxXuHkV(_&u;bEA&a9=HZohz<_QQVj9FjJbY-aa&tnDeQ9Pd6Vfgp-iJP96_8}7><3fuSpK5x*A1uH8lLj-PyBd#y?hC9 ze3;E|bGeniFi#b1+i{>Oj$6OfSwbYeSe_$L*pc?&Rsb?7-!;WUE8q%Wv4|J3!feLN zLb>fm9tu4trbNdO8B(#*{ zj-Osig9lStEy!;^2>xz^&h3teb<08Fv|9U^3#$|0*T?2ltociBs}}Bau`xhK(Zil9 zY-1P91`EG0#R@T;E_yBal8COJIc;Hw&sTNt^#K`G`f}C(31-VK%GyYzr0V-8yr?YC zQ0^hoqhoK-K;wRJ(d*=Zx&aBW^ zFcmlhn|L=TiK_`KX$%q+^s*V^39MHZ+IN@SB$r4yw$}s@BuQ3~T9_pS|7ok^6L-A> z4#BjJw#B&z8d6CmZ(Hj^4wm`=)d>=a2gB}GJ49$Z7EfLbh{kc{#Fk)pY(LVBq#)$w zE}-+E`N7rmJYUH;3{Zo=D`$;Rzg7>g#X4;fKRgbnSx7pb_>k11#X%4F?6+k|ZgVhX1q1@H4|9u-2-O^e&0y54FIHct@BQ4mpMmKyy?k6Y~6zL<&*`803Co*{u%hNo18XVmfNMsT+vrE3=e9Y557Tn|) zLJI&x}U_rnYs`=C9rN4cl)otQ@6lfs% zuMyjv7Yjgla!8ZCJoVtD^JO#edH9Qlf+m2nlQUU!Fwqd%)fGTII1|(v~??)+1buFVc*-WMw zvd0_LL<{`vu>uNk#L+)M`qPw$QHyxc=oUFW)oQYjuJzTef9 zwXGb)_0s4ijHuLlPQPM_@3tw5X{O;KOWzA?zZ0nJE4LZ?+Fcsc`Ue?F4bVMgoZdWm zZn6Oh2V;rt6w+_cjosb~p_ytDe4xmYQ3;&>h(US#42IhG9J&!au|3cPiJ%Uq6MBG5 z)c=}b^cniq9Gbs|#j-I1W>*W(IRLuHis6QX0EJS>B`U>CjiiL+y4gmL7Wp&>Lptw! z?E(v0)q+V?N!zSYQ*!{JRJmMECJz}y65gF!xJ*Z@j}-#7GM`~i2E_E*) z%o}5#wRbYZm>Lx*hk6B6MOZ8BD?Q9+#uC>hzSDYL=2GxZnWnPHlLpCX8I6M|FjS18 zjxK3uj+4X=>f*{*8*p+zLw&^O1{`#U!7rE_MVea;H@k`BCBzAfSs_X9$W9I7OsJYj zy@?vl&lF3~Y8%M;b^~m3cxkXqATiGC^O{I*joF0CkyAr?ekH+<lcE*w!Se?+)7DFCpMFj^s&~ZsTVND}qn3pxm^pk4cH-c6&hqA;-VOIdR zRABa%@ARgqUrs37H9pw~vod|-2d_#hKB_m~tBmgSnhjz-VvdmaP;-P@jDwcoC{W^$ ztF^Vwb3SdA|2^(JlZ%>e*U>oBvBGW)gS(DMX6&J)R@QPZ_$y$sZU0bmXNgItapZCt zXrK77>@Yd|nG}(y-oUMJ73a0TdY}&l;E%*@!ZUatRf;>I;y>X0doB5l!vI-GQou+7 zBkmQJ4##DI|sufM;)p-MfIhZ89n_$`^_>*vh?fwGqVuLxq#qw@_s^ zKDuE)>iG&j`QWMFv1I)@HY`FhYC45@4N?;*iLo}W?2*A~>keb1FK)rawc$!$Mm^k^ z_+XZBmZoF8h(S?ZoipYWc7vCBOu>>FnCO%#p~FYenIKCJjBPHqh>!sxtOQQ~mx8S^ z4};G*0HfMH%#rW!VA%*{DWX0>*JzG6)J1uAG6!X_0@1cQ5`4vN-L;&y=lYv{B7K&t z1P^B%J28|O1?B-C#`Q~Bj=ausG?QCUfZ0+T_23o zSWH|IyhV(=ebX%1XBGQf#^&>Y{*kH5d^Fyp#n?LqKR{CC{03$5uM{ckg*|k!*s)-` z)XtWx8s|Fsr-0oPG!jz9-YtdoSBt*_1ebA2`!d0jg<=Ahjj2-gQbU()jsvH-IA|e& zcY%w80-`U%T%;n_ED$+B9oPICLqaQV-DE{dC=xft(PT}JP_)f zmn0ks7s=txFoK}0^8+KGFq1ft<2*RLrY7$SY7V=b|LF=IkYy2Yg_d@9z=+3uKnyBv zqlkf@081i7(YZK9JzwJlTW>SqL;@Mpl}MYzX6&+f2ezn@+1<`}IeBx--Oe-%o_(fl zhciymrvc=P`wg-r|0`}}MG&QIr73t%RebXmZJn?n=NRIT z05eO#)CVVYO`id{3L#xOaUaK=RZf2OMQ65Xy3(%D|8~FT1vj8kF_;>X836kdBRDvV zzi*gF=<|*1z6CJsmf&W`kGVtNw?(r_pjPYqFa$)l^UL-+vSkqoYNx%Py0x^g`(UAm zuluE}Ca!sO2!ut2*WKmo(fZ7jvtAv%-9mLKhm2n73Ayim{wP47%#LYNV1hQ65f&!*a+1kZ8Bai--}G|6!N8zK zrC9QeO+^rGrOkVehH3ZqhPDtL=u%OIu3=xH2?;h6ZR<@;)jQXjpbj8s{m46d_-F?n zw=Fm%zahl`6T~Hn$Uje9PcE-F2=Fu4^<+y5nb)S(RDXd|v>DauT#BKxPSlVZ0S+QKA1o=4b^1GFt4uR4?k?0&ZGH0b;)pCMHP>2XJ zpExi6$;aUl88!|CFf68f zU6MTtq-R*GYdy(A+FN)2@mKMHh;UG@w3C&mW?_w59S%SKNMBtH0WM@W9`z;CTi^$> z+Z~xNr8lTAp!Hd6YwUFd%=drh1qp-KfIXo_nEWKwt5M4CKG$Ws%gP4J^`E}0f1~BI z5yDlmO&j1oy?28RD2z-*WxKx(Bd|Kz+BR(F;xi6H$51TbCQ zZFZ-^!7=*{5&AWRgQejM%?MgJ$qr1{2vp+lHpm(q7)kQ>ws3B41T`i>T7{jp=9&c3 zen6|+u>n%b?YTtL5+utSM1~00PAgnke(G;CIpFXQ>7!W`->59B7OhX8zek`^{N2?= zY}&6}GuSO2j}HGpu%B2+=0$}7;(x z1EOhnGI+80j}}C#3$W`VWp|$pavU1)9sMycNg?l2QGhhEEOky@z%F&ir?>J|{thgA zC-*UnSzO=?_*6KTaE1Ekn^52xePOR7eT>MxS4-{|>;!;4frjaSP+6rYk((vWxpK75}!La;xkFKumZ$>d zeP4R!#|yql?-Grgt$$fM7Bw(4&p%i~;s6amRMqD%fW2q? zCKAs)zkgZ>REMNop>vR7-feu)`HM4%zz{`DlKmy>n*@ezt?=LAFkU`a2Jfx9=Vvso z(rxG^%u*F##FNU-~b7e3yL$(Y(-^GyM7D#0uC zcWO0&kR*bfMqIC!du;B;au=0Jn_Qc&(NM8msk^&>V9oVYz~hO~W{Zs`GAUNxr6VUFrRh71 zcG3|UCTbCos(|kuME!Ow4of=^P*4WfeYUdDmEn+Pz=;(j3BTi`A`7}HvQY1w{&P_v zRV)R~;i12PA3NRrHiHR4nY9#v$yEwfGY_gh0`$U--JdPPr6A-*iU%XM($kPBA7#t= zETuCg(;ms57_ihxb^^c!CjtM~@{3OMpLC#^^17OAd|%$kl&D*u+}g>y!^vwx(YOln zxj-+@X36#uADzDK-DBe7i~fv@)_hVEGn*bs#)ygR0fF02r#muPD47K4Q78#u`p*Od zXR6m-$q=SV)Q92?AZc@FyWF2>&A}6qof-x5=m%Y8tJ7jAQv-{nYW^oTtBB0PRCDIM zkTeoXDXD;cj>UA_Z*-*KA8=86ouYoGa|L-HCpr6Zswnndevu>fp1{&|1 zUP3Btp$;#fOCajTEVrE+vCqEX($8O&K zQPOHae=*~pYl2MRQ2T6ttR4n;tKrfcr3YXizJc4;38 zA`$UYTLXBOz~&cbI>VOIMk*XQ?ui(8&96GYW@G0|*Se@3JBwBeN%LLGOMt(!=Z5An zmtQjJ)m)1}HKrF@Wukq%{9^=~SnT)_d1Z?D8MZZh@{YHSC#5(l80qBhJGNwgh~^EcG+s%+DriKGpZhjy%s z4w-+&RyP&jQu3p1iF*Cw!wp;1o)hQi09RdaL}9QY4RvbEg@QXba##ap3c{jrn+Moy;wd<(e z?6wR*Zj$f#)fkzX)Hz+%~)ZXx#w24KZ(2r*a!D{3^!>(MsbB8#q@ z?`EAtBNC04@_9UZY<*H7tDpML|G)9ySA_jV*UsL{d$#0~Q!+s@6HLBe3Z0~n6>goJw2QAB~YYZ^gvOM&64iJ;T z%xLEHh4$VV%Z}m1>LkvEsQd}=SA&&-2$A@;$xZsvRHv*t9WR^XN1vN5Og~WV{Q0R| zbF;FlabN*keie}>)pg112q2tpGWqI?sSG;%&wBdAf{c)ZDN51u4exL)R$FigsQn(q zxtO$~>!jE|ftH-PmN6bOD&k|-l)X|~R3_CDjo5$tagKc;>uRE~Euv3%OJa@Ym(`S0 z-kaVP$3R~HrVq3Ce2qLrT#9xWL=$Ke+b|bh@UtBRl%~piW?cW`*7|Dq2@?bN3RD;O z*Yt=W>!4+0Iybv9WF=pYAdn|UPFPS4MG4;w{5U(x&CDh&`-h=tPc8cni_1{Sgjd8= z+O5PwM$Gef*OkI4D56>7=+)sAuseW|js4Ug=Z*8qO`jM)3&U`J($ezu40%yl&YC$i zff6)-$(808{P`Vju4^~fSPoq?aU-=;;4thz5=R&SXP4;q9#bw54=2!l7*r*ckPxbR z#d?F!MW0^P+SUmIpfV6Zyr(NW?Kuhe!tAcV0X_l2V0;%YnM}endlUN&hT*_r9hOa7 zaZk@c8uX38gS3qf4`w?Lt~2)3)5Ld^^376g8WEl4@h}4Lt=d? zu2SjaA7lc>_`EK~m~wgF>as6t%#HFK-~S@RYbJZ1ji|WP`<`H~24XG6lR4bup;rFP)mcOgw^l11HX({objNJQ8wdek_0WO7>|)IgSVin{ET4vh1pQY4-^q!$#fPV=w|(D1^tjjOEh0FG8DB5;(r2 z)2RLxS}QN6%g!{*La9`;C0gL$`3Yx0%1q22uDMLVpwbUVL-)OP{7h$Va3Ybi!u)N5BRAYQ?tK6ReYW=}pB z3*9TcV^W{X=Z+_gfRX|rcETy8gXeG!HjbPKG>k3tGGIX>Hrcq#>Ew08Mlg#Q>#g{L6oZRk)=mlf+cThq@!$xBLXoiIWsiH~{|7|j!6Xq| z{_$GCa0FE`S44n9Wpw~(+IBYQQ!TlK3nX7e1gPz87tZ>g;tJdIK6tTo$-HWoxIISS`SJEWu3dZ){Nx``dW{|EeB>#Tq0@L# zLvf6Nd=?DLEz0tDupt3l$?)XQhwR0SGG^^REo56mLwG1rK8w}qJniBK@B4?&^B`N8 z^C13dqzQ*|w=Mc*X2^D008C>`z}d97HuB8t@)qp4vX&JHqYw^MTUP)1xFZhvmd5`! zB%IjDL!S(V{mWFL2MfY{3ka)Jr zR8qu5Zel$N@R_IScF`6!Ih})&-gl7C?+FU&^m)-s(BycOA8V)--2DTlASW5BsfIq_`cdz-fpm@U0ZM64 zAs3f$8qqjO9|@D;Rdgkbc-Uc7V}!jE=1}_v@r9Mmu>&3ZD|rb{OBXkOkHqc??I_<` zB0_96$wT)DopxvMCi{!q+0o!UI}o&fHQa?c9-lb749|nbjc;Jl1^OHAZIJnk-m6Ty(dIaL|jT9#Oa@CyYQu<~{=wA&5 zo?zS44W>3})!s@oZt2@3M4nb)86u>WL1-E3D3aydhaSxtz7TwIDD26)Z`ZBN=H@1Y z?Y@RrfP*HaXYzWp)QUE)Iq>MX$O4-gbtf(PmDKrusMe#=mnbZ*2Up6)%a{DrC6MBo zXP;$lk6>6Eqs$bIC9x9<=$7dHy^&a;V0x1sahc$3yMcz@e)g{f5Bz5AE*CP1FOi?WQA$gLu-ZK=1Yf0+k+8 zK6%D)bVl;{tHk(t0hs81!IiVKj*^USx5&+aXK6|`faTP`Bq6q4g-PeS&6$s_=Mh#5 z+-Yg2(OIrq-7&PPmr3s8r^HQ#068P{6eh}tI^v5I=BBq6nc&od~QHhuAOD_xUB=T(Y^h0U8a5Rfs4QM@B&<> z4`cCLlRp>6_NItyMTd&O$8Ur)M9hw9vd(|#uSq+ zG1^cvw!;&Sv0+tA)Xcr=H2;gKU=`qm3JdPhzz#7}U9cHOc*Qyl3EJF8#gsV+v~ zL8yh0fD$NAzNHa09eW^09;Cv-^0u9+o#Q=BarOH)qvZw&FD8;ej~OL-29xm@+4N_i zzc(Q@6M&Q4ltdw|aoU?Z{?8|#`A)N|?sWM{ZjRg3#b5eqqRyda_$XLRo}6;4(2Mr6 z>K=Dxq`J1C+fs<1n)d!8<1B+tJ9rCsq{>WIEzq5IjUDDnBrkvga>-59Mt(6;D%7Uc z#~9ooRr*!ungiDfzpnM1=$kcN#kxKQ!rY{9H}IG=$I;l?4!m2M{RfO)x*^}Ozk-<#N68mru2IGa zL*nrkf-yq(y>BhTF6pjnQC;NPtsLd@P<2B6;oP=zgnE%pJf|z6>j*Q6yUNaR31Er{DvMZl?6%y>@y}vq^tPkyhdzLhgaF*Fr`R`drg8GR_%(m^*dC%C7Kn7ZotWKu73j|}SxM!~S+vHj|a zPeUtooR2Q{t;`e3MuAEg0UyUs%SMivQ0415zkS%xz>g@^0q%_G8=0Er+KF zY9!|T%skyL{XPlL;Oc?0-B&e3&M-&x9(`)w!q~PWT~gG}TmHlYvy&WYKDzEC{!g-~ zJi=_vuEgC8TVUNDRl{68!*o}Udf3w{vdvYB!cT=)Yk5OLS+X*tZ-x*Mm2B$W1KcXe z%bj3lLtrACVfX`8N8dvt3^b2owC+ZmKG8uBsNrx|JK&Z&cO(O^>KI7j$_N#&64w~& zCNT)s_ua@e#)SKhn%M#>Iv5*XoNA%?Qw^;n!mXA9GvR8pu*?d?wo(8BK>feGT|^;0 zJRX$QJh$Z3r<1f~cox0dw^vP=R9*UU+##^F-6|k4S0tr~or)P?iXMAwH_kq9DL}21 zQFm$Y{CiMS0>|GH2OA7{WW=>aheOnOrI1aF_XJNOYIPq9ZWdl4wT}IiOBV1 zl%4W2lY#ZZu&9xN;;)>8*k=RzU|->5k2_w<3DRI}=)~rg*ph0?M21v9d<6pogu9Y- z#5q~v4!M>#q&-Cb#Y4n>KP35(i3`U&GnQYichp#fQFoHQj8mfGaS}zhci>ZT1Oc)( z>%Z_dwFKM;d^q|LhlfAn;u}X=%B_*emfFk3d{H{#7X7*vQIxheTh^)63uflH@dqtW zEZms-FPl;r#EQ?8-4|&(5rO{Mk)F+D57jOz7jq|Rl`oda`X4e~0nG3ct(8VQm$-gm z_K{3k)8#)4e%xF^B@!BuRw{xwflHR67ZrfWQB3j!WAELgqu$Kz3v@<8#=M+io62A+rYrg;I*aI+$TM7S4?MKeoHqa}W)DL^>_ICdJAk7AGE{Uswu5`jPv7jaxhw z>OUXar(PX&g}W&uvG+oo*x;Ek?_59LiTLW!M5Yv2Sa}1J%?64qo9DBgxJ~@)@Lf8S zP-7!f)3ZCxR%?L!Sximr2Ur}68!V@^1c&fK*|6T4TdzEEb%@4>5FyXo*NAR(bqW)*ANUc;O#f#{GHgNJ&5wtL^5RVkJJgFRv4k|gtiv*H+?6C1 zC-Y`{4h8PTp#Fo;7QRbFwdmNV+DNBhv!`q{tg_6WFy2*3KRP>xAjreuuuxvzis ztGtV0)>SV#Dqrk)D6X*s_ReXU(+yUF5g#@>#zh4}_jj78_{N%&ALslxqW7^iyx zJQV`s{Z_5tTym4Pys9^U@f~o{m?B2701BYF<3#3O&MMHjtSF8%l4Ui6iJjSSX2In} zVu)HmGp0!Yz;(q6{C8;C$0Us8#}l|rJIuyS*W8SPKqk6;qMt#~xvylN{uCq70-9MrhoYiWiChXJRF}L|g`LovxsU(Pe09P0Q73Zm?qoMKZ(P z{sCXy-mFytzZt3MUy2^Z9XS3pQNzpe0mK!b0Lb|SYUVK=-yd^;G^An6PDXn97-dz3 zp#MYTSGa?i$ev|@Rc_s0h`WWd@jt}5S5UasN(!!3z|3~Gf(N%swLx9I`>78RfaR}B z4e4+FESf|MpQF665+Mr3i#z^NkQr+eKvBP}^R;C?_edqtR>+@5){1MS8?a9wOc?&e z<}yA{WGs+AfgoJcb!+&=gDv}z={I;*bk3m9ULv!&2;dQ*J`d0tkGJYuaLN*d?ic|? zG`0)xyuc>{!2R4xIYwVrwJ)VD;#e!z(Z5tPGOPd2ZOkHA$OjvE;1A0L64gv3kij2b zu&m+l#@AOA?FWasR*v z5zj#w)h`y3O<*Bpjotw?32nr>D8cZkTA&Vx5Mh`(tx(9z9It|g$NSb~OPdh|C1{0e zpf#7)v>+p3GpCNBDMMz}9tDWgIi5#V)tavc)C#$0UsD40@y918#H8U(bd%;#Rd&IS z94+HoOBx41@K@S%1${v+uBA9T(+Y7t0YE;Q)*Yd0paB+%2gxS*#asf>65j%FKeT3R z(BgQA*HK-n+8NMa4%^2tT*2w4n|UEU(zOj}r<#+mr919D+C2B6Hucf-sl@t~HSU4< zKJp5tqR#O6s*(mWT+1;dcpVpS-VxeO%>T6WFIVGK+4)}lMmooSd0!~{bl)me=Z{p-bvg8A4b&&Ob413nOL4dM^ZKeSy;(++-*G`Ptb&G z@KDLCUJ(ZHHT-#1q+61;*$xiTsZtS-Rl{RTy~6ACM2?$NS~AUja{v*u8-CYreq~Qf zjl5Z)X=yIt0=8G8%6+o(9@?|vGAx5%L=9yBgs6AreS98(kT6Bq!u?$++SW1xUBx6s zhyiEoc@$>g<~m$%)eF>|>~3i5s8%X)C3Ovgl#`1*37&A+Ndyuh0>>taASj+?S60)| ztTz=`wQaox-ypEWg;ZZu`5V?LeihX^KJ^L*sBZtX*{6TB$I8M?1DWiMS#fT+1}T>H z$trB>)1UwImn+1qt>fj&H}l0{z|qqp3`ty@Bb$J~xJO<)YX=3lDR4$u1xja`euA-- z`-S0J0;k7{<-0)mT#_GVy9?powBOYHJwTCl#vrtP@}dPR0rl2=hy*SecWj^&3)>bW z3%4ArJ05lZL8G548hJaX1WmnT!bQ1n4@OV!dgEkaE!PC%l1E|aiDSYe z7@Ft)kqVj5B6}Kw+p*Y$Af1=zC$Y)=K#N&eIcqQBlM?Q_$+RkGtN_CB>Bc+jnpo{s zH|c|YNQe=~7zk#d_DR-b#bqDSVYR<%oU&tAW*1thQ{h9l(qa@QzhUE+ZLD4{1w;DN zlX_dTZ&GorqSoYHHVH2%<2}HyxxktuIxszb#>b|o3P`|I=cHAK=f6cLwZKt9!3qc)wKVsiiU?|2llVCF#xMOu4I?=bz+FBv`~bQK zPjq8EQlW}NZA&%{mscDfjF?=%^~A0GSQ~z;{G3v-9^g}QF8$}gI3o&A02z#$&ITOGuxL=NzY$Jx$1huF9JZ`Z+ z(RxAt3|DdJVdYjA%^Jdocpm$nMwIWxcA?~VYY#j{l0I_BDV&?rR8%VyU46!Vwwncj ziH6-`Cig(e-F6ZD2m<12bb6{6Mw%_jn9_AQsFd2q{P3M#P5ot$T+Rg++18pSmTQ7r zvNznvU^qAXsi2Pui7ExI2V-3)z5F4_b zBk}N>!Z+9IIwi({DBHG@ePL?^fO}8aV{vBXBCU zJro*sZpBuq7Po9lQ-eZriu*-joDJz}-1VvnOk2^eXW(c8F$@-Udj_QN=;R2Z4(k3q zyK(71Ossps1A2ZMs#)f`+T$|x;0%2imF_CLL|F>m2jnx2FPx}7g5z!ry9y}M(x~T* z(B)a%$J6GL7lJYH;{a=u$yt|Zwb5rQ>qV0yiG3>o!sWVH_Mu|56>_c!=((B>W%qO{ zm>PU@ppYu<8j!l8W#9OnwOkXNna(zu6yNDV{+NV&v)5es_8rxie38JhV_JOwI@?+9 zSiAQ-?Mpf@%NVR&p<5TqS^(@6Qltrl7$d_Ct5o-2&m{s9l=%|a=c&oU6f>KNgsbAH zst%RV)TNr}fhb^1E+mIM$)Ei|ybHYod>JZjj;fHL9I#) zKkiAxldHV)CuC^G;MHWNpMV1I*8c&->1sgeuh%nf{zu<9muJ4Hz=FC|My`YvEf_(6 z=)hU?@Yw_X(Ae;I+mLzv&7@B;2MkUg%N3GzRI(Efu}wS*S(ClVM5qytCZsX1zt-Ec zMfglpw6w@LSNVJK10_}@Q*LQDKr^?`AC>IDMcN^c;}vGTBVOb*fMWMMh=4PT@n3fswA1xYiqL>m5=H^*$E~wl^ zFk0Y&l_@{{7C02eslfMJ^Ac?X)~VAeOM|7-Mfg!o-Ek!Z3BEpw5sPEDu`_DbhrvN>m0X*7+`jH zRtuCkU*kLn5u9$*#vL;*dH%+rUFW|K;$Dn!_kfPRKS+Z1;O-9ib{snepF@Ym zokkV=)5xUHMVyJCkg4O?eDh<~MqK!D3Bh$pvtTDo)2UH=` zyF6r(+{tE^-nNA3x$m-KnqB~GZoJJJA?hO$Lb2?q{#C#n{&3kRF}U%x0`#@-OqB@{ zmnFiQSEfvR@GC6zO?f2%lH*x#D8d?{0L2!vvsxlx29y_duLWteNP(&bQyh5XMI%oC zAHXOboyZ;&;<}@GB_Qm&6gE((ld&jLUK!~g9*w#PRi>-HHfHb8n-$b$nsfiId2cU3 zriPQiLFRVfZ@(|3MZEP^T|w-@?L-l}DP!OiSJJyNg&I+;-#>GI1!bCHoh}TYH=e-@ zRyex~>W%TMl7Y#4kg4t%+Gfa9021j1I6Hi?i8$hVhhIA)4XXev@9I+*kK_7{i@UcA z$hKOyZpDy&8=Lp{GArD*sLA5ANj0-vW3)gkPtoj_p*usYUEI=a>IT1=BaU{qv-n`h z7068rmC8Niv;vb*-h@ryOhJf&b05(XWBGV6nf@+Nwd*U~IxdRSyiBaAVq9%@nLTXa zO-y#Qu|}=91Nsuk43qs^qfb)o9j?5`@U!+qbU_(739n0z=B=(SRs^eR2myO1zWXO; z+61IEnQD0l^_3q-y7q}0aw~ucGekl~I7ctd5M`--cQ_)<(W-mcYyiI5K|ssOxGg?}Fz@(1pJH zDz1Q!PC+Up6vr=JmCa7{=Ipbyq%S2JK-ELG%E`PywQH@B~iw?-H_^pe8rF{ zJ-00rQU)J`r1P}eMO?9fRsQE-&+AuaH*GUiFiORgAg+|6b1EKwfVgm>6)7Q3&7`>j zRdNMS0#ss{$5Pd@DXv&|8ztyk z%RKv$5&ywJ>?rk=;kuSu2a9dcqOwjp!M6OGho~bs?qaq&YU?mvM$#S;8svQF5Ef|p zVtcapQ+)Rij_l%BND+dkk*R;pz}8xuz#D)bCO-=jxjGj&fBnNes$s|H<9Nh?`JRyQsKTlTd?Tpn$Z;|3_{*)&D>P5l+7KDVT`aK(! zT)xwaK*A)ro)6yjui1U&4FaXICZyjyXWE7m_IHn-^!BYr1MsK+H33fAI0p`JtXCh{ zjLuttuob{3Rx$F2Y%)~IKP|;dm+*8D&#VUInA~1uRQZNHdN@Lq0V|5JeVvs+%^wI=y$^&Jq+fdb=-| z<_}P4->+H?hs~hl9@noC9N;XzZozC``0kDTmX8}yGych=i5?PrkkZ9X*-x2$O0?z@ zIR^EOqJA|WzE^cuG1n}o>AKWW9Sd_T*-D8@?@Jr5tSQ(S`m$L7*s(2H(YlakuvAdv z!WF6gpAlS(%NQ7s#;2(@@l$IRUHAh;^Y*T~@T%+7H#9vO);~{pIG_Y3uv?3H)e!bT zWblAAB|)}?CVT@#W>#}!WG36obk_vq<_(s)xHUr{u5@sA3}N|LPsk5ZYD-?OS7YtE zG)|K2`6_fiR}yF0@*C63a)%groCeZuk1sjD;E#S6IDR}7sJzEQi{R^nR?Mm~3V{1! z7Uk$a+V|q=Fry$sBe7Tl=BHk;;7DuQbW)&CF>YS&Hq&%;|B0#1hxy3I%Rjwqeg)ejaW+oZJL??YGz%++Qs8^T$ zipZk5cSutW4ITwO8;WYKtHD#%pP5<2^s}O#NsE*7E^f#rh28>Z-?4*v;_?o|l?vyY zu9H}%JXf2i6bM7lPyO2(mGvzu7-mVVPgh3z(xOA0^M~+|)XI)#9nO@jCcruHMZxGZ z#M3IpZ828(_hrj(($z%M(nb3Y#bvf=N2~los-;&Zqyd0acHEdT@5pq4rdyTQfRDpl z0;J=9^>3VIoV?iG`fZN{Z~G6uI5jpc&_N5@rh<{m@QRry;NHjY2hFvRN;hC( zW#J_Zt3w<1_8rdscZdnYz2OTwL4`!)oM94!p-fy-N1Su&nL$-efmMAYmXTRtr+Puk zi~#%c#v(VmpC}FOQj!!c-iv` zN^dkoA}V8^Gbkb3OF*+i-iqkQ;KRICO;mo2{TSJ@qO%4Sk0pF47hXp^mYaAD1oMGRdGXuk^tHpC<_<=Y1cc!f_j0^M83o?(LJ{t zgu$HI2eh*J{05?oxH=;LJUhE;E0Pf1YkUz^q?MjpIL-ZvOQ_9Jd&sDs(qR$RZ3Yh2 zmWGN)8z0rAuv6&+i&x&`p8K{7D045KQFy!r4Zc+aPds`)52Za#rd+OPLgq&LOVYZB zO#}!&Uwq0pT~1k_-=Pa=2aHl?)~%lAQ7{d}?2bJkKpyUmP&fHm>F@r6gd~r?Rc2m) z&wv?xEv?R7y_av6-INCLa&93JB-~i2qfS-gF<0v92N)JJPg^=m2A7tZud--HG0jrS zQCXP`-E)CiJH7Q*rvKVF7)4wgGA>H!gkfXq2lxB=DX$L2xo@7~sG%;^0kc;^j*rgp zi7sGLkjbpB#D5kxYANh-Li``z4OthGmnPg>o4I_ha!Zol(F_Ja$$aLTqgM1xO%q}v zm=2Qy&64YN1`BQdI#tL62T4oHXYmXt;k1f}bke9o?9>M`jT=c{D#-7#aZ5&54gftK zb2Yel&KA4}EH_yygk!9sUI#vigH|z)j^267FlGVm1c&7fD2h;Sk-O^7EN&G#o%#Nc zE<`Jb^+nRZ_~raKs}b7SM8oFX5~@1!QjBpOhy=j;Pore z98HVqnM-P4N5#L^OJ+t%^BMJ(H|7d7;QHx{=*%uUy=q`ZN+WFO*Wda8%&-Z13PH3b zU=!RuD}(Q437QBY0O&)6SX@g*3`p)46~!6&p%&8j$5PN|pI<3tj}po?vzAR+g2Xul zRmZiY=?)Q$#xYKE+LmyrYtq7jIUzT9C|;N*ZusteT$;)P4nFkUK%@-TSvf9rcr;9n zUD5j{GvtPJBx_3Qed7O335OFZzMYRxO#l z{Py7ab@E$7%}=MqY|BnOZozNEo|w3c=(SqwKcnU8qqSL+fz=DWr;$pgx-bj6Sg&d6 zcirfaaEn8>@cDb4Iks)Hk|N@ozT9=k8raeGEk_K0jWqK3mP)?FxtpI2V6$0BNV_Za zUr69x0c5sQYL70YW86axgen95vbqCFRf3N!-{^nd@XvJ9+aVf-sGPwP>uXk@fMTFd zFsrN0jnII?$MGFA70_tnl57GGn^wB^!{}c%^8X!!SnAZ;P|(HtH$O_0?1lr7Zy%U) z@lfms5PtvA{#y~~9M)w_*GpjNgD1I}Ytx-PVj0P>Tx)gw+n38)xaRv|L|G~Sx)V|% zrCMoGV8sjju7W-7(sLk)=hC+z0zV$j z%2k_6IEv)K06*e+49X)g)ZkDKNM0oxf#|g(6HO;r+=8zxjZ!VCz~n0-3M`WdF#cu1 zNnDz)P*i)TYS~GbuJ4^t7bc`%);uLt z3<&0$g`y(OJYVzKJ#n8EUU;H43@ZZIXaxZkq|as5Rvjw`vS*5#X>}%DqO~*;+X|$} z6>8-snsbH1$@i@J0fuUh{J4A4)sR zfhf+}rI8u8hVV*SXF}H97-#RhMZI?3`j(7DJc>Z&t)@}J^w-rq$Lg${Pj@qH__v!e zV+C>zrg3fl3?7bW%B$%5U+~ZLjzRvewEkTAVG1A2;y=)aEoKrAby9A`_HHabk{v`YaU0f%_KgaoaSF@fOOE1n} zq?CxCKBJnIwE)b`h{5+Tm%~Q{2r`4U-|z;TZGhC z%yefjhcJ@`uvul2XLmGZ*lq=JLAj zr&an;lkZ~_m_FwGSb^&5-NQ6`re1ts2J+D7q~NkL#&v|abp)5o)aj0goU`sOl9H11 zrq#t@M1R(a7zZthb`^<3VMpYvAe@xYW&kbXCeo@GZUDhI==%Ahxd|*H8`Lg-3r~}3c4-DR$ zF605L2(2DzZHZdAw@!-)3=>1aTQuS@nZ8HLOyNP(+4g&e3c#Vih49CTw)0Y;;osrB znfxGcNa#VO<+(SHJdcdhr10dVD1iqb11g z*H@HQ5<>wG3ZAyULQq5qhGjapvCafY^OLKte1p~a)VCSS;z7T5yqXW=9L~v}GG{u2 zA(;__+)B4PLvxZB%w3ea%ax--(AXmEn8Nx-!nI)C(Je-JW;cABXZ8(Y(Kf+mxAa`N z{+2uZ$SY!AS9{BvkWeqv-|TDXE)bVC*vLC(SPLqh_)3xjJJZGY@VID+) zR3GnXF8iG~rR0th2!zD#spo@>0Bc#PZhN4V_BDQ1pLA8pqp-f0F8|>dHR3F^<10BGBE0dmXBW zZ~Al)xx?PY@wNkdfVJjYc?``!KWDeLna@U{#d_-KU~PZH<&}fm2HpDrzcM8#07pPn zh#=t;S%wwGBFGQ8GgvS;N{Y_0^^;DimAGLc>S`nb9Wpb^U#s3WD3mUF(>rhf;Tv>Y zoJ|ZGlq(5|g~xKwCN~THY)-b6XK8Ue{V5+p+v}2pWRSkPw{d<6I<DSjIy#ICIz%vs|cBS7@76YuY9Z&<5BL|8?2iQ=j{~R5VKmEmJK)b%85MY z7`#;5QZ4n^7}Rh%Z53eRUxrEv#0>q*INmKW!<8`*1?f?hB$)N`q8|J*lOV8_|KSLB zM~Bl!yXzkoQg8OiF<`$ZVWklaUW-OS1`otGc$$SgX-7EB$dMNOXJ1z~uENW=WTkv1 zU05svrnG4A;!Oq3FGMVYL$NvMnZF4HJ3N)hyIzO_~LA1{Jp{@~DLj?oytVGk{8OS$jl%6Fl9F-q@z znT-rt>~uw?fj^#7F}rqf@F@itA=wmtxM{|aZHV6cs~{%6dgu9# z<{sux=lF(NWn??N~~0<-7=?|7hqf%P=6ZQIn4q*O|IfQW zTU_zaqsPrzC@`mNu)vgwpNq<>ODqkVBu`bRs^hn_W7!A)(pj;To3G`alkq&o6kDW3 zk=Yk!{0Zc>NP&|{*tEely5buN(U!!f+?URYF5(F?38E)&(FNB`Fu(Cvz#ci@5F@}) zv3hy_SchY61d%N|aHK`21sa$2wkGrXP#k4Ah#Zhq1uDA?1Ssl+*+^WS-APC2b}SBa z1+Hjqw=ny@S2Wr-zypHsP*v?b!n^tq1{dM2e118gziD%}50UW-bU?jPBb3k>&v9s+ zw+KU1(6%X8$W261&c{ z$PJ@Q7n5*KO>E2abC04ub<3bPIz$aA)Th{<6I6%sRBi=3V%J=9KnaG8yO4LgKBs9! zjpdTRmu*qZH!S3hVvW0TFD0BG8bn>VPw0>qMb>9+u%DfLEvl8_W5KhgS#A^wvH;KK z$l;F~vrPn4iCbgg2T;UvvxVC+)w34fO#LxK%snN4`&D-i$I+k0fO{P`;%7G>I?v?r z^k_Io4q`A1#e&_?+oI)}oxA5_GOTSpWhrpVx~9Jvr(ptX;xdBE2u4a1C(+U+$QvrR z%qY(Dh4akNbZvwfjF6KBvZ3o9f)1n2V+`P z1xD@@I}@-U&?F|M4%-l%NG$w5Y|cY%9N!h>kD;dZqIxi33}X(ZQ=0r- zN)&~@RnxgX9H{YaWM!xs%Sn|+{N#1>@puuX5#{J_%4AIQkhup1n)~AJL&xVdE%gLW=ex*t-UKTd3Z|j zQMp64l<_QByh~$HUnf65aQ=m{J=#stK>R4f=r<~~mqyqtEx>xyfo{PAiGB`AhIke* zMx{LmX}W0a%)N=k7^YbD$~BoWw)5f;{me z=kJq0@=YB(-X*bc0sjZ1l0Y(nMu(~-nQ>$j#UVZ%Uq$CUg~<*QaqXAFm86w=o64lu z(=bl$uQY{`>X3@t8wx1Ffp#NnKsqH7vgfMLw& z?f_x9Gn^fFk1(o#=exIwp2eXY^K3#C?7Bw7K{9t%{~RjQrXNpTmT4}OiTVdlQl0w;$?n_xMpVp z6sVzKty(#CENyD)rk`7Jx9YJb8nDf+WCnh(Ma)bs5?aM(0A#JeiYR=fIMjCdkN7kB z9o|E;BKrs2tLx=g(BBZcnudg%yv!|AeUIyW&s&4IyNE5FR1Xf7mAxa>|87=(e}qzWZ}_C&W@ zm3}rmh&^zw+Z5M2;C;aBw|5(rS+TJI-7A)G{s4pm2)v81Y}Ed93XGnvC~E{?*o|Oj z#ZB`#gyLwOZW^o?{_Z4jsLNMOuK)s0 z@_?f`cT!}rvkITQgxk$~VY7G2KjsP;suR2I2IUeFL>ZdC;+nGAIH1TnoZx=QOuN~o zk1?bzg%^MC+&$B0t`_n~HV&9K_~pDluqNPqJ3BuON@cpYa-|=N`e=FZnbI)|+}Et^ zfqBmtJwD$4|DCg?+6lya&YnIbe2V9WxOOwO{?hh?O>3u_`#a8lgcEBbZ;}?(Fjw3w<5Q@=BKCxqNh#kSU?p9`wM0=+mgxUZH{eH8E`o2c;wrlEwL1orV z6*A8dXug6_TG`zU$hiu64?3~t>0**0^Z#gPJS*iqX~z?{vlVQO4?#0DOi5E4tf2Ea zs!^^ESyKIaiil{bOn*x=;FSNLqLgQMZ(hNi8XS|>>2*Et*z2~MbDEF1T0~qBzgMk? zo5(;pfe)n@X@0H^#ODH>D66XmNR7nCJzgNJ4G}DRX;g;gOK|j?p!HI!37fmxxmYue z2=D9!7CbB(|9OSQ6r=1ADkmpI4$`j<#oA;8d`z3q5$UEC`1Q129&!R)*==L~D5p!6 zlV8^s5YH}`5B};Q5Z{>ijP0@2*tp%@BR6SgH?x%06tTO<_L$!V(i~mM#*fXKe`pX! zXuC8Li=X@xFX|KPpznq?&--6xirYTyWaP)J=iT{mGdg!V zaiq+4{0W}*iJvBdXzo-~T&=X{{~>G}ox7vMI$Tq!B#CO9;w62DL4dbDaGko)&K;|! zWG7NFk_n8y_x8vuW$HCqMP1+zjL2JHsFA-vR}Nt{{E>uuX&uCpfrY91rzaKLB_Yfx zFMlQ)eC=bWN)8NRCX=5Yu-cyfGPh;LI(^oY^qbd&QTK|FovoXXS(GxW%P(D-Z-6~{ z)JQmh3UU{iH-T19nPTxYM(bXqWBJa2%#ijSPk-ArS2*wpX$QwcpU*hS>BE3-lkjRt zM3qho%c``s`b!_y2x2mUKoq&3RY0|eT-+3b_}iIYT%~O@sFM{uV?-vWODt-kd6aSwhlqzDY z;JGOYMTW-%m*nU1frF=Ggph}B8tdc__zk}iNX2HJd!8o$4j;>*7%U^PVTsJGv;{e9 zv*$S=b%ixVDNJU<0JsBw&>*`wUMeQiJ2`;~HhF$q2J4zz4hxoif|7gVnpLZze-&IgLOjWk?~Y7Yczgt6@o z#o-1v8+qHWkwAZYAh0Ub2NvD#sel=r4CCnlTfS&WHfDDxp-W_DgtTSQ-5m>}cWO6p zXLd^Hyq0JI4KSYjdzD;}3}ob&j6D9ZT3}*43stHCL!#6#F*1s%m^Riq&aXo}@N*=q zosJJ&Tth1VvVQjl&>+1 zOl9s|t%qZqLwlfTga_OSi6obH#YllDaEXFpi(4zvP%3)>vt%#SGHC``@M?Fuwr#}n zu}6yv4%XiD!|E?$4Xe47&4M`EziyiDrG)Ed=u!P;N$zHe9rnd^H%ELH9m+Y(W7VT0 zTBT*i|7I9O!i~P&jdaI*>HUhbdmi^)n#oN<(L{GQbS8LtpO$rG>ie(zyI4f9!$QVb z%v43{c}2)DRJm2J(WaJ-PlHNl$^mdztXPALkV5hV{KYHT@05MjuPtm^DHCZIEH}|& zB>lTI*2SMWdU7Hoyson!Pex4O*TQ$D0g*rnnp>$_Tl=UY3E(HU*1#)AaG?Rk@!&!W zt|5Ji;&PUlU=q_UQk$s&^@TJjh0eiLB)VC#g`?zp;7S09XFjvqt6*rp+XoGy`?sHOXQkvfIzeD$=nGwbKJPB0{D&F3kdZ{Q z4$Q7qQtXFKu{=p`7^VvoDNWy4%RBK8ETSUM{`Yoa!%f~fkqB4Wlh&w9rM!qJe%yhc z{nI1)u$4=4L~g&V1E*bOzjdH9iK*6` z2xb}47-an*eHFnAf{@|zmni=m$uMD%Ag^^NA(Un+i?#qH;u7Ul+R7#~B%fq+(@dgI zZGMU1oYqD;P!I`yFr8W%1RoBP6%La3{V?<4hGe^gIFo}62g+Y@BEtFcme1RUu-g&H zx&tY#&*ak&N0*?LY-_3!vxw-a*FZ$u&0Fku?Nv|`Bm`RqxeyD199RU#-LBJt6`0WBu1 z`Upa--Ky+lBdPb>EgS|3Y1ZsanBIuYXb7h?G)|dA;AspeBLxCAM z#oT+(ki3^6WQIBd{R!fB7CPL)O$44a89+d7cff6gLp%ply0AM=-!H0$6?xk~jwx*orCN&_5eVU&=O!-yR)W>u33)t*jbsh|Q*H%mB8|6y{)F z+L5mL(j47q)&wRgtPD9{G;{W(t9aTAV_IsAWR8WkA1{lPnnFh98$$#S%`GY`}j6?^^e&x)1xh`Nbb8+2U4AsYbOhS`PRqf_P_Q^@C z>w&OeW6fUHX|eU|Q5W6htFQqfhQoFWv_2_2=#d%EsMFjxi5g>Leo zid$d$9$}=#3u*g6VL=Noq4~@)oIbPT*bh`Lg7LwBv((AT>Cz;_^hYxosj~a%kYmn_m7!xE9cOOR57ou!COQsnjfiL(X zoOY3}Z&T~5-42P#@Baeb2%}oKSaG>7tLV9qOr1d_2ISXr(aWU4;yhdb|_?Bs4Ixm(NM-i1+;COcOA+QJ*wh{BWR&S+G}2l z;6H&bUa`=$(9!8`WZ!V*^=!EHOLS{f4td&_KMD`gxL1DZF!=M{4CN9r_}k<%X*UKA z_2QL5bGbM6tD@H^KbO*yY!PP3W}o_>euZq)R8T$lF?RLzIR!*z*r4w*xGFm?2%0A0 zE@^G#*{TB-n23QyR(~_r`*i)r;ELA2usUY@(>L zE4^Bdw-8s*C5?(X?PoL5l-wUNcMBZjK9LA82iMGh{MuswX=ngh-y<6>*q#?o+A(Re z2)OM!I8{ms8S5z>s_d;zPpKoPFdR7H369PeJ5Bg!_!5BG1ms!p;5`GJnAk;TN!vDw z#f;OS7*W776(eAV;YH7W%7`ju!9@J?$(HTcL1DHB<;i1JR6#FBk-WfVMg`$*0~kY>{p{ z)d2rL0Kj{(v)7L*_1GASKTHv^5-BSLMetE$UFg4WingE(!_Znpp2!rAcjq4&yvXY@ zepAZ5AO=2)1h>L18!#88eG#A4t~IY0Z82owMn!ckP!<)efXsCYO#3Afx>}t&8uEy1 z1J8Gfut^`q^nE4P1N-q@7%^&_Wospjzy*62v1&_!Y)Tu;UMPS!0W9Wkz|8mueV|9L z16alNtu!3F!f$YhbP*#eGU1CIZBi_W)9lLn+1tiRuf+<1P!f5g$!Y$@qn@bwR96*> zQ@{7eoWa#F)4tUM^0OJl1P`N*26X+*C0EqGjMgX06Jc^F(oPy0XfRfGxj%Agebz;s z)K|W0#@JD^YIs!)#~D^1jD2#aHitvR=AueArico_p30liEe2d|_WQzGrDk;?O06sQ zcuVwCo5p21MoEYnJEXV3BYYv5J#*||bQyu>GQS*WOZc2!KQCI%uth4&wQEIQ-`K&v z=>Q5eHQRNvTpEI2`Od-Hg=bj_9=2{|MJ2=F(Yd&KFxb< zVbRG(PrXe)atfwAJ1|VSIE|c^?krsS#F+s>8Y7!b+%SzTO9xyQCn0krrDX5g46%N> zlMWJ#gj*DMS7F2hz8}Q{)(5@`BTBN%D&_nQ1>iBZV>v2D4-ElKUa{{@PK;&%g`v9(;BOT>%UM( zM(sM;6xcnfId7Mba)JX%Lh^jz$0Ks#Y3vpQIcTbWpo8arWyN1oU5qsIIXfMPreBKS zz5x3lyMsra-X_uoo}m$T|A{%=g*Etz8{cOUaKe2u2u=0ne2vXShJ>|FhBjl;5I&nd z^r4P&nC1d|Sy11VBn<+T%mLPd z`!H{oDy49y%xEJ%RRO(qaDStA-UZr%$qxS|bfX_ZL!2dWR0L4U<&RV4&>WuNJX*u@rX}p_e6i^BkM9Yw9Ij4qqUGn71*_aI5cephbWfbk3Om8W#W>QTu^gort@g(F3AlSl@Vd<*Kze?S zSi8gLG)=RXwDQ`EY9!NK!PenkuD6H$R&+-nX8Vu2SS&_$gK7wbTe)x9_^gqMfw6H9cdNpy;&n6jDY`A-$%I#08t&!`LuCdP=_zaacL$Qw;0*D)P~flZikXizYQ9vMX9kM|d=3khf~#%2 z*Vo+YNKtv3*Pekv#vZ2>(O)LC{)*Ti*R=SU9buuH;h05A6N!t!YWjn!z;hdEZdK>> z%CNq42IkKmyIp~f(>@E(ciph`E!yB{Z>4v zWV&2E+Gf&Jl{dyhI0GjYN*T+{Z}U2JfQ_<&(E+$2BRo!gSR zZwg{eyyzUXG<_(X$5*m}TpFVb2N`EFkp&sU0SEBUM{Ur~2`q>FWg5R|%`oqT6G}P{ zTJNxbb;X(+TEC0>;(6N7%66G;KLi#G>};2Bk}y^k=}S- z(;4`we}h#9hSljKL1V>j-3QT{zj~tK&~TJ-{6kGmJow7tn04_&lBO$P{DPeaZ)9&! zMTCVJQ2;3u(@2eIUZ*>k+VUZvlL5Er#|xo_QDkFD?+5k*5&~cDOeD7skmP-R#B7#a zM(P?JZrD8L9~_1cU#c-WIPtHiZ=s(*E)0ciq6U^sG&tGxQED4>*=yEFqgK2n88Yt} zmq$0`(14Pwa>_hu^K4~Fb{10m%8x9v^Zen?#Hejt7W{87oar;?j%u<=TT|t{TVwn|OW|1H>yVQ28xO9b5@LV>~=^MMAqGH-wo z1UId*#ox^b!W29IChAgFV38g-WO!(eGrUyjF-3`3I6{eD*cq5grwKNsR)*&EGeTz! zxv1?@CW5s2>svC`o9Jk#GD7kQ&!A272Jz=Q?^)NP0mVXA|jD z2Bt65ZMNle`Bz%o5GdKH&_RC$uJ@-@kJ`d?__Tx41XgAY?iH61Tah_BuS>IxSxM9U z9>>xB(>mwTEB6gPf0`vwhS{f$%-bzmoO^6x{()g|V=6o<(rbsfz@@P0su%Z8wYX=Z{{isIa68j%WCg ziVwogay1+T0XAoW79y%Cd`CV{l622uQr-$z(OYT|{Le2{ZsK*Oob!Bv$P&|D=m0|~XBxI$Du%Th> zn?v&VPh-#^@2m!odNeiOWHx*D&*+m$&40HX>S=#JDeBfSS?)Me%>XJxk z7GvOeqpGgAIrtQR-ylZnRKnOvM9xCTH*oZNkIOwNRQVxyg&MaMBgZBS`ALzkim{~y z&WQEHBv#Of5+|%YuSbWEwcV{o~}%S*r?e_c-oj8F|d}7LAtdQAE$sp)!vD)f{=B8I&)1*HL51i`wcRogC&%zD5 zCJ14OIpBsGfZ1l%cPdLUAkY3&ty*A9BX+1Y>yiuD0YN1xfCoplw&~ySCS0sjfWNUm z{}qr67Lp3FLrfaJ0R(n*ekYrVp$^;P%M_$w`=9d-Qh64gYl>MIoZTz-Gb7ygTAA z7j9MmCT1L8{xKHqXp6&`&t2X0BLb6)C=7XVT_R`XEWcn%xPI3wbOX%wyvdHtkpb*J zwkRL8WteC?wDm=``E!Hlr;N!>^sHMa1ibj;qMtphz6j*@X?M^{BMyu4ak}Z+i&w33els6NyB8*S0Eo#xpIK9QvF9QF++v;St~ak$2)hpur5|* zR8hnb1Yc{JuJi*NS*}oy`v1MKk{G9D$mO+-R#|8YV6n_1didyE_~Jy8e*bLhjT-;lkRqsL!MWkOUA; z^6iFyowp*^hR?=er6hz9kiNstaakWDl@9JcE04W$)RA_Zs6?B2F4X2FJ3WVG;sPe8 zk`D*6nB(gn?d^@Wlg$I&!n^+R7;N@8$BhG3?iUF-c>5Ru2cW+*hd&iKVG3y3B(+u} zX&pd)c^f`s+gr%S04w$Vyoe5=x|N%4U~}A+P{EOI{UZLOkp1w8O5+)GX1UT8_Vhs` zHYaT!4jm+ZJ-L$xqIldNyo(X#b!&U~JAZCzi2IH(bgM)vA9Gb#NAQ;%WU+iVguNPM$YdB4V&=`;S^_gZb zfW#ikiD3h{^w6G?;lC`8cH%sVW%=pBepx%=_bV}r0UQU)Mc0y8%C}!ChS?J6?<@Ji zuZ1XKbhgMUYu6QY`iYKlMuJ&bkR%Uzbjx?tPskmvM$X_ldN&b~1hSHXYHi8-CW+CF zU3|usrAz)7HvK}2+uy&Jd)j8mGVVXS`o8k=m3q81qRMLI0pq1oQyN_6fIiE^nNN*^ zN%j79zBL7ei*Pv`!a=opS;^o4|5if_cS0M3vYWS}jV%Pr>Uhk|>x> zaPH-ztxaK+GjRpP8X_V{XK~?R(_}$Tj~_?gw}3zJc@b{Kz)C?-@U~Tawo=6h?%Tal z4AkbsVVi<>ljW9I%z5&I4n6Z$#n#H@t)IKT*n0?Ktq#?^A`?r&o=9oAX+2wYiMb=8 zbTLm-e&5v*|0X6FGH!3s+0oBi(g3z*q#;`mOL<9*Kj=YOk~3REBklQHV?g>=U%jjE z?M(N|_f&G17?@Y1OCa5nE$~)rmt}m?!@@j1E1eg7Cr8sv10<#K>$t6@tY20+kTJ>j zc@KnmOq5pfj+E_NV|DKNB;lpg=33UExPp7_#-d;HaDOwde_zYHfUH`3u7IdlTf@Qn z>~0c>gvUnC0ko}o)C7K{Avg`}kc@EDzMyg{cbR>#Zl}ztf;@}XoVma-GH|__kz`NO zu5#h^&`YSSjE)(nzUyFf*>6t%QH}r1c#3uk(k80(%w}5U#b5RM%>>P0aQAQ6Fpf+d zgAsEQZ%;~mSv6ujov)2y%${be)}go(3KxM?9a8}koAvW;;m+6Z9DIL2=oHd){&MXW z98|KS`S4X7J(@-U^OE zWg1~tlsa%#;Q|M!fV*pJ^F=(#)^Z|v#)tJlB#aEE*fTnM=!Tasxv0JwE@-%}8Qnv| zLrquLM&pNKCEa&>A}lLggVJtjyUGk=H%s89V(bKSH*5a5{EmawUW}=Hg9kpekI&oS ztMa)YN{th=t;h_$V#I2|_^@07RZ2frzh{h)5P1!+$OVR_w(?i0YzpZsA;LKgx5=tc z*qbZsGzL6url9&dP1=)p0y&nV1WwYlIa!?bi(Is{L(YeK6=pY(n)Lz44Hxa1z;8|m zx$e8wj@L$+LHYjp`@==LKJU>~XnVpJ=&y|{igLRdvdJlw#H(_%2Hl%ihp%Voklb18 zs1;gp3XzdGeq@uXdE_w+EaS7{Zwhu_+nd)VrqXdz7VcLRxUrF0?-7b|v=3 z&uqvaNO1SEYzzxNQ!fD7zKG*rKsi7yL-iEPrC2OSWqPYr)w@Dxq@-IQ5d}HIrqD2{ z$xT?T4N811+~cEfNKbP+BmsS?u58x?&)v>Pt`*>xhb0UIhx)1$QuSMVDr721_wQU9 zlgE%0({b{VTpV?s@C*JFf4BAOYlg9{D|m~kMrgI}>KIi9_&G1`bVe;6+?@SD?CCxV zGQuIwrSErP4dF;E3g{!WAd1q0VJ7ue3q>EqLcYE%T1s1QmvTx4Y&!ornaGlbfUsV0 zkc2&Gnd5Ib8?q+q%+OvP5`yB6VUt0)oXnr))!Ms~GYJ;tDCxL+wYQociHL9$>t~Iu zplPgQR8;#ksRHTms0*P4D|D-cx`9aWREpS5i1N&(3R31z;!~{S@fZ)iR0)--+}rtO zc(g#`cT4<943&)4bA&7l#D`?dq{ShhZrZ{>_XcM6aTtvfwp0$WczRGUQ=}y48!6(P zVLE)|y1!Jdz_1Yxc_->0YSM*}I{JW^-LCi5fBget@U=3AS2ki%w;;}PdiaQWHwB@LBG)M0jI)v=Gl- zVMcM*!-7n1s0Z*MTKfmRQG7WT%%5}6d7c6Kw=I=csAAM%rJ z!m3`)K&v~FXdirAaF8VwQX_XUYu!b;*L;eer}~icvFCV#gLRR)0Db=295M5iDRTyv zk?qeoXQkpKP_2Jz_O46vkJkHl(xyUHi4GoD6D5GVVP^14dsyV>{clCYzv7 z=5R}t$Qy8sS=|cpixrwCLLdSAXGe=L1>GV+jGidurA*kiOU!3h@$fKGED_*f2lz~t zk}V9&c;2LFEiz+=U4PoNU|6W${soo3ar)Vkr! zw(=@X99gw=`h9|0PXRSk1oThMR_#5xzB8Di-eIP9_(#wN)x=_HPDfeHJYn#*Er=l8 z3`ad}K*PE0Uf4T^R7;!a>W!q=W+RCL`s(lC<%U6^8^TOA88@&0`OP%e-i+u{(}u`b z-4;ZFp#U^+gRWYxVd0-Da0P+{hH9}9LP^){8k0{byt*NPw;7zs&dbNjfIZh`xD;;!KG9nr-=R#&*!cwB#2P<$ z&X?DMA&QphdR7<>v@=#2}*G*tDZFd}SeBX=-XiWay2Y!OzYz_@i5 z+4*4g3J2YRvh9&dt$CXg)V~s6CcK>MmYiYiql^0#ykpZ|(9B}{l$f-+RrfxV8?2kw zkV&{U96fo9fb3J?z^L`;2rcb-@plspE&b$Bi&Y4{#d2;{VWKaLQ+L=NxMj>{w~61+ zBIFgW9`(Q0t)Kf*2#MkiS_uGLmj7NRZBJrlieJbbBdUW1MfHRob@gMC{zoPvv)Uyh zSP0y_Ghsm{GK9>YnED4KlAY5=C*|!-3(dQNLYoIX3qjG?t}Z>Bh+XQ-+;lUWelxK; z&93+wN%6#QY*2RKy{6+0 z3jZW>3KMd0s`6H#I0d~8UxT3BipAxpD~6zWD3P&IL?)s(H>Y8l!t{dXWUxT2!p%&* zM}0AKj><~!`7dj{_M;z_TW|JwBZ#=V*TMUFG?+U5+j~pE9j|R4W@HFf9 zzFF=ODy$g$W&nLgiwW48X;)JdkbeUxeZUR8?Br#pjAQnN*S1IaI3-_T^uKNA3Kugh zul_CqQKUmeax>~lgL=d*Pq1&c&tZqmu%H=WGQv0^ezankABhks!$bqs#gz0G*hm}jZx@>HIY16G^{fg}-3xg^N1as!HbrY6T^WxU z>R51X!|OS7I3XM36%iCS89fW}woHvxdHuZHFnVgd%Y$RW%|@bNt#X*4{x*)nOFBLj zsB-$steXi_fj{6n7IwAa44dV|?usrfo?e0RQlF=0$=Bo@*5Il#6{(vfwVJcS-exr& zLb7pGkgOd7iztRyGAJ!TDWKl*0ZlNwlylfB3#ZjO_Vk3kI#9o{A?}dy0Nf3UtmUqd zw*KY?I+)edhqUn6tlR4L-AQ`w(d+-xk^OO=J$2b#tc@CiTaBw~t4dfV0G;Q+a7a&?O)lY zzsyjm`w^z>7+z-*J%$LxUZv79(Apj?QYRSj&>s1RNVYRa{ZgMer!xqN_$lX6QqK9=d0`9cS!UZL7;1-*&&p?((cF14HU z;ro;eIr~lMP6Ip8ZHPU@CbJsAkbu~Wt^?OlkRrq8HNCr8wFWl;fQ?Bg(Gz^%$u8P( zYVGud9O<1F-oH+g<|TkNnH0EgY3w++dMe<%$*BI8eR=Xx=RzI<`O>EVSn71c`$x|jBlGESHGVp;$cFY3 z59?$4q8@Ws0}3HTgXY^Lv5{%7hP6L>EtofuVY+FHFcBeuRG=L+nZF-O{nMoJ7)jQ$ zVd+xVqj}oDoL1C-Sc+<3BL~x(P|?w}ECd}2fdc&V+=3no|5&AG4^vSVJaW;j<>ETc3l*Nkeei zlHsj-j@WQRVc4!68;Gaz2Upch4H$|VsIPX0t7okNC`(_s-@^$ag!-vHz{N|^>nVFO!+NS!jS4F_$4e8*Rr24}A7sA( zd*;`&61wh>;c&hlb0R}%7r+59BRke%_qM8O;QapI{_{9c;V_t^-`HzTx|k&{D7Khv z@hJzCMk1p>u`BIPsYzrQC6ke?BZ-To-@=aYv_YU&Zl=#K*#W-@ zm|Z~>AeEfZ?47=6X)&!#6!Qu0HUO6IvTC)@I8FqWo>C<|hA!%o5_q~Ck&NQ40jv9x z1{xntKDZL6`CXj2EkX3(hV5>h)M<+c0z=4y{VYN-C**sfd}yQ#s$acO%Un7EQR4bR z`*?&oWPiN+H`=$(%OwbD+}B%v&FkZwAcWEi$!1~U1ccFp_X5DDZBzy!FL|b{jjU9R z(%nTL+QRL(a|G^&!TTz)QU_=6MF5AyAs%eyg__-}-}ePDa*dpZ-e7&HO2U87LX;JH z+>yANEOY|(tjzkd(ZrX}z0pvSL>&!cS*(V>6F?@`#IaxS@E-OxoT%i~>gpyV5aGB`uk?9LpGl%s@NK(*r@1Di=WrJ&kZ;US=b~y3$AyXZ?Xi zl!BpL$SYy@mr@?4TfuW0>xj6E%rV*+TI_YYS3vuJ1G+p={<*p1 z%`K!(>REztXK`CNoX2G*DS5fQX6W&$PWb#4&%JtIudNSAoH1LYswT%}nh-WL=VQF} z5|m5^$M1pzK6--U@K(XgOgbg|+t~(Hy~k0(kjpo@9p4%Viu{8C0SKua#K9=qMZl&` z{vfMf!SQQfg=jTHuQ=21LZZ}-`Ed`jOM^?p$3 zhb_lGx}O7Dq7DMAT59c=3@HZ5O+y>FP;n)_?|>Mq_c00OC}e>gaLOrWK1Bu z%(%1xF~{4Sru=qdhMN?PR+`MA&P138at=nv+m4Xwkoe2d%ikm_T_P5T<~~O_8Y=f6`~ueH&IF!C?$<=Sb@hhvrk^-OM_6% z@31N@bS`W`c$60bLEvotNwpX{;ANdVU!_kmWK>X|IK><`T^vB~Qc;xCw(pDfUU_GN z{NmgeF6A(z;2QoLvp^{QM2GZe$b-;i7FuU|3XFbwxv92l!JQ7HBBr5lAPkYmR#eIU zTaix>B<}b5FZD#B-wuDq$0t0!j*@c+!JkdQ5NE(>NV9e1fB!7481&Q$tyz-&ALR^ zBEA0wA~@Vh$uzj(h*9z@?jQaMa3$Uxd)c2IR-)YbP61AAP4vLJNTdcfqONaE4jaId zrL6G4eD+Mwm;|dD8b|@tk#QOG7L;L2E8J^WT#>+zg=#|@n?VOqd)YA}J2l#loI6yU zaf8&UNsucjhF0PfdufVKTiZQ9#@~_Z7Cx~eXw2VIc}DZW%VnKPWV$kM;KyUVDoyAa z5ay@R4S+W-?IEtHTo24Y&_>dCS#uQWpO4)j64@dS8t;y@pB z;U*0hIq@W?no;p~JoYZ=l)K>W^-V3LbK)UI11lM2xkBTy?u|R%UJN#dk?rE{NzRc+ zM=g5ldGHFm3C@~i%YgwdEr?KN4pg(STvED5vc@xZdBkvG}*nbYZuA? zl85i5Qe6odtgDjRC#$2^8jI|-Mu}h%$CxC0lCvhTi;59j`YkxN5oY1i^2w*aUbV?3 zaTFsj6FiBeY_t%TB7(BKU!FIf+Pm}x8eBAWif>KrJjyHCz*BFpT#k<+#)4b$?PIdD z6}Q7VijY-rg|1zkp5C()XJMv=E<`h+5P0*g$BWgZQeI^>E+M1cPC=OfP7F59nYv`v z@bwLoKxDl7`tgfLo4MNwZfdQRQD396ntwh4cP{ngHF?RfVaj$TY*l5#aW9Euvajb z`=^i0zK|~=5p1ppj!n%}YvuaZ$)7sTuu@*yUrp(;T%dNXOWJIQQGzf^}mN(xQR(Rq2MNej0$-J>wBFF zlO^*Wfv+Z=1E8UJ$O^JcXs08MeN%i}RasRjHE~Z9>Uw zX6Kp|Sx9!D76|SpYddwdE?NL)H4n?=yW%y0DQ27Z!#W_9l>_f007OmHg zmGa;~I1~tQ(_tBa=x(d3bxqMgATJN&wZjT+M62E(Wpql-f4S!$ znH{v8eY*!vb&yWuQ#`qvbWO4N3LCX!(%&VGDp-==>%U-Y&6>T-=hI^b{w? zb#J&>CMIkYx?GP+D^}GhTXq^!7Mupk;mNIcc!MgT>O~p6iRxOR9b_qH^%X@3we!`J_7HL zC7GAUEAhe|Xbie;=LoYm>6JeJq{Iih91sUcYtdd zXwGS5K`XdIWIe0^o6P2M7^Foj;YOY)3Ey7Y4`_KJea9s;%X@E^G0I_MhtJ3}*|`>x zPE%`s5q`}mFulhaY$BjevuQT$-sO@Zf15558z^-anWBjFNL_0UUfp=i;bJ@xj_aeK zO+ytaACQt%7WTfH)8u-o-Fwlfd4;rklo8Se=_hKYJsL8KdEx{b+Abqse~SBO^ZI*1 zyoVZ=^mkqyrKq6a$q9;IyJOEr2rr|^_98z%_l*)^yAlqPyGItx7&EINhdji1wgS(* z!@SV&GmNh!7I31!TUXu=ir%lJ)S_}g2CkXe5#KL50w@+pUJR!$niu=Csn9no(2l_E z8ol89ln9g$u!?87Q9eJuTo|MTO}NC~yods>}MfQW{G@VcCjp{2O*t9*%!4!mRC;X)KhS(urm}GIT7Y91!!R z@~!R9Bj*#lLBQz$ivrM}j=_Eud=**Ot#s7pBGCG+$Q~nu1T}CzDm?+ZPS;8SR$O0; z$_prCzM+=qs-3bEaK+SKq zhlMk~_NO?ECm2D14Hwq*t&>9>=oh+1FfgHmY>5Gy*NTAQCT5S(RX^5M5154tN7~%_ z4oQQ{pN~0$)$?MO;%(14+KpHhrww=lYQ!?7(dsnn_2kqZophY zP0mOlzcI1P#ILk{+%l>CcZJ+rh98Rn#Uw3$1#uAct241^Q_?Ubu9tHQm$%^Oc0HXs zJMd3Nihdc1oswiC`J)*l`2+7L~_Ywj>NGM98&wJ=R! zx{*`}Z6v!MFm)(4v{QAq_d$A&gv$t&7LY&NTLX}@;M)|E4O=3iV+{Xf5=*l`u+OF4 zdPwkpDg91!%1eU=BI9!u_L%W@bu?#9qO$Tg;7b^3|DEX6xvLA_{1~4_Cz`bksZaue z>tnZoe;(uB`=G$5Nx6hi8}^3IlAFnR@&jW9Raw3K)w7Kn*ByIulyk}xDiXNA?p3|h zz|@*u%ygHSj>K}@1Edb6qK!NRC&10dC-rS>Z=&+u^rmVQ+_AyzgR| zKG%Gb0Gh30f|x1a`4j2f60iHFs2<4Ai!vta+U^H^_``Enwm?ax*wj2~O)dWYsSTGZ zLP}m|;w%vSmW;tRZdIE}g9pX4?@HFi>#}oK@KpCo>mGI)sx=w3v;)I>-Nszc%~otZG27D@6d z%7=K|A-Rn^g(OPTtJy%sV2Q|H>}>_SCCt>BSR2#;mYisSIRX%MatQq9CSOWVgf4R^ zr)#ln1TKB+?U9An<&zbQ7s)J^#M^tC*32Jk)?X~ndoM@3?gGX;;f0JTg`_7DBim^H zmE|Eor>EEDp2ZxgT2*lPXH$~!lE0i;Jzs~%JT3^%V3XwgUo(X-!RB!!ttH<31Gjvo z-4$}kx`XNsZ?qt{SyoxCup%TC3R#QSlA67tswff105OZ7e0JQ0JAowlHtaNEXIV)9 zA*E6<6rWQjN;5e>o@B7IpvciATls(@3Q5OF(ZJOpT1317_f&J3yNb;4H_g2mOcYdD zO5-8Rtuhzn7aJK1pSHU@zW@=6q=aVq=S5!T+;u&X?bUKh6n{B%;#YiZMha=S z3Rr3kW`r_F1ysAhodo%e+s{gjMIvQGDK-P!A!cqJO_pz`N)&2e);$iocE!sDy{gD0^pJF0Ra5&gfCT<4T z>ww=*JpoN8Hp_aJuOrH-pxL4P^iL4nn49fYjqJ0}K84OdcUgycj!IO5u4U$O%XrdQ z5kpjD*7wiQU3OlF*b`q}k};Dh49nIFL)III2*j(pzw%5}e1``_){omc+=<}x`7<*x zhmPxmzIlSU;kM_+6F$6xg<$PMTivA(Yde}jxo=jB`x=IJKBKA6Lm$ z+%m>G`V4m+Y#Er#@uA5h6xq7Os1A9L7PPQ`ZZve^+j5YRP(ayT@K-M`8tV1N&4e;p6|@SnVMy_oU? zKkp&CzpJkc#|A~$+8rEFpphw#V98ImAk+rZl^Q6p2s$W?_yiP)q3W2SDF5w?Rc4h4vcrC2@NJAv^g%9h%)HlSZdGrGnm*c!oU-DL0Jg-+}J zoT;NlxFdKR1UX18CK(CYdK0-opjjYfltT7v5A509QoOmSU-)OX=97enVYT7?Gn5<4 zS(bddA6o-8L+>}(&;k3SZ-F3q&9s$dY}u<2R0{5E*=pZDY+A+hibG3sK=-8k5WZjC zuDbxmgJshae6R#LDls~A+7afE^Zu_ea4%Cf9mQx1q|X0@gukXRhKkGieRIdI$~#yU z5i9xtEtt3CgqIcLr+(&6&7fwO8#4b`HI4&55V+lRxM?+vw$7o(A~ii6XZf*v##K~> z4kMP>#l}QHoUT%*nLi{?$ih^Q1p3FQo_mTFfInRDzj#iQ6bP&On28_Q3iPTMB}6xT;ntutJKs zMWblur$YR%gFk(bSggPHgqqG_K~9Jyj=9Hnb?@5)#5KVBsvs|AgideQhs`HTYG~{T z+`HqX@m9qD5pFgi`e0=%&5JLKJbT_)|6=l5U{QSfx&L#|6R3;YRE%v1b_K#09|v$| z%*EfatsYdm-7b8Uqr)q5xaQi=2WlbKu#Wf~1`O!jz}0vi%EDk6RjZ<#E8^2)kf$i$fub2F{rNFcx##CaS{N*SlR!E zv^W_om$_o829)lc7Z6lv1@XmL8GRQ)>FH}Klr8VXn5I@7w1m`6mG28C zG@-ASowc5PGygVFMBORSUp%jibFOReSXz`L2Hg<-dSCst2FbiA-R%c^!SXXhl*vn< zJtabX;TUA^nTs>_P!+R_&5Q$*=+BkOM;nHnCZ7SsT_V*z(cD1@%iBS)-VLMsxX7^6 z<>G}X;)hPB0`0I2sV%LT(Rt2m>&uitvV1WL5bLUT2j3UgYGbZ~vO(l{H$*^&A^u}8 z4TdevEV7}MVD_47v6dfJLO(1+iaODI5QumcbJMCdwWzHT0U-&(B(e`U{yG+cXhP+m zO|@cUe~Sz8$FSq=^+nXWkDz(Y503K+qt4%Q1eHO@3u@az+U(l0R{#bNa%u4F|4$CB z7`Y&A1&%V#tClY~zHTZ_QHKaHSAAi1mzRBQWpj@1)ZOG8b6KhHfkhGZN&#UZ(-H^P zh!QYCWZsO_tGA;IEe%kr8RKy5ZnE4zQ=A+bIDaZ37t^xNFwVtn{9FegCFo#Xm0B)!CID%GKHwCjjqT4TTz~SZx_SeBo&OH0kr=6RfPERFog#+*7%o;3At* z9~!jTXPeRvms)kL_H8kPDuZVm{d?y=gtm}+cY3&Jisr{of-IN^Yv|kP`!U(dZ>BeH-7GSq+nV^#8q^S zoseF<06-T?zO_n(Q0$Q@!e(6fYCB)<66RsR*6|TSVE_ZsZ=y2^dGUZ(?lj_62Oe;0 zVx_Zp*;AVb5ko5^#_@C}Vp2+mYcAY7)oJT#;I;=1tA1P zskXJ3eHm3VvvcvtBP$d;?T?UHO*TCu+X%eMtPttngDr4)OVIL8Udxq9aDQM_3}?0B z+l?GXOD(Z?rTbs%>O3v&f-FFo%F^oY&Q2<&6q>>k{lL42s>=s;g15jzS9ORtBzL*t zZOQ>zX%;Ngd)AqqoGFwvjsiZJJefmcolUetNw|))O|;2kEIYAiciKY%tw$k!si*aEAFTxx^o{ z07^c+CVamwWZ~=wBrK^)cr9j5e#HNSLFzr$qWl7%PRt@3u8@|aZG+^dnMi%cg@X&{ z=CxT$>fT{DTMos2^OjrMM?Cm0kd6Smj2e~Y%|W<%f_ASg@4Ii9x}R(1@8+{@%v>)8 zW$MCxR5L~XYoS9M98bwPLnCEVyf5e3B&QN5q~f$>V7$e!7M?U+#zzd8#P{4mM8ab< z@_j&<%sQufbrD!5!f)Devu}k)ILR$mU%1VIjpAaqwk=+t-XxiS*xxy_$fjR|> z2F{qYQgpL+QvD&TtbY>lFy#Y9N3{WxjjMETup%$5=kZjh%C=l2E*vMi)QMnz(}&BeFQ1(MfkzGyRu0 z#@->^PvcuL_d5MocQYQbownd+GrGitQuOjFhMYT8-y`5|zlr;3`ava0h`6)<=ZO(p zr|+X2z{!V_3{H^KAkYw)k;8LJw68OcOplFyBFOLh(<*W^i%9jMN0hftgp(?vbwGm_ zUV2@FT_5NsvOxerYafk8K5700YhIcz_}sdhj_JA1TcDB3dk9e4uJC)2CugN_4w(4K zxL_HF^Apq836j##dra_BCRX)*`GFSI+OCikwRa;nBlw3eLvTVQH2JcM^C(R z72v?!+UYl<)&T!M0KmR(CM7kb+sL%afNyMV+oX#OJua3PuI1yewsB7?K`rjSEr9ZU ze1{8P;1FaJYbUP6J$AO2AOdW3Y|1ke{MKCSwA3;Wy6s~-rK|8U(A>01r5wFrD zuk6WVX2Kjcw3(~OB3hLNqs(CRTRT= zI*pHK2F}smcfU#%^0#lhk0G%B)}zPQiNT^23F@d|%j)h2qoe>uTl~Ws^iGa4P>+az z_m6;aaNfGD#-NO1F2M*s>IB)!Py`@`FXSj=u0a%`#56j+8kJ&VbxsO$5>^XAuv|CZ zoFde&Tg_<1@QtUtAl+693kFpm{)85YHZbVu3r7qQKyD)?krwo!>qEPw8wV|(w`gM0 zB*uE(cP(0Br&xH@u7_EgL=*R9F5$iU<0>ZMDHX~4aa1!GfxrCgVvM-H*sc!900LP&!A6;ONtj_r4yi(fWWtpIbYosa`344V*0n`fEsS{|JYRYk7Y@s^IKb zY=T~t;?gNzJ6k6}jaASF-d_84k92j8p;2&B$%A~@*{R313$Hm!E~>bKdg7Q}hF zld@=#OQ4XJT=qF}|0o3zgtlF@oh*w0x#%b3t)M~>FT*l@N(7XDEk5?~dirqUWnF9i z)1Jm==KJB6-*l~zc}j?(`&YP04t#_GwNP~!Xg^KHm&1fqqHFk-XRxn=tb0o9^Z~3T zT}9ukEDGJnI<04^Ev=TN&Q!&h*QK7X|C#QYY+vqiEilI;f%q+Se@bRL&2t+o-ecjf z3f(f1cVaPV^{AF|F8Mp?E$N%N44Yp;Iu>+xnorQO;hH;PHSKW%+;xI1-mpl13?g^} z!#600H*==yb@?T$h^|u+*WX(S1t_(DAFH)}%v>2(WNq~FF7*6O)T>4>UufX9ezcEd z%h=T{K|wCAso5(KN2qU`Sd+mq zeKb}}Y0wC?yRSns-(htj#%2{OO9l)tyi8huN4&sc25DG)@P+@d?q@4JcN7qX_NSvt zy$ud6=k1v6^oR*vGU1Cr-;upUJS2MJI3AKI59q1NekvWY^nMUBH{@v2AER|^$0Hb! zzpT8tfZXX<%<872pa;|fL0(%h4uC!Q_-&ME;QjlAHW z5Ih3b%Z}B%r(4Ln5oG!#9DAp<7fF=_V9bGOtPugxxRHdHH0zOePGwi=4Fe6|ggdbR z%N6lahYX01E=67MmI>6yA^8%dPZ3Z`lG>UhDHUka%Oc*;ql@2`CA|$QYe9Y|z>=ZO zi5_S7o-#K6=<gx-x#! zDz+h-^>A&lj^&>DR@~(gI+@85wvO+Y#uQNF4BtLiMa8ij)tngAGo!wYf(17*X#;`x z9zIVo(`#KdeOM5W_(U4l0jBw=BG3z_PGOzC@ae8`_Uel4f6k+TL@^X;$;4nnWIzKG z#~C;L@!=@ATtrb`>;rI(_C@J!RxBve4q?G4Wk7-fBEBPg_QeQ%hF{B+mt`+jSstm- zsGm|!@k5dVlWeNdQSFv(W-HWz9ScP#>(MnGM1G(wVtd2oPYPqRA=g&SRa2K=8xJ+% zhx5*}Oit+I$qXMPv;=(lv;Zmml&}{|NQbm4it=dLCO7gdo_=)hTV2z8fgLzoc!wjN zY7ABi;EjsNaB|sGN<~C@WyPQ-iQxNGA(bW`l_(cP65+8`QlC86D#UQV^FP{z5HcJD z#3Ke}PV*Oetf0mxHBEkJ=e3_8rW8Srm%JtdJ4V4-Ype+@VvcIqzV}xLCWSy zP348O%nB4wM$Y}F4Ehs>%-AL0%-nv4EXh9K*H~3_AfZ9X5=%##XV2Mh)kXQ=r^5y?v{xjU9*at48!5wNim^0cbAbKGh$=y!NSABFQQ+8 zA-12zLa*^lLr5RI4)NlAq$)}J;0cOH2_O+ z75Q3W35_6UmZ-`X&hXwU4oQtJNx?z8#E|A$J~@1oC(~i>Veao4gwnCG2M(8)Bp>Y6 z1Ejik02&N@ngCxh-&Mu4cr~Nj#0jG?@}C9D)Y2Z6QZg^TDr5-NT`qIKc&jBRb`EWg z8<-E_ko1PBi41*b$cZBJ>50)zPYit?tYd_LZ_KFr%W5ZC~oLFw91*$rFxVjo2eQd-=Au zb7#UzkH!9IGS4<=eN^hB+$vnyuDNJ@%|eI)X-GnspBa#WzKe6yQOiI)k2QsmCfofE z-05WpAO&M(sDn!oHrOk-58_bAH4|ic!tEip7f+~N4^S4Kl7zgVrLi>Xs|?d{#n=4# z^W1>?xeXFcS#2%b?Yk$SH&r@gPzoN$am5j=1UCmetif%Rx)N@<0Jli43=Xc2$7Q?t zAa?(t@>}We?p9M`fH>o}KaYqPDE^~Z0^TBBz9J%GvQ^->|;6gs~tX&1j{hZcn?7WLFSv$w% zt{x`sY^hZxRPYj-l$Vs{W`Zku55+R_@A>l+O)p%*I>6?~7D}Hf$njP8@V5p8RGUpTu~bIiEOC+R1riT+=hS+NRgcdR4VW{av7{j6ilq)AwAnOv!w59*?b zIC`9#qOHli=QetHZRQqwsy15{pq9L`rAI;601}wH1;A&Dt!Su_3Ksg z$p>h@`^tD82M1vd!WTUuigiXMls&4Cg?iCA-UQLxqf^E}e)ySPV&Z6(tM|P!?>!B= ze{mKyxlvRTTux2B$Ljj*`8dI{sMPFXfu_0b^OOc%0lNj{iREpGk+04`O^OiRiUF~- zS|z{dF>;ckyRZxOz6Ywe8>|GFk(a-wyH=i?)xz<6(amTq!pQTjipfpOhg`!`!XN&&#?cWzzIyCnv}#Z z)B#U$VWW8-qRSqLEb6`HXbp)oX#I$Ef5Mrm#zn7v1{G%AyI`NCM$kGD#q5x$7k-ur zr}M$HIO)YUL3`RB!+>s@UN>#P68ziPu?OotBSYPkFzib1IT>x9yif4Tkh}xYUA3^E zPj0~L)=Cg+b%d{PIkdqNIXw=uOuea?F8MpTOt}{cp{Do+1H4DhCVVRruDu+*bMn*> zQy5V)KbZi<=MF6`FkLJiWgTU;Pfn^Y<2MlMQdg2-{p?dWnym^a)&&xh-`VVpVY6Nz zrm_h|yI7xXit1o&&!=`87n!D&3Un;!D@e{E>^-A4=NxNbtY{|ukKoghfO#iN3fUTk zc=-V$Q?Kr0ckf;3#?u-$PH)+fX+xhIOiZ~MuS3|bq0qYvm- z)6TIl!4y}3R!+?W_6kn?oqo#=@;$n5ltiV8G{?vG%PWbTA&TD7RLZLTocZ}c)l(3M zWwuRr|Ghoe2A|D-EqJ6zkjiV?G;FCn1y>+?U8Rdnku45*Gu^P`V4pd4gJ<1*s;&PgH-%@|pAK*ZuZ5?UWl_F0VIr*n>{8P>@@WsC3cCG4W6S$}J1hkf;mrT4TmT9atu@T%VYG>?P(1YLjHPE$Sa zOMLXFLl|ia6oCoFVyr>hAS()&;3rqMYYgU1HxU>?rhbI3!*_F6B}|BM?vdKa02u53 zRV11GeiE_j3EK(nMtV>Qz-v{*XscJk&O0n8k<-++i;FFk4A(jLn#?%FfJ#;sbL^sq z1_q#vE$Su5?|(`2WAITd`3GYhlI!BfDM$=8KfRb?#$lhr%3OyB0I~xH%j12tf4@db zJ81e+nm4F*z0V2*OrXF;d$Rlj&6V?OXC56G)=`UE1Z{-&wHrv2KdMHw?>B z(qVRYnfX5);u9`}7IhkU(WTIfaw3kGVfK)+TS(@}MWz8k7m>dkO?#?DzSj-Pg&qT{ zGqLaD=vr(fsr9T0CeFY63C31%cOD*~?5QpQ=4+zKY6JR$7#~QHzAXPK*;#fk4a)_% zyISm?rPh69hxW}Xm2)WYgJvV0lCwUqNZ=?|pQ+=DJ!m4Kz`IF5WROJ1UvJE`OmQgO z2NK#SX{5d43`D7dKYdXNn(2%0Vt@428txZ%sq7nmlkB}+k4vyQoY&oY+6&km$q-=cuqZ&x>C)CxF) zZ~~2`(EQEq2mK0M#@nexvzOD zcl4*BeD(e3sroj(R^O1Y<3emsWqk^B!M5ELx4>kBs{4N8Rj3^yFrhY2?h~HamYady zHjeq0T6K<&2iJ;@QXRe|P&7GR+e)wm#<*V1mxD-+nqzzXcBz^~+I3YWTrU@iif$|) znRBMXmelrW5()mdW@0I$)?bYE&;lr3Fq^V_pay34N!1!&M@5S+Gd%ErtG3f03|nbF z2)O-()x&O-3%)}JS0R<`>EPS;9L{Rz>X2&pHP1jN`;riZSv02j@7mw0djfz0Te?wT zL-S{RA&B~3A*N4M>$mK`G<+v&T4X{!eAuoCEm z_Ytb+D{@d|*8;>AUntvrmE}g=j zGjkOVk&)$ao7m(`KZE_NSS8I*EhcgK0BJvEA51Mrh?2ToHzj;oh8P3jB8t8iF?!jt zG&hzz7#ylm$8T?>%BR&*H^wmnqHOz-tRQ2VZIZhD`YIFxXtyTOH%$aJe`>y!rotVHPoHw@vmpsmDOQOp(Z>Dd3GMySU@QS?_PF@LbFvUI|-p&e5T>?O>Y+Og1{ z1F$S*4u+~Z_DLMomDy*lYk8F&JtM1grU6k%)IwHcLw)h|`DZstG<{5F{z}h*I4UM) ziZx%-@Zg`dS0(C^9?Jar+hj>CbfN0dW@}y_c^FvFBH#k&eW^sB2eHPdVT}7l-dA9- zE2YuXC)lCF0GRS*1bdh)ld=}|;wwJKPrVw6{9{)R!4Ya)PRfITVo%Ha_V$F73XYBI z7AMRhLiY7={%A>c(o}{h=mf=TGAe zi#=`IN|~?vOFXAF_br$<8*?)H+QN=ws5v?s>8RomM7EL1<5Q`681!ey7$fhua2J)Z zvT{Wu7q@ZZb)B;^SCcv-riIn$E=iKVz9}#PT&~T?=zz55;RiH`m!@aK^xHNkjE?J> z;lv`jY)0kPLL}NH>=_0}DxcJ3ZG8+g0I6=kp}3l;6BAq%CKH_53C|s*gh^x#;CfNT z3t^XKo5StcOZuAp8NXmX*QgWmkcfP0n{PwJT*LKKc|t~q1H2I#Y1z&9fj@)fUAiUP z>bY48#v3K@wRNQ`#XlRktfIAmPjGlGtrE2Or~45fQUj*#>7njY&PcKJ6~m+2Gx!gy zdQGW&;P+yppYHEnHnAO(EGhSe8Frs368N|?$i(I(2}IM$&nie0qaKg+6=}d;){d&t z1Jv$xy-%MN3fjF~)KOk~e1)C`hKDrV*hFYtL3K3)irHy2-jk3RTR~yr->Qmi^stHc;e3+`2E zeRi-@RT#MHae5msflIqkVyeaV$MAUssnay%eJ5WuzL79&A) z$)*fH+Y%jhEf4t(pb9~Lv=Pj&Z<}lo{(OXrT~obl1Bp0?V43F3NTvlSMZ_)%*<>f| z=0Hb9_J?aa%kL0wFAZN%5RM!N%M!5Uk22KxNEE$(s*{S~ef!hVq|pD+NOMWRdY}4a z3>Xc-R`1&ytWddY4z7 z>D68!J(8({rOlEB{pYgMIlJX(F5L9oLH=ow05Z|JNZ7BIqaG4#tDA}Csf9ioivvf> zgDT#TvEBl@>Siu(<_>WMEae60au_9A#qLLJk*5ZQB(8dQkpD25gYA2G>euS;M3BrE zW}TFcpC0diNhY4P)ruCMof@lWC|Ru!66S{rG}4JP0`&r06^Izj|H^C|ji`)SM<0Gd z2V*O(RRUrRiu#183KXo7r<&iNqEORWw55^GWQ5T5NPgXOMsd@e1yuoDigN==r$O7- z{@UuNw|Z3)^Us#L3MKD_0tBg-oHnDCy-Pit&(VZr3BH)YgaCzX8}O3SL( zt8PbXD(9I6)bs~uCZr>HPOEN+E5=mDu_x_c3XGZ8NGQ|6{o8ocm)1$pHN=q=b z9}*MN)-{+77nr=X*u#5sRE~mVL$+PXN#&U6d5EMpnGL~0a*^zRhc838+Un+>K#^RMBAp0))5CJ~ zWD2_h43U@k$jSUypjzm0ahnSB2|JqzMi$XxtF#KjfdYaZ6|AsBoqn01$_IHSCc(~( z9jcgxtVXmiejMh_!W=w^cIUt&WU(V%;e2J@=vFoVG>JETH_2U96cfFPIiM6}V^E zb`Of3KUn}kI&hw$Uo87CHR(Y=FY1r9?-ylb^fSUK;)1wA`|H}lQO4#Yb&=dm;V4bt zck@HX13xaVVukZl<+J{GeEW8`08i#sYun-1Y1T};*Bdubm<(;;x`gyPxl)>!9$%jf z{TYlBLYn`|v|y{h^+-q0%*3c~#Q$hV4H$S#qso$FFYm0#BGh(O^Q|8D(YEY9p?D-f zwd?mcx9buLoMNmjg7feGM}8D`v_;DqROMa3?Il_Gt2tm85u@DH7h`f4D0~Ha2h*aO6`%_UfPE z{E$w3ZynohoZ)9P-iv^|f-z@cbL#ueeweO}_hK59=lx5;d~*)or|M6G^U*ARHD3*C zgm1@6e6XPs$Oib}K>c*Bh>q8sU@Ub9a)teE(Zl!p@A_4J`_xOb)znIM%r{$f{LQmI zQ`sy|iUk9VE>|MW$nrmo{!CV%V2cB^2KAE8WKUyi+w zs@o5)InZD*PPLZ)?^J2$c^LyK9x@02u~|lU9c{Z|4aqlV=I=ZT$B-lrx~H!>RsN|Q z%B1M7c-f;U3*y&WIpO#1z+V4q+PZ%S(tau6WnF^p>W;WBU2<%D%hQ*Hbo|(lKjv49 zgiHqaRtZG&O%B?w)>3A<2)(B+*sHk9YiKt2`+FbTQVT5`qRs(UB6kzI zYk9B$Kyz~_Y9muZgXahPfcTd=%y-%7A~nV`VURMV&*Q>Hjirz_VsZq2Qw8+LdyKx0 zD)+Cl@5ha6Mu78IbKuHslS%=uE$@7~ec{&Tpf5i+(y!ps8xJNd0i;c-s4T91YMyQhh7TkJQ^Bi2%3lZy@OQ7^;5T z8s5Tbdsov7g?JSkEGdE;O)MrWFcWYK`hdvz?B3On{6X&WAJInE6c?oZ<9CgT&w` zijzQys!L=_lK7jm*&_}V)vNQ@v|f9D)STEwUMDkL*nTbPuvetuf?~3@0^2~A6mRWC zB@;&YUSjc=F0%cs4opNY&zT_EhSo$X4DuN=jo28xuK8{$$WB#XTEN!xJL^C1XyAgU zG;oKk3b7*u>)qB)E}NHxsTKNSMe=id@RIi*CluL8H#Ak{*6Qug<{EU-J|ZaQ8-vh2 z6l@no(Eug?g6INIaeS0tBYK`I)X+gvKj-Sp@n$j^HK06CT$TyB-vcrvEh~Q>Xpaof z`&hqAgz%uPvEi8ClE$>7jiZSfOb`8%JDNmoF;8p~T~R^J#NZdUN0>)Uf%Cx^Lp&Y- z44czt@sYS!YbN#;l5=HizJx8)fMhc`=?k+DXs=f-?)Wl>&uh!*tF@gF`DE6Fa@gO3 zbEE>%|9wTidZx7(a07ih0TR42K^_r;LdIXd)lEEE5Tj%}05%&Ebw9*9PcH4(b%`$I zFrV-;3Y^V%?^FE1+hRte9s$vK%=PaskMt116waetZ6JoAz@8Oq&w8+6+tg>@Ra|A< za8IBJ5exttv8kAh-_>6sFH1+mdoJTIG&%|;0gMA2Zw;%HTYSEO3PD;}r$MdL}E zu$4otjU|K%L1OxR4ZXWWR`ng0G}9f)zCLB8cwZhrrSYT3NI8yrtQE1R`C%qH8g7(c zFOC|`NjT(IE|UIW2?BhzBopx_-b8+z6Wl}&IDcbl#vM-Md>1W7+q|)f) z{`NkML#wq#sJHcri@>9@Pp*0!_|)(klB^W)o_r3}&g)2SQj)H1$B){kYo|%1m(O}^ zDy}1f7W4!5Miw{;b#RAdGd2cEw-|`#=(R_fkZ6X8WBr@{C0?~db!QkA6U03tieP`r z@R)a9E<(bimHgZP`ksQv6n90tqO^*Z`k~0^spdll zP+q#vtFAo5Wud&(EeV59yJFjI24o%A2BIMWL`GA*gh^L;nCNh?(BJVUcKISbaq=2W zoL_^!v2+EycePfVz>|k*D$W4yXS*-g0@?J! zY9Z!su0p#e#d#qA+9o=WhOyVZ9S1E6wIT>_2AQ9gvi|Jzt0qD-$ibu#?KP6mxTrdm zN^6XY!~IY4ao`TmFPGvFje%Zdg6+vETojJ{6df~u^JDbfdx6iAJzaWa6sbk#D~EU1 zXP7jjp5a2X#}!SaxYj$?ZoGx)J>*0Jv--F2a);9_i1*%8eeD2gfOe=~ZbII$`x|46 zl6O_MeI;~F?McBRtGTAAf*?WF4Wun>G39C%1k>gvfvOxPYwwU3hQ@R~Roy8g30Tp> z6}4Defy)u5i54XnB3cw2`GjNbt>CFg%?H6IghY(-xBBXc)1WxjmwQ8;c)c8&`Ux}4 zq3rPsRKG+LxAl)I1oVL-0>^GngEl5=S}c33QWN^R>GHFAual&$+iZ-~N=e>=!?83x zQhX+R6C>&%)~m>u37aaM0yJc~4xYLF=-4NZ^$b1=9BID$H8rjh%lXZ3;$#a~;ro>cygo>9>7VI>Uq2PBhY#lf8E?TaC6=Ys~M zNJ3I3yN_W=z9WTOTWbHwP4_+y$H_LnR-9L95t6}aNujww<{NB($K~yq6$`bDX%sAk zHi-jX0G6a=Q%Ho{ejQl^?~mElHIe;_b1aPKJ|Jif zn?CvkV+8c9oTc98SWaQ$>pL?M&8K8;DK|O_2oPVs%c-I0GV9&8j*I!vAJN8^Hz;e z`As5+JN`Iar`KehjR`qrd^wu&`P8?C9r-wWiTS@0cD;b1eP*K<$wvY9VuyxBG^Orll!Om{$rTm(;HvZyYbauCnx<2K{k90cJn0F)ar`si#G4~a3DSjFFXn_^=BBGe17>f{c({sB_4IhU59-iRO>Jm>Vw_mDkW8PcczmV@bd z6V7ylli(@;#WlbW*9mB?XlwX{IMxvb+W6MHFs$gQoMcYLX^lkS4auq=1mz136+f@} z) zAl)#+H|X0$x}Un!F^QDDra#yQ3FZc0UGt{W{C^Go*m0DP%WuNH$auGcWr zsA(yLrsQRg^}94x0`-3K!?gxR+y}}iR&5}C$;HtF#4`z}(0>$Rx(bA1C}c%G=RnzC z1t5oZKTtx7z0_c8jy=}l5FfZV)9~M}3_Y=FTXeG0M>{b%!KeUrFuBPYZ6>Msq zP<2WG8ot5jq=x2kWWhtlk0`$Lpc%a};ZOpdIyWVk3l zlwhs!cj&BKiNI&s7+R|I=YZRDUo?^9gfyn;U2cfaz(H)_#ccJf-VJ>aK&>e{C$0S6 zq&rs%<^F5oDDY{MjbwT+Hw$5i(dFYlPv+DFfHy7$rAK97A5OCvXL0 z?SaodY@K}F5ZnI-#k*H99HfkPTi$MH@XjJu8K+CiO}vcRI*H*L{A@Rbu&Njt#I}D# zd7clzVRI2Oc09NGKiS_4l`CQktDh?PLTJ- z`-j1nzK(!unmBWbw6?8)&X9O!q|e2{;MC;eO{`R-f5PK>0c@D~GKY5!BtptI=j zAZR>Z^&|?w7G4L6tXiwK{9`8D77oyG7z#}V!fw?n2g?aBk@2rKl@gX>4NsAOX3N2j z8WMSEf`;{>v=bMHn{93rtHBfK@;7-u8Mg8sUOAhnV*9K1xbchASkVe|T8m0hIvBgw zL~eFNpVB0l@^$Sc5t}dhN0rKLdT-Hq2MBW6F@%ph6wHu!n2vY{&}(DGe5hx*&*-*?2h>?RMsJG|-;{8|1xa)lh z{Hc;r>bk?08X0AHMe-1n{JOri3Eda8?2detO2eH6X<5OMy-0KR4AF){GayIUs!yJ~ z(CJw7FP5OIq4iLHd^0@*KdrdI$-tZj_Gifjqckf2zG60nZL+ ztJZYE@h>CI62)3T$R&iMg$b+j-G_$AE!gkY_)@}!FkHCE0foP8QEN85AzyAtJcH+$ zeBR#UK@dbg`OV$E_L!L}@%BIcNLiClap_rZYv+F+_$VNiAet_XJvo9=eXYO`H{Mg{ zVW~@Jumq_vA7Js6x{^~Vf<@CIDcr7(l<_ERKH|NsL1q3vmcEUZ=j0up@W_9N#x`f@ z2iCSucwePZ)>%t5oe<)1qPRnCUVTML18HqIF4y13$&a9;WKtzI8RttBx>2K=>Mcx{ zO<|~`Ir?2<{UB1TSCqVyX4sqgC+-QPI7lc0ckGcmQ41+slPl3SsiFFqzDSMclcL{| zSm=39&^AmF6S+$Buyu31y8Rw^kA%15`#R2J(D81hIW`g?rg-ryY6S+O-QlnB;L;22 z;rs7&S#XI4jpHNW@nJg|!d;}(!O=cpe_Y3%A^x;7NbQsPUlanEW`ooKSm${-rhyD#hA=I`K9*_bv++gsObHh>c8T$1VLVHuH)rn z0x(;q&1=`lukl$u7oIQ9a1Q*3V3B+&HWp|(vMM=?F^baUCk&qmj5Us5aYE*&aI<&# zWcB&aTciu_&WJrPWSa; zxu^_6?ij$Ze|muXu2Bea%M+cMT*@lkShR0*$xUu4L_r_d_c;paJ$7y`uX_0ds8WHx zf^axd@nQh*k|5hHAxSADkINv3a*6Lls8o!Y})<0s{kW*(4lnh-B&2D_Nha>;7q+h3eV#yy! zMP z&QH9=>i6awwXUH&Z^n{HVz>)v@DuBb8G5CNNG~Z>N=LnFrF1GO_$EK@W;wyRaALMj%1dZ%lw{I=>W?b{82E~yT&GI)u-xt4VK~ht~ z`kplqC_Ce;eHhqV2+#?G*6zI+Of}Fj$_RnF=I|$jMHp%cG^rZR^B7IC^xgjjgc$o zT^q~l_cp8=lQA%ev^WkGv&&KD0%{${f$G=+_rFHy{9mYsOwa$Df3atrROzR!SsO-= zMLEte+?k=qeZEXJoaP9$6N-f<2@xf%W`ImgK>8bO_EbAagJ*Who;D%S601NI4%p|# zznf2H*T&m5yBT2{u%&7s>Z@$GIugHUF2)E3bP)wceRms7R(R@@N#(Jk*nBlinN7Wa zADBlWC!duPUK{$n>n>?3>|(<2 z5VlGM!dkoOVP@ce)4-)0mKYOm5pDghf>UhMeNk-2^+utDaXt0NwfNdgzeGVU-MOy^ z{wj}>`XgU7n+p_FBUH{yVw-%Mux17^k?c@%cAdT&zlD zNU=_~je+Jxp#K{XXITRnR;g51xs=Gepj5-^C~4jLqGx^JHl%fxk#brU3@O56Dv3LN zvH~1iK9UoeAVDc?=)Z==qhN6*wOZ!kp+uiDrJkiFXPEK~TN=SAdN}q?lGL2(U+`yQkB z4s-wY>#j)V_3}i2n+jfxi*KoYI5z#ves7ln7$r+A!30^-945HE@|**rlU`D23TY;= zXX#TfZj6>!%IH{BP!9!{O(hL$oam_OL(Dsi;Q=eGGlAxLi2cS8 zy^2yWVX$Xa7EGVrfQ+k!B25o^F&+HONCp4~&Cc?ip@(;Jl8%U|EAY8o?9S>u(`12# zlfIeHJAf|y7KfDTu{JN#MCbSnEeQD;Kdj%ci9cVyK2&ZHumgPGaa)-R)LP`zEbcZ| z5!@Wa8`O!oPLNu4EQ^B3;b!J;N3W$$5wm?$?lNa-2sSH-F(X;LTdkr0xZY^7@B9q8PE&nZl%i`d)DSXYSk%tpx(;%y-S% zUcZO`Q?H$2F8}&Vh3u={z!$p8!4c#Z6l-TNP=_l5$p z`1+`)SK`&Q?gnALulIb6Ynawd>V45^r3=Pym`MjibJ?}z z>tteq#!ylG!}@|^xSOv*l8NK88b^pfq(*LL1`ElZc@>GQiqzX9_19=)+wafyo+x%e zX2)(q^!hD|{HBa(C9FWJ=v_T3J6pNe)U2kVz5SuajA+-s4AhtwLV zZ$V2Jytj`<#)hWgeh1pS+8STvKjm)Ri8?a~nK!)DlF!w$$la|9*e^IZ0aCKXayrCC zCPm2Ql|!|#M!DhW<$qhfPVpJ99L(kZZfp4%SbKomc3;{wij>osU?c%^U$nX}E$v5! zqz1>XN|;;~3#LpO`isCuc|#n`ARIGx!ANrbytpGz%IVivg!JkyJaB>3jk+Y@ifEfP z`3bL~3R~(mol!KmQgx^PoV>K$sY{#4@8FkwZoozB(~}B_x6F`Th_+=o1v3uz*g!5Wm*~<9uA@>Kd@}O@srtxWBCN`x-83}5VM^0$ zXwWat?h+_mReW<(T^>Vtv9;lTZP!pcTae!swG`t$0l>i8%g_7SY&f|us~!w_OfMk6 z)+gU2J7lV=bV3VV5Ki#{88dVmHBDyKx#W3JSD9-_KBK(rFh0y$lLt2kmYH5|&J-0G zmB_v^{SB^fBTAhG7rwhy5B-ek6xhiRnrGlIij&OCv9Jj9(a3Gg62E@^?*uLsjnl2_ z+ortZ@a~vmZOq#Za6YRn?{`S~;9KdteIBkzH*3o6M0lhQL5c&)|_f@Mw44>CaoX3C`rmi@X_?J-RwMcxW{y zVWo?FraxpKCtn6K@cPEvXF(`JOsE0PDHf_N52KJky2xvPB+kV7a)n-65JA(#LB!%5 z%iw99fWYwfrWX2(rrSA$8{rgdmDe3jWH~d(q|JrYU9-JjB$)9PcxV0CWS8897rubS zKemw-gmlhUI*r(LZ}~en4{>fgP#6)w-VY_0|%RQ_N~+1Q0IwYmTE^E7qb zhVhE=0r|-;E#3F=xUHEBc$|z)=~SNFdiERswr3hN|9;7mac;F>@TShRUekf)kJ9ut z5)CX*vw=(($F5nmKF03E{9EEuT8<=F9Vewv#K1=g$Vd`u);ox(eC=K6_{?DqIf#RU zlvZ1E-A1=!cf?>=0J9tC#h#YdccBSl!+I;AEd|8K3p58rN6gCY1Fv-+44rZC8F><} za&X?*fN%dGn%m*JRnCsCv*2D^d0094S%_Qlyyb>|boZxOoTEQPPE9IRye@ZjpR2?T z3yrzisV{qHk}!+!yv=!MeE1mZu1IA=8dBJvZC5Zb%xD017McviQ3-w?_x&XZ9c<-T zE$)_48w|>^g0}rs{`4uqWfH}Ik+=)10PZCrID5SV2wP0!7D_*PU~_K3bi0yV<-@{x z;u+^h5=~4n8PucFPrS5*eT_XtrBw4JT7;cHw%sdF#=1FcYmsE9SFU_)9a+pS%wYgv z@+5jPRT$tsRU&dZY#H#HqOKJPh_`k`QwoepGznlkO@NdIx)*!N$or%VvNxSIL2+HD zu+aLOa-&orYBOj0*g+>fC|4a?G zwmRoeHv%Y7p=z}uFZzc@;qF4BHZ=VajrK856cd>vLN8NAWe^DH6z}i8prt> zY$qyaXQ()v0}3_RmLe-QS}?D{gm;7ipzapF4|r5=e#&hrp|xR`-Rvz=JEBHu{7F7i zTYUpg2o9rVo0#!4YxUg(Yjt{RtD#_+cVyK~*FMDg zzQdl6Xq^-rE_uXMpc4^JeZDy=ge(xVWc(Slao>lE9Ige#&bO$dr+mY6hi*`xlJ<|T z^CnA<-(l9aLnA%nCB3z4Kntkm9lgx|XTTwIU6L&x!=@dr<{AqiWUaOjHjUiqi*PBi zu?%jfJB(t&KC8_EjX(`IPsC4Jf%RcD?W*Myhog!aeF`dY;ZG{a6Nh8;` z&9H){S%f|)(RGjN3Y4|kwYeLi@g`|`v(_<_-^sYF(g_PeCPA(3-Qw{<8p=sBn= z+(ay_su^C~VOGGy75?)l*N+Yo)9F5k<**T#)nDB?a?GhXlVhmd8YY-PX&9ws?yGeFjNK1PQF@4Hn+cfH-LE8YuX~3xZM#IMKPE2#R~patjlg>U3~a8lfh!-z_(9nU z7-#iR1QJ}$A3+*YooMA(|Cov|@C4@3-SYP8>Dk?$o;2k598vK^R4KXn+I(IB5HBLB zv8MR!t(i;32~3WdWt!-@y%os!#g#=@eEGmzn_6^>9;Lr3A_+H@ z5~1#B

VBJ(+ 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\"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/666/60128ee9\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 00:45:03 31.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 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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +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=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 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=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 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=64.233.164.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 out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes 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-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no 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=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes 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" \ + disabled=yes dst-address=!10.30.30.0/24 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" 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" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru 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=yes 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/20260531/20260531230002-Diff-Config.rsc b/MikroMaster/history/20260531/20260531230002-Diff-Config.rsc new file mode 100644 index 0000000..45e1da7 --- /dev/null +++ b/MikroMaster/history/20260531/20260531230002-Diff-Config.rsc @@ -0,0 +1,16 @@ +3225,3226c3225,3226 +< disabled=yes new-routing-mark=main passthrough=no src-address=\ +< 10.30.30.0/24 src-address-list=NoWG +--- +> new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +> src-address-list=NoWG +3228,3229c3228,3229 +< disabled=yes dst-address=!10.30.30.0/24 new-routing-mark=To-VPN \ +< src-address=10.30.30.0/24 src-address-list=!NoWG +--- +> dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ +> 10.30.30.0/24 src-address-list=!NoWG +3361c3361 +< add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +--- +> add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ -- 2.52.0

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