From 6b29541e870208a41139e9a94693575c4d16ce94 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 21 May 2026 05:40:42 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 21 05:40:42. --- .../20260521/20260521054001-Binary.backup | Bin 0 -> 251978 bytes .../20260521/20260521054001-Config.rsc | 3445 +++++++++++++++++ .../20260521/20260521054001-Diff-Config.rsc | 4 + 3 files changed, 3449 insertions(+) create mode 100644 MikroMaster/20260521/20260521054001-Binary.backup create mode 100644 MikroMaster/20260521/20260521054001-Config.rsc create mode 100644 MikroMaster/history/20260521/20260521054001-Diff-Config.rsc diff --git a/MikroMaster/20260521/20260521054001-Binary.backup b/MikroMaster/20260521/20260521054001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..a744c2621be609c203cf5a8cd6c891320b843a4a GIT binary patch literal 251978 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

gGG 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

%6qec03j%-{O%lpLyOKN`;yyf-s6-v9Np^ zL>mY@PaF2;fQ}0!dgOscVM(v!_Z$rLoycnxj)G?4%hp+ll|c z)8ZHg-iysf^hL$)KqQF<~t9xW5T2a;4+taL~7^GV!qi5dL14$LNLCm-RW3IkJ6G zH))Px^0Zz;NW_U}QLe<1R_*EwWT9}wAS7ul8{O*}*!!-z6A}Fzy(+yljMiljukIaz zKHT8#SD*0XM97U@8#=#4|BfKHGvy+W(VvrUD7*WPbumit4g@AM_!(#b^EBfYBX_~oNnyj z;L!bfEb7o_jFQysK?U zJ?*BN5he#jZ9jCP2aVf>Jvh-cZ=YlIqM;uFw_p(!-vMY6!c=9}Tx~h(s7yIa4nNL> z(A`iYU;5@(39}1fCc$sE5^X3Q4vEtyj+s?6I+_}#jB&oi`EZML$RR`=;CJ>l*Y>zs zL^YxAit$0lR(d2nE^>wPd5u2;^38=V5z4Sz8Yxpka^c+Sqaz;{A%1xTK&l597#PEi zn094iAwT>zd~9{{`BtqI>}Yzc9H-%PgANSIiU0S*dg#6rP~>o;d$HH2vAs`l&v>py0TDn{c4*?823G?&Lz1Ql{2B9DqHI%H9P+bpzm`D_eH5_^75*ZgQZ@_HfLXn9L+kz6s$- z4T_Qr^|I?n#rxCgoKrd|KNOXt*cQ|nX&lnXu%!*b%8;CSkaOHd*sH^ei-=$zB75~4 z#XD=@r9dr!J03KT_P3YSAZ*on531p=UOUKdde4EwBk@Cp5l1g3i$k7f#wuu##q&t& z2LsGz`9ePq7V1hGa{)9npF}|Vm=Dfg^67gSO_6DSeZouWikrW^le;)yN9sAP20W8& z|9v)qCL%kx1${KI!n_6M0z1CWJQ%1>SVG?=s(sikV;1lHH>p#fv(`G)Ls$j)0G%~#ll{dt z7*}arA-Tgi{fxT!Ma&}_mLYDUd9#wpahuZ7?Ar{Rc>7xdcHG8XqFkLHhal`+xoxJE zhatqjo2@lF#a@2M>k-7z3!*vj;bph_YXzCN^xGUO-Wge5=ZBPM`6OZW84*ka76pk` zH6AtyIUUYhMvtO6ZS&$|GBnjZC7a&J%lv;bUf@_EQ?D!!uDf;8cbK0E;_%Ui57YKp z3fFj-0(H<>9Z6)CbUxqZm3rEKOO|~e{`md&`Z+Pk3X}>3YX(wER`-Tgi36-gzSDF= zd;!+=&m^3}I>SEV7CN%PIN?Gl-YGD(*`IKWv$%1;j6UB4gJEcJ67_0F-qztLvlGAVZze0(>4x~4y05~Zy5Yk

d^@2yRzrsARdj@qQv3|nP4nxcA8_K}~m#1-7 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

w=o^IzMp; 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.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 z zyrJ!LZ>^P4dox#W5&goTBq|dXPM$S^N>Fi{RGEmF(W+C`B9jM$E^J9UP>h66M2bEo zvt9UJmi)0@pOGp@-CDFHPe38^sA+lEo_o4_Y2J7twfmYsc0~PnaN*1g(t~fw{5B~2 zjyU}4s(MA=>A4Tfj<$zn{JOXM5{eq{>#;d*~s!LjUq zk7?I*g&yHTm0-LgLJ+cn*#nePR0G64e$TdCaNj~&a;3NpLRq0~Y`SR13#o@1$ z46g`GLuyi{xdI(Cf?kb!ZMg~f-8}<-^n2o5?hw>RGIJ+IWfEq1>E`pAdN*?Cit+O> zyj0aJJ_l6q!k8fJ71>FPso2Gq9?WxjI51ENp;T#>Dk8Q^17#p~wRMzlUQpLHiA(y5 zn94%Z@t&18QF?GBdknK7 zOh%`UbJJL9C{pkfqKg@kQq4HO=z|PZwO3PBS+p~T)|MpUF6lQA!0c%}e$L9Fq~)6= zL3GrfoGj-FHmwNK>Thn#oqgXpoP5VzVBWC2V@In#L&hYhmh<*M^q-8{o({l>8_}<@ zAG|QcPZmH&K@;mRQooSM>+0+K$8wk=<9p>25FI9q3VsZj$~%8^gKlxo z<`894KJQbpdljKy&RA(20&d*+(lL_|(>z!L|CAyp`kDpBq%|_M(_4pBSLFUR=lUfT z7MSriQp|Z%X9>hYa9&NkG^M9Jbsc33FZcZSLy~t&AFfj&Pv{l*7|%H6ig+s2ASr2D z9m=N`mmhIk;c|>6&q-?%kYWiy#Ei6`fa*Z)|Gq^tGVP{pDw7SsR%`osfB4vRvY9vH zRsR-W`Yt#$fB_M?9zr~XX8NQ6op`^cJ~4cSl&t-@eaNrcQK_2;3)MooC1aw}49EO% zzQV<3A^zM232L=KWD33DD(UVXYFMPQ2)TZw<^jXQOusLIGKBbeUzv0sHL5Wuq4gRc z{=4bf95$}K4&w5Th)c>$0li*?G}dQ=ub}?e{239XtT= zPkF(8c+fS+e9&dtzXZMVowL!nu!a@1_Uu}C@K6iQS5+KiRh}zzOQVdOHq7W0_ia+~ z0PdJU#AyQ`Kc0l)>5);88rxAV;8RpwqSnJ4P`7Y=y&Ww8oz??DVSuuaUf<3P1{B8w7J=11A z7CVgnzJXn^-(Ay+;4;6a;@O#&B{D-~_Jhm~v#|{C#dQ~UGY|J*_8=$!x&cx~VWbz? z%0|p=oPiJ|@P~yS;9vmkrV(=w=>2~ZGozUl&2QpcJDqMZ^1?RM9WG4Hz<&)SNoigI zB94X7`zSmV`@n4%TovI3!H>}dhb8MW>)24|+Nopv-uW;s=q9|%2=7n?$zMVULutN~ z(Lu`?2L+QIAjxXr?RLYGb1TPB9wLXF^K$80PQ^g<(ZJ+pvrpkLRItw2&D^+FLK(7VYhu(tTfboc(c6-u_Z>QXZ>Gn z6yG=tnm1SJU{2_2MGtax^HeaNhe29wpwU=S zFDebXU@-c&bwenl!~sF|m-dTrZystt*Jl1AE_!jIYs+a}Yq9kxb~KKE#zm(3&4e`N4o%)skMPSRV-crxlD>cPpbna%PA z+li37sXY?AQQEgzb5O-cUp)M_$ct8q8xci;A6uF5deU+A28dLP5ot3{p!aNDp2IeT z%d5dC`CPNHw9eyQ=?1GJ#6PnwAf?3WNF2XFoX6&YINv;6M0y#hjp{H$r%m^+3;b8O z%JSsJH9RK+^RG4BYU5HzbrTN_FxL-Z^d*91lU*<{6gZM#={8WTx;jorwSIC4@{YH| zh{`g5BK7Nmr8&{kVE0%WPWvw+Vft-hDajEV;&oydT3<{?S$RD{f~mojVPg-NBDauK zeHG5EXeYs22_E!^QHV^{yQ2U!>nLC_k{C9f&#$ix6mXCy4fEmBm2nk={%%UNJvu(( z0RWZJu86QCP*-iMN338{%m-t_Ue#8kU5GP;3dQU&AgXJu)RbjAk-`ZAE4)#&%dNH< z$BGx+9J0y-mG|6uY5tBjwYDs?yt_80r9_RH%*+Ti7=t-quC4%3!}^!;{SA_QsB3dy z{^zyUpR>pGD?F;Ef_33awmo{`c+ZuKI5MF~W z=%cEYf^997k2LrX+!oCO0JDBnGaKgt^ zWo_-YS#ja~n5&IhAvp41BIbjP~lj*hOaqTF>r_6QC$uTyGZ#vWF8%VhuOF8SbhkNy&ql!9;sQ=v(PP>wL zZbKpOjQb|;o|VB~d zI|qHlqO*Bj9w+JL;~|VMJ8(FZDvv1xLe`YRlU?XwfMYVl(DkLtCC?cQBM^o&8uHAz zZW&J#_9V>YJ#NRYjNQ;10a+lnA;w!La^naB5LR(523&#l)s{btGQalpIv7{!ncF`Q zex<;W2lg!=`2J>!xD1Ka91B8vq?Epq_y;czys6VIDsj!HQ`@}67(IcC_bYQ-ZVI_m z|6j;RvVQ@WD~>A&A=I4Ol!(H1VLfdTcES*9$tuk5^gw-GeT+0BIik#Ufh;H!arG-` z1j&q&(9ssOLhH0)6R5v#@Mp&X6r?|QXw^xqMh(Q)G|gXI+lVRQm~ppqbO1HB`bF}0 z-@~lHjs%8IZ=k62L6itlxrY|Qsf*SQwMzG8n5 z4J7BE)xMH7yJT?bHzeLZ_Vw-vBGfu!T(W@-cT`U~#bKs-;+_+fHeuK{Y!TF+diF^5Hn6GVQGb4&vCS8+p8sbx&z%s#D9D{m(9Hq zu54`av>HzH>=!rb{wd-zaoj6|)L#OcGTm}S(5k*|g)*SRYuK(p3F+;sT{%hX27ZqI zy69i4!iODUXYj|2qpkdsmKWfHD<*n~O-S9M`v~3~NQa!oqWPl*ymLJUM7ekHs+?0* z0|*9|%7%x*{W}_*_cy4fx`a<4k`oime@_x2(+Wt$y$*#((o+S+J8R64Yl(Bi2JM+b zFU9jZBVyIB0O1~j{z$?xF_HY4=4H`%U7ZlpR;|jv$xy6X|8um5Vw) zrTTniv||SgJ#(*5!w)laI6qre^W-k@L)4HP1uLse4)5-t6mDd-7XXw7HhnlNs^@n@ z-X{@jq;v16UyMvONiJ@NJp<0WS%?CIe@`F0OMLoWF~CM{24ZAZ${S6gE$s1ej&AJ`B_Pw|sq9E2jj+pt9|^o~}D^g-1;hy7uYor<<20~&hq zh=l`0SK1r8BSKbfXgOofLcl{=SNE7L)nR)H54-`%)72RBSh|>jupd)IPlhbk84D57 zPcxmiTX4uBfhiD*KW)>{rL}wmC=yd_iJ7~{YqGX%ndf}YhCVwBs(Cmz4xo!WOXw1V zwTVUN{<<`%JvQ9dOa-6wG+MBbPUSaGG)n>QE_L*euEL`Vzb$~h9BNJ$&i8u0CxK3? ziVn|erEF+cP04XQjYM)^FBAA(sdL7LnMru&_($=BFX^8}j1}PZQL?0BeAu?u^6@%A zUw5ds>{!#0*0;ag_-#vc8IA`(3xg%CIg^=0k|^zl!d&j!Gh5!U@n{>n*dI1$*R-D1 zlYKY4x;vl>h@QC2xpuHI?ZoqvgxsXZ*K;V6!Xf1~;ShDrJ%CE0y}UUI9QY)D%mJ@+ zFmE~tc~#@7$74$5iDumFn*U2Dzek?pR9wEgRk(A7)NfDYFt zecMk=wt2F{Jq67r|drS}JRTXZv; zCPj#)C^4ASsoX4C+&(1hbc3qUDJi0Vw%Sc@2o^12Zf(EVZ(#TnN{U~P<#pdLN5Xnq z`m$cMj)4Ce%w}h`He-b~m@rp|=oGpV)p1GXFYJikJKy%ib!F(6;5OcLGz0d0-`5mo zgWmp_aKsR?cDDX5fB0&&OHv#YWq8P9vlga?$~K1(25vXjf=0HxJ$f~;U{p<1{vagX z&XfO*za11IjD^sd<&wp|2LhwUA7CW--q>fO0D3l#>v{}i8i!SVTRr0_mh))$;`b+& z_N-N%p}89Z%WzL0SbN|Td%b*k>>m%An|F}ymEkY>P~C?rDsH7%H3?wHCkRzd;zN{< zO>~2u&}^kwDf`axPsng+`W*);h&O^__qI}opa*STiSYnJZS>MaVg`s;4Eme0u@LF_ zI>`CEAopaOqo5oyj66T;V|9&H>^rzoU?ikvL@bsa^9O81SvzOJiP)L-(X15RE$-{s zd1En&RZdmQQm?(TY}E+UKM(@+*Ai&~*V_SWZln3*f83@{ut1&{Gv9WvtUVad==e%N zPgPeDSU%hmN`Wj>lgyNq4bU?Uj}cPd<&{LO{2D{1p!cqB;Gg02YP76>f(FG92<+{1pQSH+ZC!%jh4Y5Qf*+j;&7=`NPu-OjTb^1)ak6z6WMY2{jkc z+Ps&5kjv(@JoZ_s1gdEwSnROvlD|ndFbr!ZCeM?G5Z!BwUPa}SY(AH<;s)m?jPEPj zWgZ1qg;70kpU{BX60uI@Z+Dl(c&-(nJkVE8gbwMnxo)VIBzt*ThywQn{ALXXSSsoW zY0>Lei@$qmT;{jbWz9|8MJLEZc1a|8&u^#H$_yID=GP3~A?92w$XzjZeA|&E&?cO6 z=VpsrNyrNYs)(}6C1RCypxL$lOp&ahT5AzRxySpdSQjeB#K#OyHKhPZn?!By*QwNP2VjLaB#+C z>%2{mVv;fw%1%@(?5p9enHMD2*Mzf0;08-webN;^EE+(V>q#=nXS8o!f6*JSeX(sY zlDy34xrS@(DyN{!MhSB{t@s3sO*P%y3YhKrG=gMVvv%gDT8%oDeBOBOoP>?&GC(=* z+SUWO6HL|H0ra_tEz~QSyTh`|CBl9}jrlq(3#<)`KarTe^UeP;(jzt-KB5VHQFU=& z0P9n9WH(L@SH)EO=0{nZnQVo+Fxi3tL})7SKklT5^K>jV2j!{`MzuN)&;?AJ*S2<7 z;tbpIhtf0lu*z~khu9|C(Y4)gHo&4OGIl1Pia8w@v>3sy?ZV-a13-=2!NK1plNX3&wv0vUt+H_82g%hW(5_w~iT2O&-fTk1E0x7>$VFkYVoAD8O{iyhDg2um-f)307dfV;Lr|oaiBbFN65niIb|DJy(io!_ z-Y#v5aN@Cn{76$rCVvhaV$S9{2l%8WYk#k+D-D4hTo)B`oc|P%4HudSuSa=^jktp1 zVvGkv5q;cE=f;G=A~=}lE8tYus-l0HBz3BlUgTNRX3xMvV1c{B0h7{~vXzx^gLKvv z(=&sRmu9cWl(Pc}==*o{fwOz4CbKQZuXH3qs!q=#3|_Qt?lT)8jAk?aDy+nMw`r0nQJ7D~(( zDw-$v(*A&Y|Kg>->37hqoyeR= z>pW46L5{UM;1{At4Wq@*OWt8%RvnKs0J2ZF2}@~Svz2q_-a}0~t1ak+-zWD=Iyvqj zOnU}X4?g5K(=>C(tx6j1#8OiXFm7ox$q6WboQMYZbC{-fOkKi9&9pI^?|6z(#c%5x z+*QZ!%_$qK`7%&5bmr88ba?bgYg~>WICvGm53Xb&d^^9cj`%vQY^>If9-`I`3}Pdw zKZs1%00%Ov9`}io-=(}Z_l?mh)hS&T83&^$fV&DM?ecQ@LdxR1_+IsXcp7}VpMLJ~ zId*5y9XR<;_LPKWMM-imJl=ASvhqd8p7u$4b=I!{|O9APW1kWeDn4hWwwlUQCdRW)|901?OGX#PUL)5?mPc+Pp zBHQtLGl@W+ZsMQpQOPtd$uEBbD(bi=CcY%gkYU=S84Dtz2X3!?3g=;Oj)@Dt36ZN5 ztam{hVMBO&hy1BMkK-SA<(^Y64LtoADbUmk2N({a$hVjRAc{*JdyMy$mc>Nd885R9A{emNj`N0UrRBHctgQHgT1^XAN_?vj${ zQz8a?!`E5mgwuQ{f%p9IMfFYHL z4~^DFpsQ_8EwTYhBX#?KF$un2FSA=}dwH}X&KgAyN|zKpiH2lw5$N^5l(Z{E$F6%O1!xNXqtx7JQM*6_=aYo= zI)^FXl+7PrQ03g9ss9n+U%^T?Jh!wa1v~A18g-K(9I(U=P<1SoqMG|_lO!I){C_IR z;Cx`gU!Q6~XN5r_VFylPjB`?`6UTgwd<_Rs!^nNix6c&>?x@abySmKAX3rJB_2|Hz z=WvweUy_OzR+8+`{eutsBx2Ra%Z5FamH6Sr_p*j{c;+NN1qV*7D-@mr*rV4uFn6ZC zouDCBpVQ|KR2sH@zKWuuRQe@=Nc%FrA?JUkr(U)NdI5eQ1C+rWAgGhtae><2%jV|~ zf2!UTTG0u_jL2$|^QEu_2r}tEnMO3>dxH5rrZZNKJrGFBzx|&2U_5f$_vtR}=7HK% zHjb{tM|VcVmZ)V=7-DPCI-b}+4g}rVa=qoMQHp&T?#9!_>6k!hf&ZMU46?TK4y)1F zZ1sb5CbH9Ud4y*U5oSkG%t-A?QbuN>-WVUJiGoynVB2K=&dwBe&jh%(w2%iJ13pOr z$>*OSa=O~4ch&u=&FJs0=IWUs4xZ}cJq@0PE^J_wXX~Js9Em2DTQ0}G;3bAuR*|Z- zM38v@Z6pOF=!GR03}d6dC$j=iC7lX`YG|JpDp(Doh_t{lQDIQj7@7!}i4xT5_(vq# zUV$Y&yXb6Tf=nrJ0`1BF59}LkS3gp z^#67FD7y7AujvSiw)=s$YDCfn$TJ|UYaN?$%N&Fi5T8pwMC*r#X()pI!V^lO72RPG zzf)Z#q#CMG8PP_k?f8%8fHtP!@tP65cnO4H&2ODM?c3F|IcF`*Zw%!9nBaV^N=$)` z%=YFl%iFK7{{tvWFCDZ?0FmGCrfue)Nf5Gp;Ps;nJ=BuZ1v`eP8BM6IU{?+5wO%rX zt&z~C91?1e(BK36=G0Oh`^>!j^eX3cstfWXCo-B72d+jaDw&4a?B^^)+=NB6(_k^6 z%TNNgG);GPH1U(DBiMhdyY#qv8$cmNu58EC-pet=s}P#rGaR^PwAj0SwarGLm8XI^ zCzARYxdb7~jccjngsl#blC(>=Z;N5p^osIYU=wk$Ye1oc0J7y8ttG zS>S0MQ3G|FKmr~24I1qU?5Z<2W5=whe>6MzT&}x&?Lh(dy9QO^GKgwfA?S;2$A;1? z`VJ(mPiD9A9A#OqW8fAEA%MoeJQ(dKE6Y+Yw-(s|n<2z9iE;JNU*maaXj8|_`u`e+Ft6DNASZ&x zFS1hz>fp6K&ZvCo)s}-XCuu%h8=td>uAr0{T-LSH>qGbi!Ohqut89B=Q3gIj60tO7 z%DFc{-ad{y1rB9!&(-7#NlK$V-N(eaVNO_lX|MRLL3!cMV=ae_=F$AFmhY}H|iv?EmI+Axm`kfc}mfvooKpN(`tkFmfV8Bv!~Y){<3e*I-Wo4SSWPqu?S%PT z3P_h$W%%4a84smmD89`b-j6G`qen9JF?m(VIPCZ%XiOwtKnO@aFeUxed>IBI_{}*X z1$A#0ZTZ`=5iLjW5fXRyDsDp>&0^i92&;DlSxhq?J;PHsu6mT&z}+te9*rh~eKzXBfZMbQUSFv&`Ma6IhP60%L zxDw}^Fc-EJ{>S?z89hw^IOce-t-^=yF10xkTL&z_v_w54HUXU&=xvqoCVG;FoI-~^jDC6{9eqsSX1~FHRJnq} zmA1$VxG4~RUz*78=EQAZBm#9}xW0k5f2R~V65V=%vMfO2ryBrf!Cn(BP@rv>(I0fE z9dGQnYYF@#ulE@vIaR%Xs+~7YoK7t_5u-T<@d!{ME-5x+-xQk?~z^ReR?RZA?arS46Up0wrxf4gNcHr zJN#*(i_k{2TIbQx#eVa?i!pX$!g6-gw_U0LRB=@;H@YLjl$NEHus+)D%$6kY^nvS} z_{<2#tKbis#^_+1VSZIAmEllx-Lc_1Bs|_rV)0loTBaP7df+1c7XH68imQ!*h9TH2 zi~~uaL+3=o@5Er@&dlu~Mw%5bMqj9Wxx*M@ExaZR&cc7cO zLpQ`VHAUoLqO~XsbIWO^Sc0_uaRd-71W+ zNaIQ2Z`+g^&qq%w9-zfb85Ud=1DE`mw~w1*n7H-N5EpD}d`L3y8HaG?QtgOBYwT}8 zUPk-zaC3L3V&(Ec@XSj`2pMxssn)1%G0qaxzCA-L6Ee^TjCjXw5<>H zMUr+du(GB`5{VSU>nB?}F*MOrrOy=zKgO?pFM#g$MKKfVu_ zP8smP)kB9RE`iX1>qGJyQ~f_VC?J~@eLVB8y_)XQH|G5uTO^b=OjZ?N7QC`ge+A+P zuSLpv2C~ih%2$#$!5Fp4gWr07Zh^WwiBjRZi2wSV8NF(CYlx~0fA`q4dFmWhRae~c&+F@#)9aPG`C)PSLd`DJ#_JNvgr>7UYdGa&BlIKK z`gUI2napksEe-gcJ>viiZ$CeQLAxOKRHZ_*1(S|e(A@;txH{c#1gXg~i=+?d zW6GE9KUP)P_NfscgV^j;jvNQ#APR6(az z+Rn_nyzs5*{7Oq-<~Kwiz5}bibP0;O1bRNuxC362((F~|@c3y6UnC9@iw|E&`@b4^ zB|~jw6L50bX}Lx>_T$gZ_BQx8gzRi7_*d5Hj#}& zEpJFtKIoB(ugS(?E=Q(koV@=z3XW4mFkE4`CD{TLf2vN9!=BR3 zf476hje}q$Uo}3I!Mf?CfKiw3c%fHzD?sx=(pFRQQlV=ot?-^X|jHdYn3b+zPbheC9M%EQuMN0Mp~g_JOQOg<7L8mkjg1N=3UV)`@c zaxO6zJFnN-Gr!smEdp2F1kFWQ`6H#}cYtvVr%V3xj!^)GA=qd!&n2m>a9uzYGx&zT zM9p>BUEeUUs1BFf5%cNN2Ko0qeICil@yI*CQcw|#FpEq!XHp}hdKvbhuoWuXYR|fq zQ(G6tF<3Q$xw1plemdK+U!1y|ClL5}HPq<*#`DkM6msai_jJYJJcMa+I1HaJil=q( z_zjr%X+@TBsNAz^z$&Oh=smT(z}z&h0y1q9yVf%CBA%kA$`l?X6kQN=o-QCZ_4%@t zTnv4Lc?2MHM_mir;LWhPhbM-l!HOzczDGm|sPpM)KepbMHF5oS6y#TcV$@2xtR6!e z4#+{W!5YC^L6rm7cUb?SlMw~vKr2-6H^#6R8OzcKc9gcCv2|sKlL$>ccktADI}9>9 zj6FeUU4|NzOz3^C;uS)!NdvLDJ3N2n4)2leRGJ1lpO6(G$KbMEFSk-65*5^dDP`IJ zmMV9E$k^2f3@?aM+>D#_-9T=rQ9Z3?*mGwkahBjBRhefw``qMrdH2ox2qZE_q7fq(i1 zJ;JAV!+i9@=#LJYRp4Hawx`=vha{p@u0SYNaTvs+W=yzennY1(9{4`9F@1zN&2#Xs zvYWFJgj0mq110-vU`wicI}L7-Goh?=swT-dk_(JG6V}C^RUU)Iwt*o&EB%3Tm;32>eyq}SHM=b6!xg7HI1#=7zy$&I7CM9G zp9O>ol-1=yNY=qv$%t$(E&%ZgUDSqeV9)GI?IL-S4U$eGSt6Gjy`^$q-x*6b5*N;a ztY1<}hsLmY-UT1Gar$7L2kuSKd3&Qs#5b}^vb+ctXUz#_j;+7l)J)a2A z{OAyE2>dB1rqbR)&I`9zNxvo&4&M(-bmd)3Yr}E*+7xb>^?m=Vqd_>HS9PPWPByWd z4xyu_gX$0(_t&1t$pnB|x@RJ0tj=Dp6$462>W?+}K?it_UM#(Ygjjfgw!XTD zzMU*I{jQ?2(OrLm4Km578C4I*FFvOsWr8$JsLD>AAd{o;m*-zEZ_>43uNNDXe|9_9 zO^f6}^0|Pq4*3y$XGRT_n+3c09GNDj5`znt0-=%Eq;WJ_0_K3NcBB`*cA%H_M#O{f z`CrYH-AMSuI_It>ojR8pgL93!@|$FAMVaukS%?XoC_NMw-n{`k>qArsrw7rQ4$lpJ z?Me+o`5iD3yL_WSE}l69lRf@Zo96bwOh+jg0m{GZQYUyBCmPCWgU5pHcP+ZReNk`U zjKL=a&ApAZ~o0d+0anDI#n7KIThIVo3gR?b_z#wG$x7XZGC2DbDxO znAg#~DZG}{5x}9NX84Abp+N>B@}=PZ!Z?P;CEi2yAP)&j)2-l6A47}uAj(SWT3S>q zwUQFSl_2B4(K2JV#^v-ljKi#%p7sZ^V_m-$==`>|{Yip+%~gD*QPy9Q1)e4#*{26&MV zIio-wmOe;F*z;Z>jlPReX}3xgZ4)y5IcNmD+&FTlgc*s6|CVZM2}fni<4fA@0@ed* zknH;o@iL{#t1I}6kJ}*j(~-jNjHv7Fes*Aa@_`eaTbog!Ux=PUW`F@V*zkby+;At> zUszQVdwtu3legB=o1!FG(Z1rEkbvX_?6?)Cd=FZ+CoOfaGE)ej87Lmi5u2Rm z2?f%2p8pj-7!~CQMIjl-yNc#I4aTh#1gpFpEqKv?XGFM#C>|W1QLlK;lkg33 z1pc(j5yfXU>rGqs??fZ1VT0a)= zsX$;=j3Y~kX8I_%SB7cu#pzK*$DnT>Iva2FMiY6_# zgW_C6tcuZ@P9nP``g4S{_TmGrRhI=LD01(Ra${uaf7)+!~3n zdO7>yRA;2J1qS$Atv5iq6Q6A56iIfD{KXFv?;@KVu4^0z90f2hSw0#;| zRuQ6IFEk!nd1aYG2YWS^3m`C*XQ>%AQ(a8)Kua0UnqQmc%i`{Hh7Rd4#TfMyKw}vI zm0616&r0Iy=P&pdBgBmP^mO#o8dz%+#C{v2j4R;0U>4!YO;o0vKOV0u+EXuwc9nkp zid7Pox0cIp@sH!hC$i;D_P0RmtJoGuR=|9`1#&B%X^i^8Tg23k(PkXP;(Dkd-H#~z1l9hD519#?h?3`hm!bzXpV|? zFLa|q!5%?X*2?T*#Sq4ky01&fL?gfQF6|IWQ$O&3*_(Z66)FxWbA~)6{ohKzZB_)^ zwYy_`CrMs#r7oAe%6WMyu-1&ZzNl7MLiEHkszON5NtI6cbw&8OX8z75t(9?t*?w>y zVL2c{wV2$gpv>gphZ7^=nuy(-h1&f?kD5jFkRi8Ik-NJ>bDYGTGD9wHaGlh5x-`hShPHTfD~sAH^Ci%RpGP%QQN-&vCC|wQ{kXNJra$lQI1W^_ z8S&k8O+qr5&k*}REOKh)86EPNnI&tRnKoN;$g~95IL3#mM6$%nX)QLI>#NBdBmvw1 z_uDL0E5aSYwR+`aO4um@B^G}{D*?^VGTt6?p}|JHQt?3Ftm)_jr|zZA%30#CHX9B% z5oJ_BETECCc;?g~K-n&?*UT=>Dyihpsctnn#k@(HRscRyWwwTnCu>c_asFTKNwl?C z(Xg{g3NKdC>h{Zy{iv?0Lj@ceL@~{fFMffNRn)xw;C}Iu%uS?YOvZhqbKqm+U z0SS!gU|$TgNcL02N%-#P@$5T*@dANPx<%biMHCxBvB5z&r3#rlyrKL^?sV(8L=_~$ zsfz>-pEMPf`vGDFwX^8%BPTK(ePl#wWevrhqk4*v0$`&~AMl7i@{j4l>po}1mbWV_ zqZq5Vu0A}<;(y*3YXn<(=Qh0LE3@UlPboUy@xwadC$)J^$LTTktPqQ}#$`9`2>yl3 z;=oN)6&?&?*rs@xpxO5j+ZOhyD+LPHd7JMyPG(xVFnxbcC!Il91NR^9Q(Ugh=dlW$j~FU4%~*}~B|%70>aM$|j%;zez97rb zl26OuOu4r7$_94VmAt_ys3KjY<-A^{_ruOeu5(?4qH#0m5#s-YzoOdOl;>8=My$LC zHn5k-lpaApa8IyeTX<%_BqQ^iC?AO_u;uBRh!-aO$J|O}sk-JUzx#inxIc@xHlaD& zhyF^qxRdZl)Bpgr1u}68;q!~TT8|2ThY+m7;S@(HJh=kl!O=atrVI)_Y-;GvPBkIv z{p*Yu#WGoAl;SlIQeEgVP&?L99Uo39ro=fQZ)!tF4?G_I)PBwLe?bzs@ z5^w>Oa7D$)^Q{cwUT-vkXlrZF;a`6`F%XxQQe*o8*6o^KIOwtaqYO z3gg7wa;?A|&N%_QnU1rvdHCG=osRZeyK&2%Ta92B#+1VH$!fEfX0M;$00bxI?~{#0 zp4nc~7K+4~*P^pb!KDZ=T}v~Hcpi8w*+cfaLal-ZS(-zUzRVc3%8Tqs=(h41qtJ*i z0_c5*fC;IbMe$=1+NRg#w20fKY{?Bvu%5hd4_?j#aDvhmQy4~WjIRy^?gvscG?`Oj zj2{(mZ%%on!+58Y-{$V{-O4TYE}HuuVtm0ahfo!~I|iF^_)RCg5=hh3OdcDqpJl%O zE8cF1oLC_m?B6@7X)9YgO5G@3a=$ncTsLd=TbdFout=19x+hV^Ls7t$3zAswQic;f ze?{Wui)BdeWs2dkf^D{l9}xYqk?CfY7Ox4#SWuS#Eu@6TDs?K7D(LquqJ6SR(M95S z-aE}9fFde3d)cud9GXF{{rUGL#PmMZpK65nhx=tgA3hbDO@U0bIo`L z?{(NrJ+1u`(`fs*^`yM@ zI20Mhqp^=6u%MJ{TfFm>UZPu#HO+=tvc#5%v zX>+JusJxZmL2lr!==o~;RYb?zcINSYXsci8W!{f|_VGbG2jYimC-TJ=|NAmGtA_|* z#2uY~r8T#wb$NbrqpiLKmk4`GoRxd?WJ~rGdt*~kB>o=gye|v!&AoJ#U_gCT@xB?)1AMZW_zHS4e^PvQR^oEZ0gN_5@2sw4L-~@+Q z3SKub|JkC(k^n$0Nbp#Uk+>cR8}b~0@ko%qHPs8jeCrDHC#-wJW^Cr23a>d}>t`)O z1oM7U=t%D1-M8if8H0%PHw7NEP<$V&HZ{x*^(Z||{$KcdD&l?W$6J!{VbDR~913W* z|4b0Id;8D0hvN?@;XB!4n!~++IR?BkOe3_KWLy|V@FKM1i={%(@`Y0+>ne!8wT#LF zA}2ew9JjW4Ns(%bAz3KPR)uYsq!#Q8q-jq&>o;^Fo=>ki+!D2LN`oo56=-wVPyBC*clYUl6AkHqnM?d3!dS zWlae5W-D3u`EspAw1_zv2ch5_`;}`Oy~Lcgm=oysuT;DiYzc@)IyJJLaio2ko}N|M zkYV}N$e9M5LO9!CR>L53lelb~aZpF#wQ>;hBMDJ5`E+il>R5s}xy|9TRK1YDpE z(6iQ<9%j(1!8re+J)1;}xkc?0ga z^c3{@v(+B?j8K zrsS?|LikcfmBE-BML?)e)t@_t-vJsW_?SdJ`dS5A;vf1Qry-(+hi3F zut^c5hy_MVfRca$c|@oU`qML`>0*tmgdxJpFw`Sh+SxeC<1e%5QlTC`-v>AuspwAz z<+YgjA)JTDO|Zk7qpZN9u#gmQ6~uFkcEZPxCSM{y!8&iW`U;S0a5vr&%{q?h@&V@Y zs_zw4v%F2zM`O-eLsJ;DV@W=bLUxM3|bl<+6RzHp+o$%V0RFq)5s?OPa=52RI({r;ylC{6cw2&i(j6$z5 zEcx7eks)Wk(xK4!+O zZd#oMB2)U#RTap^TvRLIk#@0@Hma-YaKGyAy!s&wU)YZZl^|sn?3UU*KM1|JRR{2V zTch7~yGw6^3Y#o{tKGuWiXtWDg(Onh-&IJ3`4h%oznOnwRSbvH`1|@5Gt}k-fxEQD zfDo7Rx3g(ckV0$o;liKI_) z2+1%d*VyjV{m4jL7M4)Sb7-bN$;a@`IVKkGFGY^lj*FSYwEbJ}sE5^FlOH@6<}mk| zGoUW#a<^<;e;mvLpmD)_qSl4M<^QBo3HBua+pG)J;b3-YHo1Zg4k&7WPdV71w66<+ z=kChNZi+4G4~yBVxq-hIMk4X)@>qJE};*@RkLD*d+Ge0^F=Fn$=bQ2 zNb`r;VNt|m543H62ERq^;ywkD@9_%01Kwzjfm$NEW4I75N-3mv|(WV9{ zc8WcAJw`x>d-jjTw+>?{e&PeGP+cY^7K$K+EEHB%{G-z8M(dq~xl`hq23TA3U8^k& zGX$*eu?)PWxTFZ(C^Ksif7gy-`v+Vq!0^Y#|JDS!^OnRU7r(ZdC3 z=T3>$8?CoXQUk}h!6{;qBv#C0Q9QYwa4W~Yl4fg-w%`8hhd;U)ey-EeBg)7RK{;w* ze(g)%=rJO{+|i+RwdA~;tt)^@lK~Ss5!u*Fr$YgOl+N&>B-N2*qo4pP_tkE(OJjbD ztA6F$_@HUw${tSy3Y)UA_e^cMD7)o;tQ24+UOdsb*cR}C)#(qkj@?rI-!!@R0vdL$ zJUEAW#iR%!8{jtuqLuAgc#wlvr(Ykh<*{F|(9|4dq|zcee`O2oUDu7Bf8FyaN7N+*~ZyV~10&-NU06tg_aT+W3Pl0H9&J z+;6!PSDhx=PhR$u2({?lwQMi8yMY2%h#49xEgZ`s0c3phD5&U_w6Um&FBX5WX?Qsb zA84k#4Om1Y!j^T6L#7^>tv|igmKNO2qfYUxUzm80YeK8%KElQ6+7yXcO}_Vv#RPJd z0s4C)pT|y4#Z}VFvCfcN@Z?qhEO~-$9(9=I*(atS+|xWi>{VQuZw%h0eniwq%~npM zLf?uONDfcGpE`40c1wx+bv`gXmPhZ9anvWLJWcu`5sdgW%a3Gf_uI@D`x`eqawiXG)$XL@Nf~VZT+P@3M&k_QYyW+t$u) za0xh(uq#G)LH9hS<30Z2Xqzdfo2^Q8W^OpNf4|&PZ4v;HOAwOcpLM_%rN^#{b zbny;<9{oL^aeW98HhuLYV_jEZn!VU2st(U3DoE~&2_YrT=I-keh zapmW-+oWextYRIwWz9hNfKi=ZxGwf@R_QcC2Ul-Lk=xQ}gH6=&c`^Btk(szy7p(m$ zy(le543IrZdd4!VyzUhzFPVUdg9}Lrx;?yzPan0euFMWX5Mkdftr{aXCZ!BW++ZPp z5HCy&$3=R&!%(S^#wU+&>8;f-5>8nbaGGMMQ&P);M)YeWorr7)tp|HAJ5US@F>#X{ z4Cv(W@$?)*2X<5(q*TYc8NZU<^ZAB0l-DV|a)-03Wz9^ebn|X+Exjlo@)m}F8UwGq z@-0@xXH?&&R+R^GjnV5KSwmGPSLLB13Hiqy>tjPk7xI9x4ve@FEOH%Y{Caa5YSgC< za&n*}_2RKca*5)?K9Bg0HRyF|4u9VAtnD-v8_L`fD;vZLJ9Ic3vAl3#x6iObuNTp({t5(b zvwYW2F`@pF2%=w`2RRWme0sQQqo~%}IxJHu5u(fb95()?vr20Y^4e%84$-I2aSGMxnNpaXyR*?}4RgDVMp?x%%o|9NItJs?Ea#o?K;Czu~iDPHO>nmUmp&(#n? z$4Gs@s@7C-URxjkI8xs^lkBp5gR?J<0DLuaMl z>?3QaUoh-(Fh(57Z29nyLaU7H8YWLh_VB7Ou<`S8^g+z!_~}D~;qgxLO7kce|AlXm z5Dv;-mSPS?JnBRSr(w8vWVdeF40uXy-c$_fGp(F%dtg%`}8qfshp7LhEv_3N)a-HV_EeGu z6@=~d&-VSUhehcNnxfsXu8%7jbz0#>DJrUKIpArPe%_hgQy&1J88Y$EjiP~FmfBBu~>vWj#(7sC* z!E5C2KY6u0nt+rXjjS3hi}}Qj@Is5(@qG~^0T)ZV8xX?`{~ zjFdfqtZ1d`$0s4tcb#3D7>;ggyHmfX-WhkU6EP+Q5DsM$Cy#UetS((9_Q+AvcmeWQ z!$rAh(F_gUl^!g&Qygf(GTgG?lqvV4+nYBoTOuNyoO>t`DSwl)dEGCt zP;-2aeP85AN%)3y+FfudwQbFtldlm! z%U`%R(aag_X&)1sjNZwI!T|buSV9*^XRNICo-#tIn&DPjD)d4XmjM4i0KoBtFL&Py z9A{9NP@{^mEAG|WNq~|1ln=4d-mCYtH;1hdFSla9T&zm0GQawc3wG-u2V?k`S_OVm znAT-DIiSVbGIh3n!mGNzLSdXOEnG%Ga0|sEAEJ_^Vv&?hiGCVy+zn$l(r!?@Sp@NJ z&8n`8;fm1y8J+SJ?kmpf!#1j8u z7jOF0L;_{~HGO8-!hO<7TRa-srE=KDXsE){W`>Q+6?xV(vyRYLPhkVbn=ONKeyHm9 zB%oC9s1`nOA| z0LjvDV;}ai0A=()r#VI$xX8p|h6f-EVH3AkVvw6GkU)Tht(oe9dP`dR^9n-2s{C3l z3pGqQ(X66sSxheQmt609_Qq>3A;!n^z50Sa^u-4_(BUX8UOZAtcqbhMZLbZMaj`_j z*dr`d*bO0T6xpmY&#}GlW}m%+G-Y&%KSlzVwxGWl{m~e7r8NdfIVrK$m7@A1>L&i~ zlQVgcaU``bAq$ywTAJr2h7nTz^}m*oHJZ;CbUR}9yB>XK!&^nyk>mrYWVOrNDwZOt zj)U$Sf$9hs3RUhqbVMwHZA0k_mhfP}Q>ieEhP%Nmv`sHL{`UE4S1L@;cqxI^m`}zDl8%AuV>NgPF`_{MV>>Ed8;%m%i7H#}5-ykR(#vDWJ)Z zOSs6sma(F;2%}3@&r7Q__EPtDKETq!r%)@1yfkgYkxsVz+oM^2{TCC{pV{&hdUNPn zbo2pJ(r|=ZW>)@uzBDTN$f$EDtg!~$12HT!|R|qFS;i{=Eob4fy zQRak?9T9how*%keKp0~`f^JfpYas4hdjL^qEDnvgcTG1Mp0{>Xx$p$AfpMej=aq;P zXS*jK^^v@HB{s1aYodO~0;RdH=Xz*qx-cQDV}(plM&zD; z-`BF^o}({B-*KjZ;2jMa70}h{YrxxQCp#SS8(XtXoL8J4N&g?1)A_v8KcU)WB?UG) zcD{a~&dv4D!tN14(KtY=ql zFHD)!BPbJ(t&Ga0VaUebZ~3DxD(kv4j2>;>liXH%E_&6d=r<%p+B`Q-p%N*`Qt-P0 zI*HpIK@qzL%BKu@S!rea4q{-;f)ntaNwQ|wo13KzX+y#;QS7Gf3Yo`4Iq%~HZv=;&Vtzv?u05~7_|y~C0|~cok+V#|j0>EGP z&gUJq>MsTX|n%tQX0%Z@U$RLvD z@5I8$%6)p;mSlGTVwAE=T)HFEi@!E#(CL}@{+1uEA~|>Iw+z;;>_Z5J9Fi19tCW91 zP9>0-;e6u#NU!O>I)|GAK~@8Yc(cl3^!s(zSJU+Kjj2?b3#~*K!d%Rb@r*WkJAdDX zf*wfv%dutx9`@5w^p{+!L>)=51wN?(tJxkNA(r`zr)~-VqA&eGZXpLaO#3+3NLSMi zfx5g!_IkMy3#hjfS1^nOiJ4rguVfmF{xTR%i~!;o#$#5;bwv@cQmP4N0Fr zdx-Jh1v*f>!16~UyaBsJWj4#Ry*`NpyP5=d|L@`|+{EoxP`R@nvI{D+qsO)Ria(oA zKfSEMwGS7`T&{NSbx1uZ(Hx#Fxuc9L+QsjJ_0o?i& z^x-290(-84tDrj=jlgG;&3!@7O?`vAm6OLa4#(z!EfD*0am0l*ybKTntPN)AW2vBy zBv?K$lH{!@r7mHfA;Shym;JBssrTq{zDtLB(9P9BsVnJ4V-IAHo{>fc6y=SxN5T8w z)Qylmu&<#l83t{C?u>F5 z;?ej=7J{ROg>VHuO~g279~Fx^D(HwrKpPu}VZub<(2dmjy)0LHnG?`9Mjync6&uqK z);R3q+^hpSeWD1YYhYdA+aqF4?5+^CZZ<@*2mr=D26pFLop=x@Y?$d)3da`o2swMB zN}PMA&hOvPDs&L`6`(;Y%zkJlN)sjV2(=sTUtd4*rF>ZwNaU|J?fbPcBN+;sn=wAa z(5vH_0nVk}+}9h+09X%yZjT_fR`VK z{9+CWC{IrM@&_OqN{N{oSOqm+q`waWNa0ha&uhbky4?~$vguLlm&k!5D5IRu+AWwm zxkjiNN&Ukwd>BHV{33k1D0%=$A-q1)Ow;=psKCSS8^!N-h2-#sIL!C86bP_!RHoS($09s$j zq?qh)ubBq}DKg{9hEFq2`~ji8c5$yDH*`mB<8-aHG)ZekLcb z{$CD+V7Q=9Y}Z#!%a_?JAL^UF>(WAJ5!B-Mx3b`Hjc_xj)+@Yn^lsHeDNYd3M}2(# z29Jg8BET|o@bG%{%z_jVz77?$)(OpyuBU?AdPyk#@PD`Kna>a1t0ti4gIkS5{+#^U zmfDuDZ1Z6@^z{_%6LAc4GBP|?jdaBgmj7Co?`s4~JqFbSbYSTe7Kx$2 zxoW+mm3I1*Ucblb_RWz~h;%=L!WplWpRRks8&v8gAdKlX$d3}%Zs*llK_y=C%r;m= zWc)mMGgEfa!dmCOckpg@p7MMICD8;_kA{qLKe-3&OM}kB1$09-S4PV)E$V`0Iw;Xk zUD@APLFUT-f-i{cJr2EybR{1rf<;N((D+~tYCW3QRhU{TXE=avghzD+<$3JoEuauI zH12yGy5zF*{IoCwxkzHRUc#yaQUZ0@f=0``c6MMuYM%9mv_Fzr|Fh*7An!jB1*s2S zEVuIfL)aDspD`?@*sIMrhs|?DCYS5~^o<6v(I2z~>o>A}&B zB$A;JItpb@E*i_Ubz@Ylj}G!yk)LLrk8#Wu9=AQS=)GIYb++RrrHM;kApc&O7Ot|a zK)c%+a+<>5{6SclM!T!i6*Dogl~;bsn8hQ;>nl5G~zf8T^%{NS9t7lN0$ zR5BwMI7zh^bYKIXV?S4K{QdSoHDH}qA+Z+I?|JM+rlWU+iU6`T39Yv8oTp~Uo9MQm z{a|UdN?x*r6F(sZsgW zwBE8b49FR}YeT=04eSM4q!d621LFy-TDM3-Wpyx_K*fqNfO%R*C9Q!iyaav}VN$O| zZ+56a?xp8Jsgf_x3m|d3w1$9fv}!#R0&|HE8eXN|k}^a_p{`?HjHkR8Z%~-$!VN*q zRi^_H^K9~5*h008mkbHZri?A5;f)yk3RMHE>dTZe+w_G|@6lc7$nS!+1CflH#lxo# zdupg!&`%EL4eFUOx!K3U0?Me+MYb@QvW3!4^g`7vZc>f`3!@}9#qzo%sqg2P6X&0q zpANIk$@A`GYnyIA)4VN$bP^LTJ9sP==mlr5C`1+Buq%Xwb(hFHm*?7in!(=^<+6_@ zuBBC`hnGo+ICotg(x{?GoAL>+ifxMfX*cz@AW{5o#z>7?qN(?X74V9R_(++o-|MHi zoH~Y^O%3qgNSmgA=(<#%adcvw)?}un(#O-lF{bq|f1-BXW2W+JV-dN8V*B(jG|Oqe zG@B#C1v5M(6*+}HmUzJ|`GojkbUU^Qk8Is1vXYMXS-W9i41@J#Br6|N{(wZ5rlRFp z(rELjG+3Kf4bmjI^b)@Yg%8^8uESB&U`<_u#PDz~ayr)z!Le%(svpG*j#o+NuCDh@ z1@&u3eVcmNn3Voaxtk@!HjKzUQRqOy_K7kM9$(QalIw#CYdx?5Fj^)C?N0F&WZ-M* z6EE%EEP5k7a=}j5Xd(!S-O~fb{W`vj@}T&x!LXTZ+CE00^CrvA+|_o(Gpt^GXWyU_ zo15vK#xu;Nn(47r?TH`WyCouVqw!#((7qZXiAOphWZO27jlgn8Z#vsIjIcYwPiS#% z*46~tL*A=oamz_++-3c2kYMZr zusj#UVrP#JyPq>xy<`<7r3I|V6_d9wTSY+=Lu3oirxc4R6GHjy=r75>)49PeOQ_zoVUlZP%rw($0D0kE_UMAi)b4s$46>UtxSuL$B zI+4$(pGCqcqzJ~z7hf9KRN!ENGJ6Qq@DzP{U3p)YcX{)*&IanOp=QONIFm95WLCLP ze}W7|LA@QYDt9E#Eq$y&vPZu8aecK@x!I4DgO(5`8Q;s z<1>%N8f%2#l(=aAy*7q-H6xkJI|Th`xAGbd0~$N50A% zKNK!vK(u^tO;yRAW`z@(C*3x%bX`rme!x=;&uJk`Hix}s7et@F#xcawwB}kU86C$_ zv9h=6M%>b0(=j+aCt7}^n*i}4-BuVvNL8N`guI?}6rju$|x%S?!pk+i5mQbA6M;swc>;eYX zYwKK1h;>=bNK|=e{wHhLh|fE_1IM+J7<=&IU{{Net=oWjX>|X7t%N}kUmD5oEM>X@ z^*RX+l`0S@7a0TNaGvM^D@S#0^Myy8Gyr=%!D&P;$AftfNUfmTIcFAv_DKzng)G7p zU@c>@#Q-r`oDCWq?_P&;RRO zk3uxr`xY_w_`!W4t}W~B6M00ZO^bu!Jp$IB8S?a42GcZiX!F4pKg0U1FHcGjT{kY9p60Lj&0-Aax6TKiWf`?psdSq@KXBcriUh zRriCpk-%okw&MQ_6SoBA#>1_PjBZhv=_YJ9oRah#F;1pIga?Fv0$Ld-cuIEx zMj#^}073z8eGoAs(<-83FYu+8SzH^IPojD0l;G&qM>?MbaM>Peaa@4{^PxEl1mMKw zX;@xSS*7?`UJ*l~F$6n51B19zrZw$)x(6OajO?nn_X-$tG%S756d{NOU>fh3kAr*P zqed!Xr8$MOFZZIa?Vj{Yh9%wwpbhMnJz}J(DBG&wd;^EpYrZ&CA+}Bf)XoLjFNTi$ zN^1=kvv`T>KYJFT(gMFH5nN|rT@g1M0;zCm_hAIKoJ{4nbC%LG{ zeLQ@np-qwYVHIb#2$9q3rV{kb1J6c;(3ZeJ&9<%#4)hb2TV2~7B2{JS6?}_3hH=Hn zZkVxhq1gwv!YFVFhqXT~xYS5sC#2N5IM%Lkw8CXa+#vxPBh9-RMs?3nW%M6{;5Stg<_d z)Bt;;E3pT5A_Z2#G+_og7CUogZX-M`%_LkL0Xms;jB$H%gGHohfqa>%YZ|Ax#NYx} zj$Q&d_OgU&e-~G8XlQB&LL9>3JqXcZQNzJtcI z^occuf}MzY(lIm%UfHQO0tc%nfIZ%TO1!G7!B6@6;17c{4!6pXpbl4l zLsr#Q*YLcre*b?z$pa!7Z$ot(A!7!hm@nz34Kc0AaK^IRu*H?TrQJL6jSN6kEgss6 z=|I@|lp7F1mxvY5P<}q;fCa2^lv3soh{&2-LhR?34z%rO33_Cs=Dpw+lZnEtAJcLP z&P(IcOuH*RAoSaCtF4R0Z}hm;z#bKY>r#wGu3dcnOE|-Emb(%6gbX3_o*Q3bM-zZ) zCt8U}b#+BhbReKn!Tewx3;9iODZT1ss3@w}Go$+wJYHO2NcD3B3)=^reoQf=m*)a5 z6+1!ydTPDIHc_olI>M|>6$b*MF{E~N>mMmiAVHt>ZU#sYLX3Qbce-cFD-**gC$+fsMz0v|tUkE%5&}`4nJ4~`uiRfKx3pDH$R&c1CZU((Vj*jbz zZmlMF5RnK}vq=+g0PQy%x9&R=aaE|yVQPIfP916@yIbH`62RlZ^ z>0X0c3^!$inhJOP*&8|E`#lOSb5cXQxIIE<2WrJhe4IAm?HWy z)IEX$?bg$yXzKqgvLW~<5_T4foSL$N{NVL#_qWqx@8D#kVjYg0>h=iVO%m0JWY>Yz ztJCtf*fVyOa`d#6D5E%j)4T*x9@ZY15PDvX@8tfC2J>gPml1OJ` zM}spFd9*g*#mZY-Sgl;la8bO;L*iBwql?5a>GVw)IS{$(rkKK7C zji@!(0z)xR!Dd}asvvQX?U!qkxVeM7_Fnpyoe&HQ-l=Xh znx8gkdns%-11;WZZJ%;i*hO{u+P6i;ii-0^3=7(WEFmF=6k`8QGP4!$_F}-#{zp!# zW~e?$W0!I$JYHFRTcmrw<9$?Xd$ONHlMO@ZB*qt4^}~Ya0Avlp*;5tQigj1D`+xqZG~)fKA1d2|2c-Vh#SY_>UhgD^Dku? zb&{NE>)?=&>}HxKkm>X5S;acN#V`X5Ew^|MWfIA!e5`4&Qd{bfg@@GH)CudRdN}T07UOM<+{t`K$s>jch+M zjV8RqO;-(I1E?4c4HE6q|LF*@8GaTAHCU+cGN^8LcwJ-)=$uc3YM%td>WIY=6&DgWM{V_>U=CXN~x- zv%{b6qY_^!hterbMq(P?$jILgi_|L_kR&s${=Fy;?N9*KHo4fvLy!GO!D0Pw_l=Dc z+xJqGuE(|!G#N)%Tsz|M00GBbr*fqt3kUCJ9bbF_&N_tksuR3ytoqR>bZGwrb^2q` z(VKWm+-Wg8TS(|xSbrvpps7979Xhd9i(hEwGX3NS5%lRKZdUIMay1kpMgc==JrP|K zfCuSK;c;0?Cy#Q`cF?ISt9BVS?mJliaAGNqnN_~_F5T7KG+nMMVz5^RF9DDvV>?ZK zN59rMo)g^n9&Jd&4g3!Q44RHC$L|a}cUkn|?Gb`g3&9B!uxJ`Q=5kols%V#3>{ci> zk4^6Mok8)R%=uk=ozSf61U|?f@=!AH&uO}__NpKDLOuyaf{etI0218@71?%d&7NX) z9kma&c3HQR;6z|3TSZ}Z&HtK|!xJ7759C@Z7Kt8{`CM5MBL_97Z8hK4Fv*PJw09u7{EX0B49xN~Lsd@Hj5A}0^u`G1wM?(@E)31jgBnv_BUy72@A zMpL(A66i@8Ukl~uilLVvj00$6)ti0yY7?~wV z9l%!|72rmL3323mP!q;1)0!K|uJoCUD~+dw7EI2wlWF44War92mCq0bvoFE|9Ozy^ zSA1GBgpSJ5BL4HE&(?zS^f_sXQ8c_VSTMBKTxmjBF4|glx|fgZCo!w^*?i@W~;tX zXb|LK*y)=~3F9x4z|N^9P$KR6^0_5DW%_5hLz=R{K*2MH%w4y-7b49wmC^VQH1Dz- zobxd1!&`SxKMfhLyv6vI)|erDBy7ptsqq_VihHPB9gPig1AvlLIrRi`))+Z{#+%37 zf11fOBQaA0OC;fbCY2~!k?M`+T+B1~B%~mxWdTQt37EzIE zK9nVrYIRy?F_=e|yI$2uQ21vvMf!_m;{yqx_z2*Qw`lxXh{a}a`8$zTw9{D;Y6MR* z@c(kP(*ivNn@C*wK0Aa7!_d5LLEY`uj+xM&{tW>C*4ZkB9^rg6$f+PrGZN3S%eAkp zD{;P!il$A%lY^|9v=|@txP|N8a2l=oSx-;MsepVa4E*P?f->#cULy3Q_S$>92m2Si z6@Xka{I%SfE@KW0j|;F@hoCnuo{tQ`fK$kw4g3(rGj@A-qK{3`iiJ76feK_G6NNuz zt(!gh3MTuP^u_9jN=o9g?Us**Rp}r{f*?^aOQ3X9DRed78Fq?Q1U9j)JyHLMWxlHv z9vnFuM!}yr8OAbx^T=QYHnM9Xf$sj_>98B5)vl3&U}nHaNCN5q zNbuA+BQVjCbCNfiTGPpSsIJPlH*Zl^wCMT?fMCX!G z8SalIJstwbvCYkKAzfF3@wLTMp})}rKkX6IZQIMcOtET9PpAoHZBmUG5Mtn%dssu0 zD@gjNAa`)&{u46r%hHnRc=CA!cuBES{9xG_cWp1Fy;h49BX7U3-@qyvb6L%CS8{#1 zHgLR1A+(Ly@Jw7tR>vw06`+eN@|Pg*4O3jc$l$!)Bxg{5o4MS4c4nr(ctEBWN!N|) zS&>V}aIcjMH>PFfA0iZPKbuZP_rG_l0cLf%cHt7am!kVx!SFp=* zqUocFW`Z-Rhr~)^#WWTLVsFrBKUNQVn0>k#gB(pl$7$8jHtHFZ)qiBCU*seET42Gk zr29%U@XfrHWZHN$!gacmMr@|5i5=@jY-v^gaAPLy zwz23tZA%T&--2Y}83z`UuikhV*W`Fft0qpWij_JGs)(h&-gVB@dov=tO@SW@hVzdpxV>5t0a~@}j-V_~0&I9XTxE_*aX#g~ zBBd~;-j}vC1hrhhV+*!ee-;!7l>#<)Nm(I#jT06u`~gEE(3+_y3(r-4s2Rdq!KzIvN&?#K|zOCV>x7OCmKr zx>%`$es$(MC|J7~eAV?Af?u(8p0=%JNGoY2WSkB6j-#iTCVJQ@ePY8VTcTqKtTLpO zRP_rHkr{$=lCcNu6n6jZXFJO|+WMhvQO}|EoR0QPQ5eKTJ z)ut!&cCnMyouS0o;Mo==k>#@}kJ+fa+8rQLwoMh-RgJ9^z1eOmEdfiSL5*w9AeVl* zAr0ijsZyno^&vCa+$}DqMKe7PGeoNJ0lbQ*Hsk4T0+JPtl%j1Zr za3MM~w)|wKyhc@yjFE`1>y>2q{rCCKSJF=B{X=o3qWS&B0}%a=JLEgP4=K$RAscNl zznK4Yz_AonJ812F_{Q>K!MMS1jJP~ucaj>^4=*<{U{;a4F~zRWKEuylpTD0d_Rtpw-bUv|Q(1$*l#^?2t%b>%LEYC!r* zKEnH5NE>xl{7s3*gB!`&3V$(H@+O&?Yn}X)E($9D+8&oM+4i8aan4wCg+oKzfHK6l zjl~`=ehsnLby2g0BAO}W##W{gY9g`BXtDB>cN3bUYlYA(92%0!c&R__4P}2kTI{Cm z04xChH!|P{Rz@t$dQ13`B~7nRBk1)|B$2-5rXGKS6*aA^RiLVtCu?)OZPI6wBqF+U z;FLKjH(`V!rE+6CX>|29BTOOCKzhm`i$m|K)3f5b^iMtw$GihWZRwXojUw_@vrI>3 zbVzb>*>vx7{oMSedf!ghG6qmnVw>{B&_}KyBI>6xOZAuW$#B=lqcXRh44jJAE#iR* zw5fcfa+*tV-4UzkLMD@`IOL`*#lf>2q&SW|C0>| zg1^|`2w!n#v%PhyD+_mdhjb|HpqQ3j=&a^wm`f779=CU*}7&8M#6YuWVM&d}?zT4t%dk0;ua zCP>WodHhOnu&^=?2Fy~P1+HQLMw{r0zLLQGBs)J5*872U2CT3mc=5CEX0;~MyHi{Z|V*HJ{W&%%*MF$M_y70HG5 z9Xj{5?I}jJaDyMz8MJL#XBhrvr5J_=_q`PSCnb-V*RjpK$X^xKPg~3N7|CvV{-fDKHbf#NKo2;jqEB&1g4uB-XC1JxN)OAtgz_Uxz{e*S-_24f7MlZydYWHC>GI(&{>6 zZ2$0Zn0F7$iEpU6>B>0PAE@1zng*oo`XK_U$JTwm>sY&zT_pc;8{;XkMUlnlWc+=9 zgNHhp;tW+M{9{+?y;pZ0)OLXy%Q*_90}28Ge_#nk$X;G9%_;GI(Q(^yhGNLe%5*Q+ ztvziU^eEHA4j3eKi|!;$TON(<5GaV{0UeiE(4{WA%aal0KY|9GZ{NaVw=+W z#2IRP2m&1|X8cN(X9rF-mY`~})cyfb*Hig~e}9858i`=OZ5x0d{bu?5^gtve%76li7 zTrGWi=tta*;^JH$=P%!kjv7Y76$(mbNB7509k$RAJrf3ZFQ7`fc}4^4d{SXtGva9B z5z)@K^~=eaUo1JGLz5^3m7Lod$rerjfI=Ssqo6{#AuCm4^v)qSJ1XM~jtdCor)ITh zOkE@08MYBLC&MxfG-vP1oQ)l*R5+!|;mwX*QB%|hzgy&ifgKbhJrAq6h(yr&_&M8V zBn{-&R0KXPkNqQqM{!6mU1`CWpp@LD&9Q4kMtFc_ft`K4qF;*X%t~sKk|7;f$4qq* zxJ(ysH$p5o<_&x#m}{B9YQC>X@9yQvG5cq|1!>S;8Ahc z;9H0#c$|*aI2`g4eVrsbR5Nmo88~;yaV&!jOV!zRB{CsyKghX;&Squ-4X|#sK4?s( zwQ-}l9Q5gqe~|Fk4l&}N-Kn9;P(#I`>oSYdCJX4jw>g0hbCxO1m8uw2n!-p@@_y6?3DtkV$goljXS~VXx`B zhATj1gZC>0b?*y6+Csv53waE$mNOZoz0jQ3`)O4T=P+lfS%3eUj0Gl`zBBDkPhvm2 z1seuBy4bUS9oT;+ue6|^ngWw@e48m!O+iiA6&fWrh*d1FxsUxAg{pK}pCeL;xy00O zQ-9}#uwAS^~QH^4IM`k3z4j_<=%HhMYPlg{b^DCK*0EmSm#2ZKt&nfnkWj%ot9l^YE zxMh_NCNSWxAX&;e{XGV{tXsQ+M+A7b|F$xrVzg+R610*;w$!w63~TQcuqGFc35IvZ zGNlgO(HS|BI8~mrxppSWoLxS3kNMik0oN`y;{hu zp0~x7^7p{U$XfBBE*uIWWHv*P%+@U}w2!zzj(YA=&bre^D=Sij!*J7=c1O~=9DP3O zw+s^~38eHwu^#c1`(FLUZK|G2w`g|5@BnybtE-3Ye3OakN3HQ=xqx**w6)4-Q21LcCZ)q^v z(LP2lU>&zwCXn{H3e_>dgo_+OP6tnpq;IA#DJWZ3*jL@(4I$C{bex4wz7z!u49U+t*K6^lWH)T_zQ+7&%zEN`kHDI>7gHuQv$PUbq|Fhx(jneXRWDZJW~Q6BeWw7P)!do(j(kbtPF zzravjZZJPRmhdnIq3JfVg<#=!^hc_Z$u(3W)=M1X{_VKD*UVP6mS(N`r5{-X+F4D3 z9509|cD<1Z5ct-F6yK<&U5XN9NEUvy&+JDgFRcF~@?`qq*xQ-wrL=5zW0yXHy%d46 zg=DT|-_Nnvik6ZbWM+065@HKy_UC~ic!JO=n!^8?fJAJ*@x6r?$8(m=wVpj{DHws7 z0?7NP*s^YOi8OAPI19ZEFUvT58@UO=usX>VLYBGP*`HXM2anG7K*wCZO^(Pix9i*6 z*f^7`o-aZY5&)r&m*^hS*#juR#%W78Vv?4ScX<%7c2sIc=kFZM$_mN0Jhu^az}XdPZfe8@*LJ3c%M4wIU&v1TXbf;{_cF@z@*kXQztaR7ojMQ=~3mHl> zpABiUeO=DhR#VcJ7%g}n16|Uk*N;36$1{3_2W?x-w7c+z5*4=8^c?tc;$e(giUD@l zW4D?cg<~%^0bwlSwF*q={&(=pMWWUT^g?Zj{`DIr@#pqQMkT^c^0($=4SSRvys>B} z=c4cVfJyQt8-7`xeR55G5OYNp8JKRVElT^o5W9`RRnVo7cBuvYa(iEZ4Jq6WgWTbP z=k^qag(gmI^fB@W(VH;1KJEZKt{mO=Rj(o9-{LE0-B<|0OC?0a#0N#}{b5#}0~$i_ z*Zk&(Ev$1E>Q7uqf8^7i{x=hF4V(|X0-&ad_Ys5roc9l#$iZ7WCR)377h9Bl-FIv5 zu_YE$>fgl@F<&8+Q@I-5C>gNBG%tmxsv5gZ$7o@=FGeNIo)-j))BbGeICeuClUKeKR!<|YqOLm=ZwluY>i z?Fn!FXzWF=79ME6{7k(lMhhtL}onNHwUo8CaRmb-5Te{ry(DWl<^AAO>V6 zKA<*OZ5y8lef}E34W%GFR_rix^r<^W$~i5SFNY#E-6r6uLQ&@0jaq;zOKQ!SscaWD zyCr|+F*rIg$n7joG{3b7Ipp2(sGL-|P-{mJE=J0_Rtnj@JS!xXJE7HL5PI-n0d+}! z6v(lsRV5ajI}84OSCGd&awj}l;AX-9FUXEU*GbYhD^Y@lPa)MAs3wnNb?B~rbz={u zoB{w_)`NSUYMCB?vfL&NN@)7o zr!zyN0Xo{xlfOATZyHnWh{r~8GjeZZM9n4*3d{C?;;0`>mW5~|ZCK`gHE|PJJT3w~+ zcmXleH!19Svk5}h0VHIim8nFo zKV^~T8>l@8b3p4L5;2i_fdX7)cDp$@ zZV01+{`~0$Na|#=%I1@(962(CX5W~8blqb}!=Ohe@rpSnIp{mg?WGd=vCu}(u%xS_ z7qL~3Y$vSD$>0Cea`BhXNO`2)C?bEXVg!>^0nsU9A%9~Y4h|tU{>lJHtk_OKuZ^WR z!0v>L)qfhg$Jvo8;o{dPVU>wCtCdkt_GTbqTe~%yj<8Ps&k}(mU#^~vGmGGy_w{$| z_QFXIU+}4WeGO3S(7t---Ed;?=JR{`IV)`xVntkGXVLB`w(wy-8ed%&L&#j0uf)uC}8|rhgw)lde+c3Q!KJ2 z(NN&f!xm1x&%Czxr;KDr;O=-*H>&2pAVHnF50eNR$ zUQGFMXQp5theeo>S!e?YNP4tEvGki~p1<|R;8550`oj)?uSKZZ*$33n>zQd7&x?`| zc~1`~Et`6KGa745NtmPcNhf<8Xz7H&Mduk`R_^f;hL6C5mQd!RQ+n_1?l=SB=EhfQE3o~Z zuD8td)@8D!gR3n>CJ^6idNpwV7e+X`2_0IF?iDU9`6{xYI?A*+VQiTJk#7*A`TA~< zb|A1fda+`~@D^(?Z#x;!5X*#6{cbS1!ZY{VKKA)K_7|)WS&t?=KwG(|b4Zb^r*;@| zG3`}G3hN$X{0sF=g!s(Caxq{q>@SEGr-0cI>If)aSVmnBntP3?FhM4(-mVU=6Cl=l z6(YU>0#Y_qEe~?{&9#kN+aXa0d*&E7UDVtV($Az`g}Od=r~38woKIuS%7&mdUl*Su zpziAD!dYc}Rc<@oNiPJ@dbpE}-b;!mNr+Qt!xb8|Fo>M~fs+8q$-WcLs)b`pu|twE z1Or1s?>h##Yx8W`EB7uZqc!+^HBL=T!j2k%%)(6R8|9x*XuYiZB-;sa#~A~dhLo2h zgPfJX@8)4QFR3^a!6{B);3|0l$tWtD)wB#Y0p_USoARP|CttH=5Hl`uvsgrrbP5!B z-gsSV!5AC>JxzCjG0rl=V7uA{bUc^T-;9>L%XIFSQNV?pUv)v^&yk@{aVq$Bonozd zL%{{`hneO}>sm#B`~Nsx-HYzYiygaJ7s`Db>D$Y8(3#ISfH-78>IGWJUwM6eIHigDr%=oq#lx$q~Z>w0ko7kfW{a7y}#rA=YKPV`IiW( z#jHiQeRgqYhg5nMumI7XnW#7Jz=!1iN!c#dM%YCYZg}dhGdw5H#m%VuxP^77$VU2p zf5_fzD2c}0x9pwi(ll%y20vCx#9(pkEJ>GvH}vhuu{2`!7_Qkx-I-lNn;YwP?6e87 z32wm%dLI*?Egjs6f;Yxn^ux$W)x^vV6yZEE&ufd2V8@w7TZpASUSq?@@^({UwmWF# zJHms9jU>)X|2|RIUqlB(_wYWC#fWf(PBJ1*b_j!FzQKg@E|25$GUHH1J;92a3g~L*Hp6OOV#>#550fQt&tfQP$re9gO(j#BK>-yeNJPd&v#_ zhGxwd!zMeaD^aXyj`x#8}`_ztbx8Zv3brn?5*Vl|{QN+!%EM%p>1&01Rb0e5d>pv;b3hK_ z2{t`0f4*=Ua19feaQ-ESQ1-T^CM**>+=9|^_XhKy(_Z^FT=!=!yK^Pjpf#1rV_dfW`1WhH|lllm~Qe2&D_Q%iY4T@+kPFEMd(`=(UIGK!!9J0wFBZYi{ z$roaJVqLrpI9!y->|(dXEvZe}WMROgyl-kID)iE<`64Fc5+lh z(}TmbzmtJ8MEE9A16+vSbPMVkKEggJ(>^8N<5VQEW)NC{h>Px00VxT$z-rchkLaBZ=Iw2-2!>xQfT8dS z)~>;D0dR|-pekBHuRluDRStjwA77K%fdjVr-49jXr}WPD#v)#|x^@E@6LNBj49-I3 zr;trZ)$c5L)0KgAWO?aE0b-@53bKqFo^Fv zn^iBfHk)sg(b%x~3q8?cy9_5aNh`vJ%j8&e zLfqGBP8{ZO%Koo~113|7laL_6E zaq99(5RTqb(x1~u%duHj>wD$;yPElUW*7!@q+MLiVyu+dxT%9|qUYS;hIrNuMOP5_i zR0B%w1ytY2LK=B|r%CtK$Vjf5yq$%+ceY^!4~pt~4@a)=3lgjY|JKmSs@o10=bkyzmOm_BQ{J-Zksf-GOyn{zjy)7?}uAqajzjK zlO1hb^SLA~JKrX7A%WybJB%9xVYSaXEP#k9Hf72<>$zXH)~9EYr$-Lj-o*tCvN_^) zzM%>NBzpGHZO4$zyPbLeHeRvFWk}17rq&lUGs>5OtN-~iIkpn{=>Z7P6tb|)qc{cATrRl!Lrm%gaOCB?$JW|sncQ920sP65u;P-JYH z1!8!;?29_OCz7nV+tZJrX>%Is?hufOprGn^_*uQ5RExzvIs#sOweSdFLA9m3q6O>= zm&U0UZ!A;JpYBQ>(?#w{q^1W4acd9f#ewymzkxuF9m^FYlW*c~Qlpa<^@df11!y(REhU zu-P;c8S~s%Qt4Bwkx7{z;)Q2xL3yu8mPX%r^xJIS+u55w_mY^9sxpfOF)_5b6pIsL zlfdZ`=(V2~?DSwNaX?tY>%aq#MtO8FsG~Ed1CF7J@P^X#66=O)s@evFB(6cd=_65N zt~AN=B=vwAvSsMMD^Ix9PV^BlLQ?1rs24cmhpmmvUyV6{7lb%HJ>c0CGY5pb@%Qr= z4fEa&x#_1d!h^24+b;-#9KG!GQ)#_LNo9%{F|W&*p>eDI|P(9*0k48DY6Yy)JE zRakRC$_G+LJ^)AHgprSm?boJs88MeLE^}%bnqey$t}vzKBic32dcXK`eL8pHWp(bh zay0g0C~o*Nc$kB!qVLDCi;p-4lR*Ri3pWHoeDa-X8$sL5xKo1n{74yQ@YQe zt<{hxh3=PHR(%zirE>)!ukykjMWQbTvI))A^kUtxwbGep$Qx#!01zbY!8Y%Izvsz= zEptO&h1Zf6t2$fRmvS4lJ_<+0DP)wpg4;pROQXFx)e?BD2F4?R2M|I#4TkIFb?CJbR^pKlt@U8CWpA+Wuv*O8{YzdyNLb;ko($m$2!o+6y|B6 z1a<19eKxVMMCu8|ukr1P3Q1kp2G5(@Kqjo@UGhw+LlWnSvRS<8B5+)r#;S{`)^S*( zR8&G1_&*EJc7o>>aWdwt?{@@La$Gms0+>CX;75P9J2rnX4oq)}T7y!mdc9$^MksJ6 znGwydkUx-{{RyC)r?(U#EeuDBg7Jom6q6WwIHirz&2L(CiNd@I(NC@VG|$@v`!pfTmiF3Guu zY@tcE?RZ1|H1E_r=B0}=NL?ZKRYRy=m@QBHu@-!5D;LK|Myih&-(Rb}`bz^Nx~~8g zLAMAkM>@bk?Sitx?!%>&dkN2Hm)MrRdyt~hK3Da$uZ@v6Rn(lExANrrpW4QfPkt|h z(~E>#tG)bwGTyWmgq+*K()hISOQ>wQrTLwmg=Lo3-bUEfRrk!q%okK90Bc@WaLL<) zP{D!RdNT6BU`D~V*mMe*W}Y>mSSHZy{5jUoyRO<=91XnG8w-!@!;2Mz?FvxlKJPj? z!7}OFq(``M$Tt?LJ+w37&jjwx?R1clTZ3^<#hk&}8#fEwY#TKBDq$Vnd;&ps?d0h^ z&6PSE_V0Pb#)oDj{jpdIV>VklE-@zadDJ?RHP}e?z7fs4Og&4t)^G${^rWYlLRiYx z1o(pAYya^b)l!W43LX1_%eS6Qms)IR(MIyuVNOR1I|mKgipj7h>qX7p5fUDb95#5Q?xH|Pd z?;m@-G)iMn=1mMHQ`}~ADi00$x(8<04%EL^?^8zN&>_?TS&bjTIQR0&9zXJnDHgy< zcEfI>_jv@xm^S3m^4FsgU~mfVVskbs9BwU4<~OzZ)s23D>@n!m#zHUGNoV?$H&l?E05c3Nrq}7KL|BUIv5y>v06`;nk#<7gv$Syk z7s_k|jtsF61Z872Awcz;vR8RwTh{jxC>S>Ww7W>woA%4VTJaeg)A9Gm1>LC3&>g=L$oLeOns30UbZN7GyKF{(+15I z-Eu^+pu*+P_@{Kb9UBXTL181VK(wIms}@Ik=|C9C#!zio(|Y%T@M|=f<{+px5!B=F99B=~GV8ckvmu-_i(|@=(Ott> z#rfP>&U#q}=HO!KaCxPL`C8NTp)O1%2mT`kf)6%xV&ql@Zuzv!9T?%UX747_+Oq$r z=IrPIG)(f7z9SW1nEQ6#{{+Xfo%~asgT%-QYL($3K-7f~5dKdUVG$X9PP>P|3OpO2 zF}+}FJXy-?tQthbeAz^J_S&vp>~Ehy(7eaBzX%Ya{zDZ+vPEv_Z7N&ZKjr1=`_=f$vQVX-5YCIZ^uLq-GKmwC2rnmxOPIA#yh)m6=- zo#sNnHayUyD6k< zjM&Y~FzxbkRTPu?Rl+miz}kvWnrQK#vlUdgTDD1!ZEELdJp+0&Z%#J(biF*)(mPF4 zhi9%`n}`Mk@p#&W`-x(5Ay%L6-Uqiu{GLRba#xE|S!I2^yS7I^s}#7VXPD2!s=v*a*=zPO3GS{B6f>r=u`fU+g7ydz;zHUT(UMMI=h4wxeAABE&moSUfK+J~3jhkGb zYcmc4Snm5y})2=3O@myVmkTIyEK`a;Jqo{yg4tS^e+ie6uljuU20n~el zmb}G}sg)=Wq`+TTn?jg)77Nk^DwYLRqJ>dm55tDrZJR~Lm<*dJ>*@>#mtbbspbv(r z?>;oZa$YFiwJ$q3n;q&U{Ne+UW*7yQ?9fimz|qxiV921EEFU_uVQ{7VvjiiHd$--g z(z9&DT+P+v9~2$iYfaYH*o%a&NGGXcw4d18x~yi#?8A&`c@1WtcA~uAU67Wt&0|Mm ze9YJ+F#B1)U1=>wKqpku&PtBQ`YeN}J`!Xd4*A1369n$YIR7Gz|KMQP&*h}ANo+xv zN6%GT7v}qI)a_NV2u5Kg<5{|V-h?s^yhHZPM(~9+V}Cwc+)RW~ZF1D8sQh~4p3Jxc zOI@5rLtf*BCVcxCy(H`w-4oWPng-!!SjbhDFr^wzLQPU?loa%frE{Vv<=#x;l%3i1 zcZ8>&c0LWI@bE2}c?+UkM(>0B#BYWgy_&lozl~)>7B2K0_~og|bTbEXU)A&Ibv4GL zYn2Z0W5C!tWK>V*E2^@kgcutL;V6jm;Q?A;G48l}Ke3DNqzEf(6B4sFHHJ;<0Ebj} z5K}vi1f|#@fnmBRbQyy-3u7QK9_seI;I_A3AFW0c`4{q82Hd4o#xox)VXZ@3_{^Y1 zHU6D08|3MBCbF6iHVaqzSKAXLO@CL8s)1U;1sXL));p9Aw?jZ!l^y4j?pB7gfJqko zU@CmEE&R%&heR6 zccwBtN|^z)e78Lu*eSBGF;?<|@dUrbDIM|HVsnzOWxpD2a@b8_Dvtm^XT;auaFZz| zZg+jXngA8$W=WqlH8lJJ>J1Lj>D$ak3#e!fvi=sYV+QJfZX69lapdJiEgu!{nN}!+ zBmg33WfW|`UCA*rfufY249-hj2Ehq4xih20@Q8u zdgd5Z^xTJFScar};ugeYiJ6C2V35D!s=MKt0p97~2W6UT}8VwN3B?dAxb z=KU1lfat41d>IIgImwK!-D7UCyYie)M&CT{J2j@zYVucWM}$BvPWH}YY@>4(s`oLr zFyt9gLagA%qoP-(;uuFszhW7K_C*7RqG(%v4-1!whjs6Su>;aGX&g6+qOQ-;8Qd`@u3@l^= zt!vmW#?MbA8QT?<!iVwz*22-O9VN{(4D zn?iZuXg-!JDX=hEV!WApx)I(nGRd|cUlj;=>_7?pvE`59iT$Sn)U$D+)0ajVOX?=YR1&s7q#flHk zX3cC7<}k`uRXIG0qywQ=r4^iwW8e4l%Xy-Nmkgab(Pu)x=n&h0!H~FZeam<6u%lMF z*{`z&WM}+L){1mf_=khVQI2gsbhaezlcOKtHtJq-Bd=Mk{)==C=1w{PX`Dzm!%|8| zG;g0j)#HNYLH)u?{Eo^cB0l?7mZ!%ea^Mlkw6@wy3&Z&O47P|Lp((PF}CrzdbPo-BVBbVTjeyeD2lWB&zLcc6U^$(Eg9t>Z` zK4^{7U@P0hQEFWtx=twpKN^CL=IV}HUV)6Q=1}N_9(xU`AOH?i;i@UgH5(O z_(%JS*4-K51lg)t=RM2t{*H=GEq67)i6F?o`_dyd$Y%B^ZAj&M1ViV`jf+R4+bKh{ zH1fIK(GuO&p27z{NxR19GCx^#rA-QTQ(Ol2eBFMQHbewonXJY($FAmST{oS(1$rQ0vr78#gGv-E++f*L0tR+YQ!| zsyX>)oXVrRZ?JXbDnO@L%(SMBU6lW=PT2h<^+Ln|!;lmjsaF4{Y}&(_dv5CVFbeY? z5vT^IHy-o|S1;QV|3x0DtUJKI5F$xt=$6)8y!cFvlyoGI8-d7?wOiQhPvkA4+uUmK z1Yeuh^3S*on#QznIYeINDLqG{T}l3eZql2hxD>4O4&k8rput}Gys6VB>>A#Bcdqs! zIRRr|y-QCpmW)Bs>_i~v)z%HM?7-~lR>VM&%aa^E5Zp$5vFLJSY?l|08xRggm@QIm zn|lhnHyS43DeYoJPl=T?YVme0N1`s$zYs6Q#6jkGp(7<{x8WLjj6D^6p@#F*f>#Nd zFAqL`5=Jh>Bh3wGSg|gj?zNg#V0frE$gNKW<0)Y4ovB!vtMkc6Hik1m}%wZ;raHqJVE~0GA2oGAZM=)`dR8n|Uky3=GRJ3GV z{k(s`OT04t^6M*9ajH9@Ns!kd$2qgj|9&`BDDb7o2FYqm>tqvdsb)QN$xG%EOF44~ zQYrvcAarGuSLqId-!kp_{Z{z(FM5q0Ts&f4E!ri*l+sIIph_(!6)2B@H>jD$ zb4+8hO)eGAsxwBEyqg{?R$S|ihdJ*uY=#G3Rn6viL!$&((C;`XGVx|I!J3q_J&m}< zAa5yBol1YOap?MDbh8E$+H_X*lGcbN`4Ewh}y11vl7zL zX+?AD6k>$rqhS{R*CERO42t)7{)AyleN>%c!n_@`4{7?+DL>F zbL(G^qa8Tkn~4C!-v2tSrophqZd)j>b6ZhXCFx$G^Wp23)aXCBGJdC3gUtvD%|Gb^ z1m5YEO(JxIBSC5!(wdfhics(j-VA6Zg7$vXh8|vaVkJWEJZXJ+Y7>o9N?l5Y&3hlCZvrE)eOdScTLnXqJ^^GM)1=%|_%Y7mC0ZPR$; zk6oF)eevE1udrejJm4lVG}Jl)sVu(T*)mYj9wsE`8!IGUsUgIZ#c+Y|#PInyoKBMY-m>gjgn(0IfFp$XDX zrx+u}87;&;)wCZVEds<-UnKIWtp85?uT?4qc6Atk3ww&60!b7N&rsqxjk3Jf6QXxY)M^oMK;prb%0yOl20 zXOgzhG`wpm5BS;mZP9UuEoK)e`^Sj6CHWW!(&aQ7NJu0RJ*aX1+lb_XsbL7OPsgEr z{`fDAHpQUI9}DL=ze&_#cDD<)V8_YTIs}kPi7)vswa%_fTT*coa{C=A$^7Q`)yJ! z_LU0k2dL+7I8Gzs$DI9_U{or?Ckhk9gf4m0Z22Kj6j#60@J>oQXk9!UoOTd7mkj?^ zp>ewvR5HsyNOOABmllRma|vO&?%|%!iO_Q>5zFWRkO?b9 z?ZmR+_}S@ippl=Nkka=&B`pd?#3v8F+N)wlgy5v?E&!e%eF&L!axU#NI);TJX|AYG z0+s}gJ^?{H5pjjpMoKOsl!Ht+w}Y+c5B03 z+am3)Q+k2b>`AYkr4$vU8X7VEYxf>miZ22=&FUTTp6d~F9i8L~N>goLyH54#ZJg1+&DVOF2+ct(O zB1VnfyVI<~zq$SERSK3VtQ$AiRm`LhxSVhV^&f^%us+gr+L_WRv<^Wc_&8+*rj7!? z1lJ(Q_!d6+$Pc@YGvH=RfMn#{#E`-G4x6aT zORWwqM+`wNGG3PL_t+(#7+LNZG;emX;T7Fk@X)+OXkaiYR-)nkCY^uLS^r6!9s8-PrJrLTux_7691CLrAWqU z>VkE^;v!migJO^c#r9u1Q9v7@j2W5-8{8GI*jaga(TNfrZ~xE#JsFICh9yym;~&f1 z&B85S3%k_0$cV*oq*GpB`60*8(*3ZtoIY1A`JxpA;iM1Xg)rrScdXkQKWPG2kR8_w z(Hwuu=}j0lB6to8K@)g4P!^LnKBt7DZjLpE#sQlsW(7BFf~4l1cfhlE5xl{@ELI9A zR%xIN^|(m0rdMb7$)XSV#7U}>kW6UG@O2X2B`mnAZ}$nb%dXYnilP_#X!4SdgFo>E zNqsBa?U#rR8LPeQ7HPE>4`_UxPF>E@F=?67Xpg&{^VI2A2%hGWHulBT7rR1PDNmnz z025yoFOq&bB)w$=jY#4XXDmx_{+uMQ7far;CImIXAHmkyKE^_?VtQoEF31Nc zu)}vFIxyBLv-pqxZDB~JvtulKS_|}?-J!3V2X)aiNu#t1m!Ur^f4yo?N|)KA4>azd z>>QicfbP~Wg{Ip6+|Gfsu~^xdPVo2{jq+GiD*fm61FtmKM8r^fb8Iw_ytB5tNO?m| zUctL9CbWznzBe7s7UFcPD_*A@83v+Icn+LPn+`GKBHl3LdZwrXi_KNx0>zJ6PST__ zjsM{r30MbO2q^MQDpTbkMpl9C6JSq#6nq-bC-6S3W{Elr&nKS>ie2K`H^NfJSgp2^ zL$csjqjAjefJPNMZn{qsgOBHQF*M2&-fF)|u7ZZ6V2$cuekGC4 z?Q8EhL6B4WEBDZMT-cT{L9l&t1w;?zBqX&sRjjZA9{<3@;>~06=i`&;_M)Tu)$hfg zm@i5f%9QZ8(<4}MB8EDDY&0h@n}`e0Do9=^Z@dWGk7(oZiy1b}O+*WLiwsgBs#xrn74ju=UE_ z`J?euJGDXV-!u-SiRT$j%AsTtSR=(~LD_;F5ta;6jLrF^1$M0#-SA~ixvkg|;G0e8 zck90Mg(8aP1Pms5w<--s_U#l-8D4I8+hAz=xc-1{Ui-E70^)mL1b`Fkc+sGt4jE!9 z?2dutNL(lL%U`rpV42`tZPPU83QbOLl>+J3xK?9$b}Ae^DeOK<08x4jv29;EZ}QOO zHB$HPBc6}z9v1HNdq`PeZTa;3pN7Mf8|gf`N#6HGWEBZ5!|e?>;^Of_67lj4o#WH@ z>vNtGs>`c2ZapD6@v?F?yNVq-wf;1Im`bxxVQNRRQ!Be>m&@>Wn@{5_;QOo=Y@b43 ziKoKF2%Yz^QFC?r_NJxemLfbR$6`Ai80<)#ts^y0Qo}DpI zH@JLm^r@kk1WiE9`q%jaxp4?}I)@zdA#QFeLPdQ|o*uTOJj|97=_;0`uWg!nu)y9A zyE0!nf@b1b+Va8u~9~apJuxITgKn8A8)| zf8{!As2YjdM12T+f=vKmTuHD{*2u->y?&m5ir0GeZHv4>dLpB|L->h}W#b*kZH4hU zOy+>jg`27(qR(X9PoBaCMuRT^GA5ic$ds+)rsSABNhg0UeTr59#`U4G#9fcPvYBS$ zytpbrBt}TKrq%@;%raQ4_t8lPv$-Vx`ESA54SuuFpj)KhZ}36hST6p7iEZdKc6v~5 zXwEx6gqxU(HoUp-zP;Mda*Z?w*<;M5P>6_cEEmDLJhK%~obw#sUj~NH%K}u7AbzC# zO8gQVaRrjiDZ+w}WIW9zS$h0d3D>X?`>{fgxFtiXp;V~WlS4QP)+s0I@!E_~*&}|w zI1m!__92>ERwT>^W2))HYo?$oUQve9b3UIi9g#+rW077pD3;tQX>~8^Gwm%-uT*qG zUnB|&Q4(nP1&!@gwt&mp(Q|Hwg;xt7;X02|#P?`4lIbFq z5CsyQ({uXA)IBv$>wt8bkKP^P2ktUxSd=zWp5FnLJf}qw0q})fqi#`ptkC_M_y&Px z9sbi)BMvj{Zjky!(&1ZCsg6E-t19-V*AXDba|Z-k8P?Lt2uvtFfQPXAieznDkG_?#jGe(Yx%mg;~WXQNdgeb5QI^)aOQq8~U?r(qXjt5>&l z0yls(Mw+91F6#gp>dIS)?Q9@k{a!QW`tU_H zCqTv^5Giot%34%q<6p}Kc@i*Mf~i>#M)-(Hz}!+_N=dH>s4-#=ot3}3KmyzEi!lt` z5Fomnz6pLFP|dybG0=)E^&X8uV(aQ}F_AkqMQ#g>pB)?Fb{i zoemlZxDl>-9MWcxKH6z6`@ZY)e)}%~Jo}|Ka?QelhKB9WxE2Qt4&bhs5u}v{#nEu$ zs1AxLh24{77HURZXnE6&chfy^B=$ey)FhL!f6Qj@%ZUB_65+0od&qz)g(0zuy>OOZ=GH5n|>9I6Z07~467P~ei zsh?X#JVw3cqKXG(>&H^XtxKQ?>=z~Uf|$w%$U}enrT*W=g6R^}gG9cJcmBgvI8;Lc zKdntjU15<J+7B$-tfwqSE)&swlK%WC%t8v(ZDTFzbD7*xtQnnzKj64-zM*SnGw% zyTUm!6!^m}+}_F>ktubIY=4gRWq6QAs&gYT_ROx(ubD3q51NYAy)IzkVYZccHI*X` z#_ZTciIsJGH&xxuM$%LO_et#|JOf4tAm%xA62^$stg9F%5p1oYBK*FJR7TwPZ>SNl z^YbUCV(`zSN9;xGC@WWP%t#j5cUx>&|FU?~e*aBw z3O*k?U-+%Hp37lgCu#*V}MF|$sM;}mHKh?p7V9RIdI+E9a05+lE)ZsrpZOSP zyUv93*#0Kz^&K7lQ|L&0a?(l1)pL?Unm1f-maH6|YPw^=VpZa*4+My42b=_{XB^GR zMrw@v_@K3!l?QBFs;e#(1I8&u=QZ_lv9&TNEQNFvf+uidCaa~oy7Ml6|XN$+h_bgBX0E^8^X=iya@-Iw{+`7B0MJ_W_ zmd#+H3S#O5?KW#L>2jZ7de+Z7 z*rt=H*+^1xtuTyqySARrDJu2Fsvv`qLoTX#^+E!TlI-Y{$}5A&*7hIWv3URgD;uD% zsD6;vcTB<#3#=@=j87%0>R!+BMpd^x`*xciFH%9Kxu7x2{4B-Ug3hk1?w=Q>khzC* z80xb0mgCiDPqy2kB@v+J9t*B3Fz=*=hZ$0QJ8QHjqJ*MMBjy}aR&@XpChH#?@64XL zeD!wo7!ba@PJ zmsVk#Fe3IUYGwN}wH|k^-sM)x_t+57(A(|-g3SYjr3vHG)~FZSgVWOff5N{PyF zG=dx-1oluy9rQ`DgY!b2o_ZRd!)yycHJ7=n`Sc{cipLB6|EvC8L@`FvS){Mjy3OBe zpztR2Id+#N@82|5zkeQ+|8LGA8C%&~fwso9ISHVAO9iT$u41mC*hN8YF3DS+7>HuQ zj;IqSPrWCJNoFiJR0N?1agozYkO2j|zKn4CVWXW&)*fZh(4 zBZ$0%i_4aw2FKly=K*hjQAZwYY;}tLPK~odHE&+4%2Hxc+fK8rL#Hgp1vs><=yp52 zzMC+*GduqufbUH)29WX3ZeV;hhl4x~VVJTaX;62x!O(Cv(&UN1A!DW00(y4Zf$l2F zf@s~+C>Xhve?bl?D!TX+jKFhL_+FPkV&!!OO$vmnv>;d#Da_(xjgt!Q_seE`0%f}S zO#?J7@?-<2N9wTdsM4*YqjQtiht2#Y=xDY{$1$*eowzYm!-|kI4P#UuYW8qp>Eg;W zKRI$tv%!YIZj7`yD{~oQ@3l%tEv#WEt8ixgqP2BQeg%~R{NSZG+adD3FS*?Zozz&{ zqB4*3oMkMm_F2}Uo>mc^SZB5Q8?RA|{tYImcBt+f2OPp(*4SiQ#V~yeuj`v%KBPBl z|4wGtxQqxR5(vkztQ}v|ITi}zYSRPUtLZi{$J8j-Uy_%v=z3Mx2fNxtPoGz+F7~m* zs!CS)8R7Lhgf*An8v5_#6ci|vq%u@ux z;RYp*5h%(Ozzm>b;^1P0<=ULP<1ywlczg3Mi(SG|N49ocR&ezy<6`GcT2bjfnY(je z9s_|uX59uc3H&@^0?V)j6HLaHaGEA*UQS}HCxTczt%IF4ZkHuaq$l-i1q17YD~i4u zXxq@6jXfZVReORJ^x~Fao%vp?s(}6Z@-SQ9O3#7-41+^i{+4*2os^@K2xR5wj@EWFhPb<$Y@?wa*b%dqJf zt3X&3^hTIcG08KN&&^6KZUK2{o?V461IvW7=kR` zhB!);Zm@<5YatO1keqnZWT***@%4S< zsiPI$%ZIG`)7O-Rx$f#lypE9;_cRcwiA)z8a0?=ZNkJFuK;IX?){IWv7Y&cS&{xFq zu6m|o#H4KqEXDB*>f$Cv8MIsQ^*t29E#)b=$q|*Q=_LZ)al%#B^=~f2m}33{>*!=u zHhelRy2TjxS&uv{c^mylq8b_-Lg@()M4)eame{-wlP=|@J}!ZjW3#Jumh!&tV4t7d zjxC!-4OJ)Drsl#c2;~7a5sgLK-{X(Yc+e6-aQW)JeEphvNAWkhcLW3|s#5|fvpuc5 zh=R%sGjyn%D~)KeP!-;?26wD+2gIwS+C~s)3I2Ok7D=7Q2Ajdu*`6m} zjhO%81l0p8H0`UHY`)Nuh9}{4L0Kf3Y!V7=`q-_*H?tp3tSiin&PP3`mIsc}FVtdq zLY>_v-Kmv^kn6qZtD~Jou!Qn!hUr994On!VwKK^Tkj;e3qG%CfO4y^B19a=AYT%E5 zLUune)J&nznDV~S8oOPPdIa;GDHwnM_JjL=y$8-;GWcy38d5$jQ+ zTrYYmci;D30Nc8K3WN6+Ue7h+5g1~?>$WRoXdd|(Ipet_Rh&fq@eVp$9*QIUC=gmo z7~*l3`6G6Eo(wmPoZ7P#QCH46-Nl&!iaU8I<0j*8q)Ah{J6y1aNM?sH;=mUMn>&sWef=Js~p zvG3O+HQMU)&x@0&`LAemk54T50jF!ZO;0NqZrS$m!T<*RFi9*72T@yG0n#GcY__yW zKo#icDHrJ&iHrufieZxD`e1@_#&$Ej;E+eD@7sUrJ+04jV#+ElQl3RzX%nkX(jCZ#1@gBKsDz>>S?ZdnKOm z|HFAKmkB;+OZR=AzsuKf(H=w4`n{=@JwhlptkO(g7jl#>C^@w;@3mX9u_vpr zf$FCzC=)UH{_)5*A;JfkjiD4x>CLAuF;Qq!s7|2ssBjgcT!DD6?A+k`x35-;P~X*o zsi0JM`>O*K(hNNx>f2-bDn*3E8_1iw3S~_~RE;R1m_j~ni(k^IpYU_^r+YwGpXebe|R_VUs$mrPv=>P-y?KQaE~Ss8mYe&lgy zLsyzu37heqvY1n<Z&Ae%>&1wy0DL zdC}_B6JeNS!D^)4u+@H;?||uGz7Dk#VYPBZI8v) z=X&u5>Z2(co$a?y7W2^#UnCSdZ zQW!u_(y_|B!w_&ia)oSHrn^f4&HWKS^iGdLNEL?ZKZ8{9U^t6RTAus`oA;&5Bl_am z>Ho|XX&)F7ZQFnQ!%UfHeSf&8L)NXME>yj8eholY6Mkndd?}4p`&q-UGSqY3vO*%H zJHX2mlZ%1hJ(m6`ODN{HFx}?OGJoT3xo%S~-!T3m5timOW`5+Kxep!4FXcinHbw zaoOHGr#8}?fp96WyC-bsg>kE2|KxgNOz;!?;z8JVCnQ38+)$0k!_w^r)ioI7?;aBxMDfJsEAlje!h2+koF)kw>0( zGzkj=`@#BZ@c7zwPCFB3iOxFRtq{eY*54O8VxUbPJ^%REC5W5T+9OOyyX5AmHz97N zSu6?g&ut3$xl?f_X@i$;e*geIA7J?YKo!p2=^Xw9t^1+J2CC(`x5w@IbP;9)m`{Z$ z2kI&@V#~rDUQ|>mH%RxSvPgDtwst9SDVmr8TC3|SuSxpCZMNMCijz}G5J`IT4OO!+G*Wyb#lR_#{Q?f^^Q6xD( zM$-ch0NiHGQ%%PlAI04#m-jOrVtN=&rbl~ZvpSr@D-<9%v|j0ndoB{j zU9m4Y$Z}j85)kvpj8vJ!6C2cH$=Lgv5ab|`Vand@qC!FfUF42v;p+c>Tst)og86we zz}({%E34$nOmXZEvC(-D{|UP&TGy1>KD_FfTR$RiSJohrSaUlubN3c>l}257kVZ3= zUQ@b|c^^PL82=GmVswYu+C!VzwWt^^4F08X=0uYftBOxD&gajolQEtuopAWedah2h zY{`d4ru?PCn}O6S0;h8B`$wrl{2DQ`29TVh75DM^iVP2Ljhr zNTdBFL@Bqcw{JmEZbt;m{?Fk#Y6;;7!fexXOALUD58gg*f-?xL{(sb`@>$*#y?}`l z+)LuXl5*rwxm;DU;3%^6+bo(GX+W?d=)}s?9(j%4qEz0?YDVU31MyL?CO8o|r@?^W zK>=Ue6(J&Lly}(5B7kd-lO%;%eVDg*6dBf$2?SEhw@%B)#THtJjcLblWBl`Aj6}py zf@K~I+$~^>y+{*e3 z9b#kpkB>Rc1Ue^6#m8@ReasG9gHc6Z-1}Lxyy1_|tlFcxCFFdZxALZv&>BLQahQ?I zLTW%Zc*opHt`J6FS|zH>TW1MjfJ}eV&5nAJ#*W{ahKGo&YATwl*lWOVhcAhzqY~a* zldZE5AwI(}ofE#_JHPyjzh@+2?GmQ-&-(wIt(_)f|kuW30&3`s`z7_0q zQhDN2c7T-joI$j*CesUmoH4in)gg%O9RCxD8T%dy?qmMM;)fmR93qXNipky^Hx^sJ zhs`yuGDaoxDRqQDd2n)BN@GxtWw+ zQc^5R7sJY5?b41Se2BRXrUlLLQ;LQ!-qe1c5_>6Ih_lgyrX;vD_#EA5Z`NUPT_myK z<-dXd+Qy_>%_J|o!Qux5b!mzcycAyjWP^K=>ysQHGQm~x#o!@vQ!?Il55jR5-C5?H z09(Vvj8rF@?keYMl#H6Mws^7y{q!TUNO-yJ!yK?6Q0L24Id^_v)hD)Z75^EfLJ9rn*En4GL(Hk`bi_89 zJ4s`%DfH`rfl%eCmbgY^2+p;b9a=T=5GGkSm=FYA$*lJ>bTJx-ff@=E;f)jl*)YVy zpRC$}=$wsGzs=onfe9bwoKrGo2N6%7+10FeyQz@ZWSZK$UwSS~XM0^`hm5rS3Hy?SIx1Q|{};6iq2Pv5UhPZ%Lf=Vc&JsEj$!CBk26-s4U-W8%X8)8_ zTe*Q!=1b9UA!TowE0~A7?CYUn57$JDrqCmiZ*AfJog&4&Q<(-7UWB^GGhw`5stpX(+eE~^@pBkOf3h1jc3Ogg2xW)?@_HyOQ&RD z`7wGIi;Kcb%`y_j6CzW>+f~v@^l+Oq%CAAxN9M3ZJV-gF3Q#5me;TEo;DRznjxR;8 zfsxByqz1TPwiAUrqvWp|nL<5z`-Zo=8>t_T38RFP^eo*pt9Yu@yq*87H}f)Hsj&1^ zb{a(-PNon1NLEiAgx#Fl_k0L3G{X`PkAd3PEm@u&1sbqCtGRjZ5#zbDMMQe#v|rEK zLInENedus8-wo?H!gViiFg`|I!L-XiH-fkXR?n65 zzuPPGBVP3_c4r4fg6H(qLp6XO1>021=k-(=IHlF`sE>=RihM@uvj`^Dz+UGg<1( zBP~z{nbY|3+GE|EHx=P~^+pay^v~PrmF~h7lZ5i6kN#FM0)P@` zmas>bB|Lon-fMYaUY??ZiNKArs2K+x;;a!i&wN?(?B0&zh(MIyKY&`=KDYy-RXQ+i zr0>T|Ud*cCJ;lnOKVCS@$aOjyspI2o$jhbom`>X3x8fEBV8lEr^f!gHLr(4C8O+%X;+GSY`rwENr*2X+rcT6obsQtN4u-YaKJjX!miokfKg0yOctE4 z_L`^!1dVc|$ShyAhAlUV0P8%e;1vF3^rNZ7G#RPR7Q z58181RWfcW^rBYEFp_Z$Z1ve*>hv&KBSMxVa2+4Mmb6ymR<~|Z>Qh!fS^e_U)ZvEG z-qZ_+Piq-2SKRVe{2J@f%!Tj;@C_Gx+A5EZChbBwCXi7i1w$0#$erc=ptxR;yxLgJ`eRq{Rx;rO;;C;7ySIr&4n6VEig{sdWe)6&OWVo z{2z36&|~bFn8BxD`R-O=Oh`??r4hjWCP-LoF;o|?re}rtyzbFiGzHP?%?xU0RdBtP zjHAQ(=IkhEb{3O6ZQfzL-+AQ0NB5)T`=I%1=vsf2hyS`W^^5sVm9+?r99UA!ow5|@ zQ{cBacdgWLmdQ{a4{O9$2YKZcBDo0znL9S{hrXNMSQC6EeovX!&G2{8ETINGckGViDe|N+D=|oqT|h^}$3N#kp=shb29zZWd~YN#Bv?2yRO> z&yY+K-p^fr5BWk5OqBtDt&Pj2iwS)-sxVH4>VObYt|>TeO&TibRoS-f`=Ci4D3R|# z;r^Sq9`AO3!*}++Cw<70A!1;jx0G?5qxDzM!Ta}$47HEe`{?8F($y~(mhQZTsy(cC zA(4*!=B%~OY>eH-Lgb>EWbhV3k2&{tdP}#2j zP`ptE`_H@QR2`8MCK6A{PcJ&4on-RL#T?g>xl4z4C#UakXn-H~{#>rx5#KvWF+o^a3QwAXX@*St=t zs{&XLZNJjLHdlN)){-<~kxAwJw;qdEuE4T1JHY}Qf+Pep`+)7N!>kpV?hcBDv9sb~ z2)75QQelcVspmSrG2xvA-8J8Z--n>M4K|6`oQbtl{|w>w=kY$j$*~PvDp9LWzu94& zHCEJ8dp^4TE#qEcKwW$Sb$b6fbRP|N#Kmhr^0|`v-sQ7 zTUqz|Z`u>^oQ^eVRWtQEt9%%mb{zby-GnXIACpML_5EMpX`OzV|FioWl0?mYfWs!% zV9$%);rIyvWaICDQKv2b7}So|OxR&hMkaG#+??lUxZW zH|J;-eM?6rU5@}gmLz0jCi=Pnef51aOx;;VV}F9llS$~nuqYvBFW?R2w9ej6b;kBI za$AvYnu9}TIXjKbrsJSRkH~Rz3D{dfc<_ZF&4o4)Ai-X8UV{6o{8F8y)ot~TM3%sh ziGV`%f*%%$;N0KmAzc5rKP}F#@k37SYD3pLF*e+;s))=`xNU_WpK+lz|dFMmL)NRK60iNp{}QUQqeKoct)9%K8B%bSgu z8wdgz#42NUR3(4_560lI9;GIdE)-c9^SV{ z*DeA}s-ZmIqQ^=9DOW=H{^=@^=3kAsV1ZF_S5Nv+3UUeS7z8zYskx7%;qi5_1>pIe zM^%R|JV{wbw5p`p)gQsL_?;)`u#Qa(LfQRO9vBwyE5to|W^6p)n!d_yW5n(Xcil_2 za!@+e5|qnb*%RZ5Y*_yQitHZH|BX?xsgM`zu>3_ys|n+u`fysOG3SHUlArVuBRbQT zbPU*5B-smoUXQCLldPN5lq@H3owKFF)SQ$Fu}7$UmX@syRWtWUfT6{{mQyXgGkcSS zF3mx!cmM+8N*QcgyA8=w+VlUQdFke$N>a0)3lrEYj38*@T0APN*9`*IHE;Syl5cT9 zyRBDcW*%ul7oIQ9Fq%@>Z|_ZR`7FZ!sHQnOZ@K9?20G5#4)sbQ*K)%}a;T)1%30BK z)+OWLH`!WPVg&T)w01J8$a%g`Z{A`uQ~tevO(rI#o)*9qB@eCe&%GmacA`AzM1bdv zIQx&vC2~W|&;^6az;>gKQflGn!DHHKFgN$H;_O~?Z>3sAC<%Wc9!dkFt4D#ujc+(U zDf6poU~D`C+#793Y|-L-K-=A+kU!Hf<9%}~#k^=5+Bxmn&X^;1IXaQW*aQG^FOt&x zDxBH%#?kZx>(eZN;IijEJM=1NF`E_oNe0)`58OZY>jn``3>TR9$x<>y!LF(QQLEDz zSlFB5ZtcKXtf6RXnwJr(^Erk1vTi%c9mgoKBOw7MXUgltojVi4+wQREEirrtx1By7 zw(3v*YAskj)X=($34QYjYrD^(g%R#j&%`OH`Bd1zR>p+S*)Us?LN79l+D)ZY#M7LE z2>bZ>u3P0;_7hNPXoaW5`)1aTd=eVJ)y8zhkfsIki)pGm6 zP58363meHpuk$B?fvO@%CiePF_atd>ttwz; zppbnEVeCa!*p7I$HA10mqjpJ)u?&1=?Kvxo$;o8XQ9x+NwJsy{Gl4v=+dy8XIOC&( z>nR)q=;h9ZU>LHzrzw%rD=tgMM#;7;xwU<{nn9C#x>h)8#3!}fCe~ddT#^6$Uo-;K z6?$MJD+X>r%l}_J{2dZMA{rgI*MPj}OWF#n1?Dj|l?dzB~dpPuo?FI-K5aO4t1z+hF&&-87X|Gjf;C z&XR*e{rKqBOwRuATN!_HF@RtdtZmwRIa4o{k(&D%0r;)+lWrgCQFxm$Eg-M8Qp;c( z5t811yuNJb*2(4r3qaTz;Ad)&xoN{S^N%kcqB539qnkwxkSj>Cm#1GIXm-aI`(K3y zDGCFk;QeR0O8sj%ZPL2y1^7`5oMWo#h%|@rVZ(HW=r3u5m|QL8tQ81 zRs+V|E&Z&v4(I16nt_6$V6nNkuux{h_00Gh=CaoFu@NAjQR|{Zi+%}A2(eBBE`}KA zP>~;+)(QvE?#%8A4S3TA$gLtVB|HFe7`Lom1`=m)Mi6>C7=+nTgaOb=G&-rr8}w4IB~Wb+2QicXZ|LRZN?01kRmC^5%nSb%jKxWc z9c`Sea&NH>gv`+FfZvJvHh`jFF2Tr2loN25p8;#0UEjF=iwGm7IXp1YPY`ea{&*ls ztM>G@;9m`z*aFSoLX_(Aty{7hw=PI|*Y5}B^51=1kaM(5ma;r&=H=kOnJvO%p9UbW zVyS}D>_=fKR-E$BlI9h>Z`Bg;?Rf|{uaD%MpIum&GwAPtP;&s2h`pT`CJp8cw4Me- zo6(dBj0H$f%7(ea?cI(AS`M272F7?U33}a6!k~yckzt3`6w@7zU|CDG_JOsRWYOsH z_hsDidcu}T7Mn6&j`-p#3Uq8CNI=doq)yxZ694IgttFw^U>WytE*E{T=+s3Z`4BLd z&L`h!J$XEDJM&O=n`l_Z63Ff!-oenz*N~HCgaW0|`fo!=4LU8Yxg_7j{|&krEBwdD zI441`wQrjd<3}^`qTUX8vY(B$f!5?fk-@Q3Ncd1wouq@mBDYK8XxRhG%R zG*0U;8|EbTKL+zm)A-n3tg|=M|5!eQsIE9lf!y1TOJFRfBgPApLu-MtV{=IVI~2_H zSUvQY{-YIQDQ~&U)}12N|mhmyoXofhd=_tj*WllMfm;9Uewy-zP#D{YE z!0X++YlT_U%Zv&ZHC`6>24~j8U_h{b!Z)p%<(BY+Xk$QLUjc!{YWlj>UHd=lW zmBx@P(1?@;9J*`joLB%c&qvv`zK5AjuA%8me1D z$DDH@p+LxLN=~+-#HC3q8Jvt+C1v4fbd|tsGczLW5wQA?qMMkS3V%G&fc)ey3g4F^ zxj#K~4a2hek5HXtdVF<>_aGYyd9{*8&%@+m0d}MFDf(uF;=uZ_>4b36JobZv5NDc2ZTezy~_qG71jS;Uwm(lABj*sV3@w}?`i!v=J9W2 zW_}F?VM4L*08*$4J{iznh>E#P+b@V<+V?)Q$q_k06${ZWyD7!=nWjd>Rfal~a1s|b zON~ilnA}L20LH<&x|6KK-PbWL*^IZ;z4T=J54`r1mc{c2al;@I8QfdvK{Tn2RxE#6 z*@_YqjuXeadyd3f8k2&Gvdac{w2=`y*7xfrI2L1#YP9e#?_i%nCrcaec0qf(8RT~8 z>=S#b6uypqmE=InAc9$vx9{PR#ddq5=KjJW$ThXZH164nfiQ%1hM>{iTsP7XH9> z(F--gcXz-G{zg-C7GPGWk%eTD9<<%hg)>XPU+|T3=Vq|PLnL}jr67oV^!sJ59C-}} zbNTu8cNcrv>Yjb9({xq5fLTs! z7G8XlnEsJg(oj3ZGlwv$W`pbr`G zNCa)%5RGgTaHb!~z>(%%F%xV)8i>1iPgNpup$Kbgn78KlLq`EAH!Z;mI*uOOqy5=8 z;-LD9u+-2f!4}LeBz5%non(%pTwL{aZV!DgmF}K6Gf$$L*6vqNDAH|TK+!ni)-Xk^G5nJ;Lz3%Lg9H7gd(AIYwK!~ ziq1+Tllw5xezO(_L?6z_I)sn>D+7I<^{eB;&y>g5jmXi0Vb~5HpPh|Eh^r6pU`t4O zE^2Xj-d9{XjUm#`a#m`raxIACkd97sC!F5s9CqdeqtMLpRvb@3FtkI>WL?M!j((_~ zFPSFCw~yCWlK7|A07ygr(=1O`k-y*m&Ru-`w&KSpBfv)nXMU1xq6lT2ET}g?3~mji zgOo{tpMVzAo`JMNqK=myy?bkDI>q?CR%zatDuC(qb1Yx)?<7WCFHyB6!xrl2ABN+t|T~7t)#A0#=k}s#3rSWbI zU+^sMIpaZ?47|OCjiGYxD1BdIJsVkVUMy*JoqPpAfOh$zAmkf5OjXV`)VwCfMJVK` z(KoYtK#nDly7qoDj+#2c!SM7-9uKk(>-!@|Ag)h*e5WHC1=f_$Lq*pj0MIl@0?(X2 zPmhNWVTi-0c`Jx)JFRr{j^3;|AGt*xCn}D~4BA`cFW&x?wJT;Xy-8qIkWwSZ~IyI>tM>GV&NVm$=`}Rk=CGDsj{4Aq@|?b+82A-JGXQiOdQqVmo2Y= z92#!v`eGX?`ARLO5&;~Y0sW)AcRByY52=<*k*AKrTfM}`6MfM(i0!xrH`l2sw23Ee z&(EW^WfWxRZ51U})s}uPIGJ>0j9w@94rbXIvLGZ?4C*IioMF2E0cYS;o*x%|%r>G0DkTS2|_L=IL@vgO*=Pb6}k`ivKG}J*uu_?x9-wEC_R@sS|HSiU#kz{ zqEN5Z_~}1xje3ses|arn@{IUHb-fcN z^fEzTV*=^4lU*UPc2to0g^1E8M60BsE^HXIiBzwLzf|8#_Usw5D3B=?O*zX{R@K78 zb&{3-<~W)`%z>jkuIP>~id?uVb_fi+;EKsw-xd=S+Hv0Y>ejZhl}7**aD{LuT%5ds zIW41QTj`$@&1K4;ph&>S=$&16*vFgB`%cSIffT2Pe@nSk6GMTO7sefoWy*5yrCVKt zDA_i1gN%sh1l9R(;W3UdQd6I1bmf8uQB)tiE5USf1OWz)^Z@T!^TTUSC7YJ0Bn2Cl z+cM86KM3er!)k;L?!k0XC$!i2UfzB~qzU5a`%}DyB4L3^NoV4aF?e zt8+9{#!_Yi?3e34smR)97cUiO_ZiMGtDsoqhU17vQ#~dM%yfu0kB7cuC|=>l0P-tLR0Duq<59an7qZXe8wr_Nz5f zdCP`)Wp1*GnXZL)Pc&YtZB&81j&MqB(YgZP9z9=FPqZH_v)a8Z37KMQh&_&b)>m*v znZ#)tlkdLz_p(&Jo6MB#oa=`CFGf;nyZcrBl=|f;#7lt^#Tw zRj0F|=rv0@Ep^Y;r%>p7J3^%NEjB)f+eEr`7N^9GjDJgAFCMV9uTc3J_e|Fq4lBRAfVuqWD`t2$Pm;_NywJi+_fA08j|$c;&8M3%6T zVnTGaVuPDzv&Xi*6^mHB@^9MBf=a+Ma~v#ZMyQ8}=gWO%Itf`6wC?`{w~9WO7#pdv z1V6DOMA4Y5@}V4?0oXwF#*!_agYJn6Nc$|0$=~ww$09KesrpWW&^KKRcY z$no-CVWcLm7?(X!@>b5hzH%G3Kng9vC*|!#-YO3M`s$4Z@Hm2=$Xj1J+sww8oP?TO z%}wGixJ|G0#al_y4*gF=8wd(7;m)O{4oO?Ir`T*~DIP^TZ$@-40Hf9+{0ym5(@lX< zz2$

n%s_!nOR$hg1BztwWOc#lYfEq1lAvHil{k{HKHNg!C4ZHS+wgXJiKi@M4F_ zfL%@(@f_kp|8kV`&{fd?G{>hwgolAS%*)P)tJF{V^!=_R^=K-b$YmAr~omv`REXNiHmYvDW+ zv_O-lfU;KKhp|ifliS2AIB+4^{+2r}ouje&`PM`d%JisfURR7z}z z>v_4h%m>kSM5-QAi)^FzFYWrkixsfNkKYSIORL?zf`?sr+G58g>A1|XpAs^W*wBVd zMziD?_2Dw8;Z|`-)H$Vz6&5oe6(^aA*rH$dou&-GTLB30P>}jIck+um&&9q;vHL&Z zNTS1?x>4d?9HxM2!H2mr*74EN_bj3J6XOIaRvSMDc=We|l1dw7?Y52D$Y}T|Oj|ri zSijkzlf`|t#4{T5r+=({(_!LGv^$uyYfvL`uk(Yog-?DY^Z@Mln!sZ1lor$(-z6MH zS3Zc#p4D>Q)!U4}z!?KgF-pbk7fYSSWIs+!#d~sB1R)i799GfEGu8|%PIRt#58580 zuhcO$&;B(|y=qMWlr#c!>%)kMO~HEHdw3opXCe0{X|rJoun6?0)gEGBMXX1uo#89B zaz>ut(7|qZ!lgS*B@l7$dt@G#_tCj?Yc5%gP!!|MiIgSpjr$d&) z_T^zB;BXLd{RQ785w=i}_VZD2e)wFs%AWVyLlocEEXMZ5b8Op8*<(aw*qA!O=*x_R z98s6{&#DqG5uCiAvVap#$oIjxMEaJ3PadEr&KKw^F@191*aP=lE3OyT^K&Vbe+SaM zZMqQX+#{aiC7kTs;~4$F>LN^5TfyLl|AslBxx=;zL?<>jnIZT4q@?FpK5I!iR)8X> z*cUFUOr!LV=v5_Ie)1R!(`g*wzj(BL%rm0Hu{r7csk&2+91VerfdWSMy-FNZZvTKW?=(-8ApO3C2pHDQLNfKU z)Py^ej7nRy%e7D?B6%~h;P}I}hQ7%g4%98l7x0Z3w2m&!JRT@ScJvv<@YJZBk7|DN|&8EtW4ooYG0ZL(%8Jf-X0 zc`ue9mx4~Q>Ge2<)7tQqQ9JX;9j(TjO5J(+Ma80LI`&3RqY~$-xP-w{^4h!b0bEeg zj;;<>Wz}puU;nE(=PH%Pr&erk$Gn_c6+G=FRb*$Mzj`*<7~t?PTyx9L@pO|olq!>I zSp@5Upq02B1i)IIyO9~IzwKTh;&r#KYyF?S+pRGJkyKz7P8aYhX`49_HR|rLUYFks z-6;nMQ-MF|v%HD>OI5r!`Q>d|QDTTmr0m4v%X$-`;_$tM?!Y6I8^81D+>`F7OX#tt z-FfVWw%=R!i2hlsEeo$fTOr7raz7mv8prsczCeiX!VRdKc&<}IccLCZrOf1#iL4dv zVAwE#n-X3iX@)jwuMovASqKv9PPp;NY4(F4F+T+1KBva_SlQJ0>`h zf;c|D{_CVF&Kj-JURWaFm4p9o!ONBgR}jGl`dn~48N_|lV1=LHu?jvWav${otxeRwiK$D-pccMf zT_(Wf{!y&SFRdy_Oyrs{s)|bR}D|#Je1Vs4HVfd5~T@*wLCM>U6nA)Vsmh1Mkgw;xOO0L>%azhRy!T zjKi=lOk{B+%(?1ZDxf3A+ zP3JoJ$Ax7r)wi&Dzl*!*H|X5$yqw$fYD%i29op_7G>y$(r#r4>u`mJvqfL>%q+Cmg-gUpDa z)E?ATi#BLTD4?d)tNkGp$zT~416~uYn9>Lh4ladn{xVc|0?R4H*{UwmMOd2GWKI?i zrXdr@TLer~TYRJAyNsc%QibM9fT%=r76Usx4Cl}cQHNSjZwdL3lqKwhim;@UNHGAQ zJv!|q?ZO!%5rfB1%d%XB;*jyq(;dWr&axLmhBH$-9@42Dc`Yi&zW80KE?nL^iTwe8 zZ)8zOnovTeNjIkA%5WXCNY5ac z)G~kqM~JLPAvqo5o;FYa?9guJyBk9(l-G}?Lrzuoj5aU3yAY;yaikV( zV(S!~fs!ZP7gd4^-a;0(QP64th`kiV=FlGOMs$QYbjz*^Qn{d;G%0M1-RZ&)H`2`o zX^5ay=C!9g^(rrWO36E#V7v+uSr5nXeIaX46SZEYlI1aWq+60jctMC+c>>hX5@8Rl zg!ZaxtfG2*q*9aOoUjde9C#xDT-L5?4dd{QC`f(2_{V$w6PZHo@ZF^L@#mep`3vq2 zG$1hhPE9RT_x;eZ(3x7EgIWFr6bMT(yRdf~m7W-h8|ASF=T?HcmltGbV%Qi-dkc)f zLl(kiRMrn%4bGfs)UVsc%BuS(u;@;|_?IZ9`n`@DObvA=zU1P;mReDHEnoU=I5^|* zBQlQu({&C0pJem1tFLg-=49)#w_oW*G}`3`D{R9hGL^y!bOuWEDdP{k`6JJ&tx(Zu z2-lcBCw^Qra(-i&sA-z5)X)R z^&&$Fjex^=X0S~d46)$kkvZKKW;h3H^QSMr;J8}}yvcv-L&X*@5UP7w*|xh9)scSui+rOf z1zGxEf<&@P^vI9dE;Y{Z;X0Hl>&WHJy+c^x=?d-UXn;nE1`^xgCPmxZ*b&rVExP~z z>d;Aw{}^39&UarAKHNf)-KpY4z_Fp530wuSxFs0~)V8=Po43?_{qG|6~ki7`gy_FGh!%+mZ$PW0Tl-I>}MXBPXuJ$QKmAk7JTqwD+uR8_wa)w8)yKvD|&?&U+ zn578?TYb;1c+BnPC}R z!>I?ueQT)ooC^ zkt(FT!`tWm(i~Z>f`mB(=`oKD-hqT!A$Rw9BEpp_W&@9ZQo|;R{qFfx%7eDD{G`%q znW;yYBwe9~RBll`l55vC^iYX3?cy2g(`KaCv3qjh6jCcw*kXh4nZSs7d9CVzZU~E%WCwMri=&V=n$mx2+tA%=+3|o_=(5TL2`ZTN%G6v)xO+6P5Z`51aH7CQKy8tGNhvd+Rt%N;HU;<1 z))-sW^wpWXr!Or3YE>@9;!@IA5X+*huT`c`8G8DFQ|{GJ&A$-LIt7wok`99o-q~MH z$zsd?+FsM(L#{py3&9(7<+-nZ|I9@^4*0NUoz+X9Slxh!MMebD-n@8?K2beej{6K( z^_4AAT=_RTim>vjHa313BeOR@KCsBf!G}8+h$bx-h}p#FBpeu%+Uq_y zH<9fM^&1RQw|7+{)EuBn#yiRDF1F|JdA!=*-H;xcFb^*e$%JUVhhga5aPN{NW2&4m^a+$7aZ`o zW?P$d!A%%_8+%l0WjO2eii@9jY%0mo9DY51>HDN_vKWt&XX>n#fAc!Mt#phP>{9Pq z36E>oFfTJ}*Xmg{v{Wc1?X~M0W~qV9Sc93ls$~0Y4k5**#@dT$zRT| z@xRahXA2Cg51y;Ci|FA}xNWU=dN7P?lh;mwDi#5!QAI-^TT>X0&j#nn6>&3eh(+-O^s-NvZdKu)m!h%%AK~7SjMS6rz!-tlr<@YF z?dCPnJ3PW3AeEYdCakb#K}K;CHQd33-T@&AI&5w0D>+VrUQscvm|J8Y zX9B73vP-jn^>ze=^1q?U#-f-;bRc71q9J7&Byi!?wA1gQKTZul4sURJ~a}|FkVlBhQfkxiqmK zOVNPqVgGuJOnLr_`t%;#z8mD{rKm9ldQa2jN+Co!xRDgJYNud0A%r776|mQ6aKnd4 zy!T1>UKM_7qpOEYa|x+af_0GplqEA>Xjo@r-g5lz$qUK99pl>r35`5nO3@enl89-r zr>#-1wTB@3fu~S=yo3v|X*bRD4-*6@jCTZN4^1HmKi6<(MI<0e( zMP7ZF6-(_fXz1WSlzse4p@KB7&ng4FT~`wj=tbR(MBdt92#Hp- zkiQZR#v@GSF25r63slx(f%AFF}%B#^G+zJUAD4_ya( zSkws!PeRjTgu$x{qA3D3#4p3W0ODws#TZSaFXx#widKUmA+BgE%M86muoFzzys6#H z)t@IlndK{$XQuW*Oc(I0Sa9|NewP3v?(R*YewWUj`25=d56edMtGr%E?-pzulWfxj zmlWTvF}WvsjBGLNFGI$6!pPLbAm`D9(M1RGkkrS#u4a$9U&}}7{JC%zPxptKuY_e| zo3P28C@9wT{$Ojg6oeay5vhQ0LGEU@&WAg}lgNn3vpU@T^glJwg*0Mz^+_-QOR zi>$xVQOQK*$8Y}ZYW}Z?Ao!O zyi?$Of1fNnF?^v!M#)`0`yk3$s2ZoJ1S=$g0R9cvZ(ZXY)3rK@5)zcArOo*1mqiiT z2XjT4^#BUSyxjlKK3D3D|3`gKh(FJwV3iIfC>Y=U#oGwrqB&7c|KTnHShy-9JEpVz zJE)7w^eD$6d=XTF#1K@FN$i+Z+`PCDE+{~$`gn_PpT5tgKC+MjK;i0%IRW0khP9re zk*3`vuJTj*HQsjKx1{;f0P5H8#Faprx|~zesongz;Z-;m|I995h7`XSR443!!p2&~ zJh)iE1=a%cQ;n8vq%#KXQ?p@AR)L!hOqK+JUOc6@5TN+>5#;tZXYus^BYAqbD4ms; z*kJ`!N15Nrc5eCbWozk$;DTWkAS=JT?iNW;?6^A0Vb_`)XbV98q=y? z#%qR)1AlyaBJ`gF8Sqi&ygn54!IYw& ze!dl{cS{tkFG#=jNVzOnC>^whjsyCCm^Z)})%^TPHHagfZWr8o!`&ju*McnV@+fVx zl3JeBs)JGtpI>$PKeV$g$NDb{=~t;(v|9xSK5MC!fqVr9MkkrQpx2e6l@gn#w*^>5 zGc()u{*Vx~H-5)teEPk3RT7VNOTIfk{>~=-FsE==+6iFEIaryjk-BQoHmD)oV;j>M z(($t;O3w_7E7hYVPyd5?znBMmb|ze&!yYtz7a^ScpGpx$sU39r1V*KLSK~P&T`>X4 zp3xBfvuhu+{$A-vOjiq1)%&P+8lU%E4Q;z8!l`A?udIp{Q`X($s)+C1XapI`PzRSbp z{T4fZ6JK(oJ!;ZSP7sux@{vi1L1#XB{z7sB{yAqB`uRkTaxTnu7Mt7utz3c$H zpjMz^(x%4EH67Q<0#EkQf6Q3X7ZKdN2s0~~ow_aY9mbi-GAa1Jc}r4{&2c@MGd(^t zlpK4O%slDB_47@aIr(gsx|PNGWd?shC_pY5!Er;h6rlN=uL9^k`DFbSqGh#Nw$+28 zo^XolWAZ3IO2Z1$3b9If{^^n?%v{j|#ueh^7nA!wrQ>)5nU)m(c@}&*R;U2o#E4?H zMCm94DP64@U&+B_rIl@~51ahdbS23i(=gt-|(Zh!&rPH!)h$gf<8KL5B zP=AomY&)L!fFY@kAB;@<+>7D|DONl)7%sChL(;VzVM>SW42ZsjiJ9x#(e`E2jNd79r(-z}VN#mKrZyZF2Yqiv%xZp@(MjJ>QLm%oT7%aO0UCvaNH0eUd?`+}HJDMMGdDNrMEJ+uHbWi_-Qi{POFx6$52`q%Az!8BFojfn(gcc`>N z^$P;N#jN0tm9||&P7el)%r+AQ$Z`%%4W?koBj!HNT)qldvEvSK+_yLW5y5TL&w~pC zcjz;t6-6I@sZNr=lYgYCFI{FCu+M0o5Iki1q9z}j@Ow1*CCjjHQR zwi!-hL?uZo=#MZe?sZ%=455%l{(cXzoL;_}GpRJ$zFr)mtV>N3Vo)D|AAJ;kMlek) zS2xeiB1@HhcuYitPw8k~mWCnp(roaR{X9&Z$ldQ>`0}A|w`R9$b(8dyC%C5dj84^m zE~~L^@hRi1uZ}#{-U5EH=i+8<{^CM+Csb_@9ebe0KHPeW4n8Da5wVBrK96|4VLf}Z z&a(^XAlm&O9}7%brJHNlN5pNm0M25O6_QU_Q*`kIVA&5fH$Z*I+dk0N5vUz=H22^p z^Qz30^B_ia=+2HH_CJ30sH zvXa(3{DmsjtAjQSO|IrfUQlRC>vZn**1j|dSMgL3^j zjHETsmdjl?u{2uA1BBO7x8WmVjtZ{*4 z7Uc^kr(R}o9dGMSh;ywkxtHh|9azpk=HTjhzlFR^)t;+>cUNxYF_m;EGjm~Prh$)q zPXJuaBF&xG2^^0mxJdYuBCzf}ZbtKWBogC02Gisv)MuEaToTcDI+1j>feRPQNA+!8 zTywmb)q2IofkjeETSo44z2KIA4~CMv=R^?+Fc_-bN5v~$CbUa$=?K9ffYOpHnk!D; zYI>^yJr@L%p>L4ZW_rHVO5c_yDVp9dc>W;OqCI~NjDH&rEspBz8NJbi>6TqlESfxU z-533-VleUxXRtu=84KQ+_m*EzmUsleEo%yGbKgXVn7+wc=Q9QTL%4(;v#Xyc-)9Y| z^vZ#+xM?&R&-ZdE=KZ5pR2zq;6Hqyq^j{)V}y+*x7Gm!Y}3M40+`AJpT zK$qTe_oLM={~7M%Q53gPFNLo4Wt!|37i1oY$bI~~pxHEf4E7Y!)|loer0 z?7Xgbi-T;>0z~c`=9#BFP-MDmYXPBWR~2aTcu~n&jvkV^E9nGM!eQSlV8tkq=y30& zYtWE7OQx7w>u#@vPy7Q*0q-LzYc;IqYs71Vd;O)08D&oxXhuH`Ssno`3_+~Q2kDTI zE-%2KlF~ewIdD=-1N)iGAggp@#t)Y0w4)WMI?oxT{34DK3Fs?+cDQ~a%2-)|9aJbS zlXrcpJ*!tif0UZ?Q+XY+j)`_vE)onyejtf}!0Ofvf(`*Li&?R62F)RUED78kom$5| zgDxqi)C2`QX#zYpltmiuv-n-if?^lInYDBXH?gR&dfy8aaHpg)L_^k&5_~kp z1gR7TMlpzxvPxAC3Qg|%l@TkOUf!=C3A~XdkIiBFHSR$0+!|@XI$iO)$UNJtB+#X} zKeKWre>f%F(7R?E1az!b%to*B{t12RReW_F6x$Tq+<2U%>?zk5{!%X%n%P-Y3N{)G zh|s_XQFIk2Ltcf<-h4C8OtwY`kB(^CFw9w?48nd)17%V;XRl{Ml5Bt3tMvK1-*Q&W z&w`Tx_?v<%2R@F<>rrkto|o+J4bXsRM>oBq_iEiI#Jz_jwFR?L2r8r|nQZW`%;3e6 zHm+DI&sCh8v!Ht3tdR`3oeyqnx#d7>dE{gP@6T^Wq>h(5>CfEEoX!qXxr(Hsk^UT} z{ZjrS;p2fVRVqpUe-n%)T2N{;wQIC);g5d*sc~=b`7j$XZGm25Yh4+RGV9uqLA1A6 z8C}-KZ-28XwDU}rG&u^V@TdBrYO6XpsAi4LJeoIq8_kdOmoho%&wj2|4$jN-iE#i+s zf8DJilkN7Rpx!BWL_yJ)aiUa%V$dDU#-V#kkC!ij?Y2!gfnE7;lLqiQ`H4L*`n zHVTr3J!cRexYlA!a;s06{I(P7NZyp5A7q90L~wZ*On_bQ2+!>`o`f6djbl!in3?Z|{5hGJ(Rft(lw>A|F?? z*tq()Qto#5Whftzq?8aFr4~P}H(b~ZFYA6Ji*g0adzDnX5*bC#LiTd^RETFHD2hZ_?RWNZP+Ko-r{A=R-s#_K*apL;@a3=ESfwHONhcTbEoc*L`jD1l!Lt(y>*Z zeVJGRuqu5h6*+>-4m#bMLOG5@^6P{7(Up0OY9)s`qw4VU>2Fri`%NCxS&Tc%w_Ewz zoVMoXmF4+)f1LsOs^5$G)y+?>tD>6tOM{9Yj@0Hndt++x7Mil15lJkU?{Z^df)!eX zmvec%AmbJB9QjX}SzVtMUQ#Y2c|m_MipTR1wBTD?&c92=Gct4i4N|_~U4p4T4VxsK zRxKUvxyI-QrRJ;q(|HT}u|*1u9r5Xl7QEl7c$WQ^d;4TxUqTIOSt*|mBv6GS!3X7u zxk-)E$v*4vq{vUZa~lA+JN3<3!k4Xv+jj?inGH$g-ZX*lR405^?!3z+2pZ_(nqyvASS4sP+VmS??T z1P*tDC8trtjPr;f^AuMC8kD8ykVx|$gWLd$_M3teQ?lU?agn5FMX5(gzm)OMr!Pc(x(3g@$s_TU6~ zSm=i+GaVRKEA!L=IM9Z{L+{p+n>?$Rh^Z{iL2m9NYlLR(H>Tx!D#9GzB6A)`%$#Bg zk=*Fgg%6HBjTsp8T09fS@MTj71#k`~(vB(%-xYfbA-zp@>)5BJT8#U|PFG}BWgR5013HMdI`^4V~C{K)<` z4G1aUg!5{50YDVTIPL0-mm=zmde0>uAhJwb?Oi~0Kod`0jyLW<7vA)cv`@DfOg}_n z7qp{ak>PB@tW#uYoot_w6-_EFOhvkPpfNr&j}^VZWZ%+rLa{638If8>wr!6cwfJ<4 z3oSB!DdW?xh2!JLK}TAmvEd6Y9`T!A6mR9xTROfAhb9#Sy$&LgY0;LsYeDz}k6Yz8 z4hl61CLh=saAJzy;72rypSn&C0wl!H_JGIRQ;aUT#{isn=kM@R*y>!q4)lcHf8kCM z2ms1ETDY6n-4GNA2`B7!EWZ^y_Sf!Ho~Ci-tHSy-K%DHY@|N%~vr3CaRO?f8Q1o%G zg(jRZwOWhZfXkVp#7H*~`QGbD4Wfp{$0lDZ+J=D$f1M2r2sghFBPV~Ed zO!KYA733hUI)6GrMO=Miwu`3jEx{Nn42*B)h zI>68cRd%1eX#&E3SJ!BehUY{?(=rv!BypGzgP;Xv=9A0lP)B*HLlPEGEz5^j0lS9O z7pvji?B6k*eH$s_3Jf3$>7*oN8QfnDfQK?!F1O?$LZSC1 zZE>O-Wgt+UYk=y=$mr9b@flh3F)4!Ost;b_z>@r?dPj1IhZ|kV-hK*(-J1PBxFF2+ zt0kHf^Neyyh*G7zUn}U*hzb zqWYO2 zHbI(C)?&I2_tU=hRIAS;EM|L64q_$N4!_Ula~|R;x0e$5_#EzNW?> zLt*{-#;r;r5xX?QlL@-^#@f7n1xuS?1VhJSb3Ux2qP2jJq2skVM+*9sI1#)?h+)vX zjair{*Z13Js2^L!-HC=x;jNx7yc$|$@@3NO;h#^(g5LKL`-u58tUl5oCNDWF3ku9G zLWU0{hm*v2P=$5|cJ30lSe4yH*!p75gJ^N%00Yy4X9D@m8RlAhpEl0`4E`iFHL-rV z$^zyCRNKYb(^@n=p}zTBj8Wh#Q6f(1wk-#0&cX`LWi(C{KLrBJ$Qm#Erd~V1_9Awq zD%dtI+ILe)$-%)#anK90#cYQgmv^$ zdibq4pfpwO$*hxx&J}X^K|*GpFQgLb87wfc=*_LL^!WL*P?GMMn@GQ@`*DrgR`)r@ z`)*0hUpNNWi?vd8OS^~)!cUe6c&Z0liYSmqQ(T{!SE5p#X*fT5vp7cE7m6_mbXFxJT!iOaAcRWc+`pSnA(f8lwHb!OGAOK zIf#P^%L{BlPj}cvxLLpec3bn2ok(o*tED)K*{rkotpY@8{5QJaix+Uv^7`Eu_B|hnOo9L0Qf-h~j z;yP~)R(15!*{yqB8=oqsWrxu}M5?n(^vzY1RZld>1UcxeJV@e%XohotV&aoKtq2NR#4q^(?xrARv3gZDJN3ICq4+RTvWA zBc`0kEi>*1Osb67o0hGe)&=BwKQsSfXS>I!GZd0@QYio_opsIV5gvi_y`vwH?7Rc* zG{MS9!^v~A!{IphBz%FWTrNl?Gr$T*Nx@71k-WXCM*G!b4`O-oG2X~yaZb11- zK87@J8Wy(_pfSp;H~B8gW&Hb~9PJ11o6N@tZouU;JMQcSkmtjFdapgG3o0xId3wBB zbO7{vD(dLEX_>Z9^r63Rp&dZgIPkxPM3Y}(zAIRuAsu!(jg(r}An6B_rmp20VM-Ho{ z;&-sOw@X}ui`K#ul0%Nq7op%X1QVxO6&fY_tepG|OiHk2_YN=TzwW%wF{K;ZYlO}Z zDj$1;sQ;{~F?mQO^|q?zc?<4@?yY(xZtUF3!1zNkO+rq83)Q3%dhs@D7M+Db33*kM zMIqP4pfNZ;JY-@+0m&vmsTX09%<&={wdaemzg5^2?prm8sMr-c^DSPdgbsfz$*5z^ z7J&{~hqon(N*vi(@u>iPt#vHRV=M%IrU8_9xH6E8nTZv77bfe^EktvE9J_ z)UvYWV465i@PZMsJ|L(B6EW*gmA*A=hqdsbny1S$FxWF#&41)$k+l zx>xWyqs8=htf}Fe$%3UE{x91%;KzQ*t4KVvS`&w`o(+3{*P=o}z zyI9&jEY%sC7}@20XAR82CYi6KV{H6f(3H6XUjeZW8U_<5mcwbS0oK5zHpz3_8=>1& ztXPvbWzF**6LU?xwnlWd(Ul?gHX**XLiHaTh`Z^rg-IKyVEDDvDirFS&R%n#%rs^qpd%XR>6k~y+cv6=Z z`=KPLzG}=`3$rz8{ zN)e|)G>Ci_&Y}h#lM{WwllNZ1s&54bV2$4<`>MLgN-PEjLW2_*cmWg8!0SBs65for z*rOzPLcw^3Q>g_CrJ_C5SK7X=i?fW9f{mxcns|hzijl>&;nt&;XJTe^McH+R6%BBl zaY;7GP!{_CH;mZNl7#6Pz=(*o$%4zB71Xq8d6hBi1vt3A4K;nVvhi8kIG>VT^ia}G z=Ik6>iQrS9TG-1)^q;uDdQzuSvRDdrV$Km#YNhPy{w;8D=A;teHzD^K z)Ncvf!LYMSH5l2?P=ou}Hk3U05hYVG&ZZz#+edqTQaJY|;TZRi^_H^n8ga`@?aLc> zg`#K;{>L17CR*&$Tgd~H{R%%6s*hvRfx1kjKW&I+r`p6&71xx_N+l;N@tg|DtW!v763q_e>xm!!vpX zmb@yPH|7f_q!)tf{`k@$Kq+y#*+Fw4#8OoyI>5Spop)CEith88qDd=SQcPxKBrZ+C zwZ|{Nn2{G%vXYf+*LAm$th>ebGXoc#PnI)V&_h;jvOM<4QwBR!v8jP~a58N&O%ELnH>>%7Kf?0he-zfm?xuT@M)ZZ+0=M~|zpR51gKiht63wrLesbZv|x!pxC` z5K-`G1EXQladHkpKladrl(ZQusX|aIqpFs9x6wr&a_*yocMJF!JLL>U?U0u_8XpA&84jvPOyohqLn+(Q*xCtCd0oQ z6x6cbu<36Rqw$S{0#{VcO=zsdJq9W8ZQPL*K;7FxFvp`;7hq=VX-BFB6{_kfaheV7 zl_k&cR2C0sAEa@_tp*P15mta5)l^3*DY`6w!G>5WO{p(6i$mQKhF%D2!#{tU)Bx;p zu!anh`qw4RVm|D+OK2ETVbvYxxcR2j2{$A6=x+kf4hbeZ-~v*Fw_zyteJ_j4t+kbZ z&iplTIV68TH@Tz5+PVZL73J5+=g#IqdP$mx^{mjX_5WAnxng?izzK5^*{aG7g zE+T>3x4fJjPyP{)&8L=@*sD-pDiH8lACWi95vXaLyBYyV)ER*VGyk8_2Tzq&!O7lm z8F^M&qVY+|^lRvLXpYm{U-<-x-v;Y?;KNF^JQ};^J4wUQ#^EpYX^Cat<}|IJVcoUT zc7E~1A_Zuy%WIF0qxLm_FgmgBqKfzZgF)r38FkbbBoGc0u9(=!)&?%Y6dUvh!YJ-z z;M=Up4DAEGbQnT^;U1K~Kj&wS+zv(_NF4@eFYe+-03Dy3zSw;1dxOtqiEa4^?{3u9 z#FowZ*y=jDt4CYn+uOa=1z54!O6N(c0(bmFy7Gwda_JF8)OcHiP(;MqyvCS*_-F!K zpVr&|;jZZvbF_{Ce9d)giT{acz{g-t%|+JXCqi+qP@Le2ATkAkN# zG0zKl`_KsN)GoBlU|1AmCk1uug0RvHTyXCj3Z*e=2jT2! zw$QS({}p_OYM}v&0q&pCK9h`k!RSzD!DR|{INqvq-D7nRuC@x0w9OxVn;CTp&>yU3 z*3$Fl5LeOmdEj^yq>Psj2XL)O5$Jv@ByM;sFP|0l;orO z#i$uQ3v)x2YQ}YkxN1`<$y#B*N3yPs>}aT6P{YABh@WJ9N!1V$+eA%<&79RAwuSl| zybZ;UV-|qqyj-D6Q86MhW@ydH4EhQevQZg%#dy*yss8b>k&y(4bidzsP)*VS8ac{b z!NpCTw>{F_hz+V38F1qG0{?$Lw)aR_Nt6gdRL(0Ix^2qlT%rQ}%4)RGNv1f5@g(t-S>CGwK z)5^fYy2gp#T-lAk`N9RNVUa;GEs1MrD6j~)*09&GL#{;#SIOokO->^Rp1EX9RObbU z`?Yv%ED23X&z73_B$UR+d67`M`Rg^L*1bpA8*HNW*oJV~I&A)@?k09E7sfyo^v!9G zij;UWy0IXu{geXLuBK0p7tPriG%{DOp^%k+N$-Buq-4I?Rl@u=l+jth!jXf~alp&}#5 zyZlNSp2k|?q%I0x55H*y`Dh}XxO98a`uNxvGjhCyVp}o#1MEdySetv5>CgQR>Ksfc z#O1~wEf}9qpv(YTVy)d@W+f{z`g;iQQj!!99~&iZh)1aE?Di&NPhEWXP<7k|y@wC^ zTV^9|47Fn_8r~|kfDLDy;ZUcmh(NC1e4;pfv@U0P1j3kqDdW&`LV-A;wUPd+rgz<| z??13H)#IFzzGtrg?gG0-6)w?8Gx_lkPOyGW!*)nOq?4M59dn9x_Z*Fxy!5{9Fiaq zeB{t!o~fwzMg*ykn~zzT#NC$&8912JxzH7M3x}+!LXQ$BG@hVL0_Rloc5VdY$iP4} zTy!JcKm{XAT<*5;HhL{#&L+O*^nkO|3A`78_w((fyjSgR!y*lW^|s|}SL){$FDbG+ zrMC(_=sW(NC`CPgpiunIhWwWPY(sq#gpa8-Sn4No8cB?llMi03ruVT@uH_rN1fR39 zZ9;K_x*$T9@Iv~GR`=d6snxi6rl?KiR-bY$DJ-+WUgya`Co&H z*exkoL&B*pvy16a=yEipFr9aPgJN|560yc^jmtiXvLv-G(BQ{_A0x&`+v9wOw7 zzAI=-D;oHUi&vIG1*gN(s27*X^mtNF3xN5}Qgy3x%^KlT8TX#xWM7zWhMvCOf1Ljk zG-ccoXuX~if!5RELU;=9r9TcSfccf1DLcV@T>922z!S~T!e7Zxkwd_+%o`jP&!BXZ zbxl*nzC8<&nG=_5Fq`do4u)*$5jx)V=KdS@`SAf+^({(yWr0hA>NyodH5M|9k1DJK z$d1t8++QFenzQ=StgfDBjYodlEEkcYj4%3kv9H&+tW^Xqk;kQ;AYRnOV>WTaG)pgz zth$=gA`Hrs1aH_uy{5{IX|d5vR~*#p)F2V>SW+OrQb3rTr~RQazGg zOK;quRcrBq{#j`!!Dn2<+SB?DpG=*j{vsDomcqd(XvA#w{N>z(j|B-p&zpe*eQWH* z4K{sN1zlfj2!(Rf(l7L^0+fat1{^A6&a>B_7cS#4qkB(Y6d;(XhJoQFF^>8;;=JAKwovUu)6DWiH)tFeQ^M$ zbZF<_Y-B3FhpV~nZDw)E6l$@#6oVI-qIS?mz8{y)^7FY}^%@$`HwVWCfXsu8Z<`K= zcA#rXI0qil8_`Zug|Fwb5kV{0N(t?OmEXJVi1m&EvHm&;#l1kQ4je1hh_&wLD55~b z8JX-dor&!rpWcC!h`yDAvXZegwN0oxn@8ewGhwk+lvp(x^`RD;L1FZZ4jI+-;+Ekc z%m7e&euwNB?EFtJ)U*1mJq@SkMhqC;l3Dqy@}8%x!0o!-o`30uUa_k6Ad*-k=bc=o-%4T1Ar-=od8WKnX#axb$ zfZ{Y#Vv1<0IaC#sAZS{2%n9wym|xC?47@Pus(_??CI|H|(-mlMPp#?!p+mt@CN85#^HnR%3WE`N*otZYRVju}OZusl zi6JUI;|!=WM5GCon&1fjZFyizU~;a9((KaaI?_gvto9tYO7i1Hui%)R!q=k6pG{bE ziLydCR0acwBjcar0mHCmnols@N$@Yz{lz?~Yx=6i@5lS!(Eg*Nc|0ssRGns}&#DWK zH|uCZd54a@-ngw3MnFhXqw34&n@nB^YNv7mO21n1(mLkR>k4&whRD{`Pbk#NO6e61 z+#>-3gHXNi%^H3FgLFV3(0~&xKD~z)A#4r5$|1QZYb9!*{DKreF2!y8EGj!Wb26VC zU9HQp&uwRJdsIefaWB>MV6CEaX`eDVE9ib*fnY}Y_# zx0kV=Cax`^Zg#f+5P^-oqrlSnsLaMW1rmPicP_$Rf*(Y)pb=4<_5CKKihhv{|MRkk zBD8Ch0GN=JV!m!fyK{-Yh9EBH@G)JjGtT+rx07KV|n02B4X|=HNh3kOa{o zKaqES3k(P-EvgrmYnPs1{WF0v+#p)Z28<)c{dv0?R9^eWuBerKYzGXgDYS?1lfdRE z*?-VH(&%cFW?GoF0gjHv3x};p@)OW$#2OPu-va#)t!F%ffcg`5wR67aY~^7%P~2?5 zeF`;S#ymWLvpfb8jW25dWWNb>0QSD@W^R=(opSg%x`H7bo-c%qrq~vTZuDEOBsnEScPRpfUAHu=@`4_#voQSS`n3S% zGI(rtY02$#%o=*mKW zDv55yW$%*$v1pN9!`g!aCSd-&Ok9eBMf7Sb*TH5zbp>08Mlmb2thztmMf88a$E?bz zO@F9-zI%N9V~eH*!a1R(>BTXeF~V-vN#N2|c+h{q7_!gH=#QS@HiY3~wGo4(Y{gE5 zoR}N1gv(wXr=dl?MA_wOMgJl;KW&v+W2BLa4=M2>#q@0QCOuWt$~c1Z3X+Ge#W3dj zY+%YZ^sGRb38I3w3!4+PQ{~aH?HRg!DU15EuAeMmOFcl*j;rK@+=)G!Sz$Z<>l##H zS4xX|aLbWG01p%&Jx6ISiDXc?#7$ufW7Igfs(Dcq?FvzuC0Is` zTHd00^d`9MCuO5zXh~b{X-159C9^5ms;#)gu-}fk@%T-0%9(|2w&2T8miF0V-b3&>q{jtqVe?*( zleLm?1~E3ZtbQQQ(G9+T_>vwh9Y*C>`}=Fks`m6uoa{fbX<^9&D#fK|oL#(yHapIl z(nG4)GwG$?1~21p^_!PMbL=5nIX=co=Uip@EIEe6H>Xqm?C+<(Mj|(;#GkP!%8NO| z>inCuOdpevxBI#*<;jaNW%Q}WONRF^tjTp4sd4{4wd8wVN-&ueq*Wb3!Xd)! zK4raNJ69cVZZLwRQ`<8KstX?SoHz1cO>pcinfYC!kEP+;!&U(VT-fDAYgWG`tzZZ3 z9yS-Lo{VcGDMHk%EV0MsqmU1aHt_-VG+C{NiA>syKX_lehLoiS@zCBKVb3_lA<`p* zda=J{`c<*U_jT?xykZ^O>I^eGvq5{#|G}O+bS3|X>n1!r4c6_J6$&gpkA206#JfI1 zrr8nowO3;FMrVh~cQ4&vAIEz%)V|LQ($BUKM!6By1&1&1BwiSr&}rHyoq&cj2LH40 zKsH8aLaqnC+1YttzOENxy0Q1Dll=Wr!W$=~NnFj#tDDB6E3W1c&YNeY?#xOy8Vd;# z4*BR0GH<0vH_qsJtm1v;}UBXpKhHb?3KbL7adHxGOrm>~! zDqe3(v2R~%?>)6Mwp8xAhwi!1mB^y#1N*EkSa^oV(I9_Bw|>N8EryEm323~bh7!Mz zUhby>S}bFO=#rsH2DscJwpv1?ugffjzc5tevpU8m%yKORHNnO*@5?(YwI?vZ;7-&$ zXIJ?0l&+$we@j{~JGi$PWfwgt=5@oD+# z;*g~ywG{3FY<>y0I=4*jRiFrtCtY`$iUJWEo3#fhz!wzzk?si@{a+s#LNw~KFaR8=*SPW|V z%;tV0nqYV82r7no-uK=G+4?Vmq;rzaiwRM9i?wQxrlJsBS^?4Z{!h25r`SMRWF4i0 zlfrqx&db@(Yo(C+N_+8-;ekmXF|B)wR#+a;CNxdUruVYH11>L+fKBT=lTbvAcbOuJ z)SI<61-X42$Lmd}VDJ13C}o{K)@%7JE9P&|_jZ2Kv^y!c%2KwoT|IQNsUbr(dFG5} z$;O~`({)&o`nX=B>N$?lEGWcF!BX9EZW$Q)BM| z=w0Uh1_AC$UAlsb1U6hw5|4VXgG0RVie%5;BO!5fw6Ej+uA#ih5bt#i8@b;qhD!oa z^B1>{$=_EF3lNtXsOl4#_dJjy-UL^ z4%G?+9rPQ(JHrlNoV`NP%v3BI@5qRuVI!Ue?C)W+@6Q6zq=}@&Xn?7#jakPoszK!w z2=zU_Q*Uj4~#H_ z^ZxmKpvjYH{cKmgdFwPmyzBfuE>gG!k!{XK8g-Pojjb6^RtU&BOk7OknqFTiGgnl& zy;1HDj%Q2TMbnA`y2xd9<~hTsLLK_{|ZEnaGPJXA6wNfo}|mz8Lm={1qO zBHWuhiK#DD#54{i-3*vRynJH1sLE)-`xAD-Cb3_by_7A*$KF|;;MrC4{!={6C1B7R z@{YTzq<7l}wB_Kq>*;a!`2=}C4Uu)3E`N<}=T1^n;ataoT4;CAwho5_r)hDBj8(RxdiEq@&Y-cPNU-w+l@sWD&*d-@5p}%&)x>`>M zTzSePdmK}2C1zTZjkJw{paX>Ufqcr_mwL!uhs0gwDIjjDKmDoQjg9JV!5Lghf;%s< zb-S;bA@RJlLp^DT-B60l#x2=*5H2{gd%@V8Fc2>|98%+zV6(PHiVS<%mj(^=?*Q@4ZJzoBR zj}&$hLyLtgJVao5Ycu!h90*WaxtvMtfn^TyPNj#x`RDjsfxo9E zr1n_q=MoS`>W%C4m@4#$bNRvUlD6Hy*Tc#VP`Z9+a@Z+>@KhMt+pFi&(@v~3vEmhJ z4>N4??mdDCV`{t3-3f?w@RX(*^ovB7r5(D27r${{Q#EiEpctZb(z_$E`bt^p&$R+e z9GMxRAS(^YQ>1~Gsl(Yp2|#G}Pjx0Ro@I?Tvx!|oxRLil0P>~~k7{og_ClofvM zpr8+o_@ZKE(XCP*=Ac*{Qrn(dyA(8`qq>OrfjwzkE;6S|y#n~ELG+)(9y1GTQEY0Y zRFF7?AxK!pQRk-jVb1z@_%<&w^K|3)kV_P5L($>>alnF6-bEX^QT_+`r7;+|?q_t~ z69E}#XQAc$w%~G~(&gf;P>J_jK0bM_Y5>ondPdS3xu6%L+h@Uxf?rCi6hLzg_AX}+ z|EE*bf37%iI~U67_Oey1Y2qcsqG!&&5-UDja)*yM+!k<$Mw!bKkW>*s{P{GC<*H<* zs`}<(b*+AC0OsX*1M)nZYRuUvD3U(K!dcyhLLIoQ7&5;c z?nC_4@EDo({vv$xUh>Q|FJ!&$plDSVpgpG^QuF#Sp7lC%ylIKnBL1?i#B4XvVJd8?(n@r(&QH}Xhv@PrUOT`&nafo8 zUqg9u!+WLlqzhj4?;&)Sx+hWjqA}hQx=OL*!>vsAY3Qx{oQuxh_TehUFGhHjZ7{sLM~#~$S-EXAW@R?LSvW&1;&Bl-9s$Vp=Mk&yby_h@A*e_{W9~ww)jT* z<4Izl#ihoZX~b|L@Q4$uzALrKQODeGu=F+d?#FnY%~ zaep@vY?%&G(_!z|wsUK3_aE6wrx7NrIE5+WU>HPLqau#4){J2<=CI?7@t9;y zr{X5#<*c>YS*h*)uTXLb{#28ArI%tw1UY6FSu$`qkug~3-ArXboFblnZdyX!N-{Y! zQ*T|Kxot%zgTt1l&Xzfzn7z`2j0qClm^BV9z$rdKbKCp_9jPwJN=DzOb6k(D!ovu; zj1z#Aza&oSM@UNgrql)Lx0uQnOb7uff6ruFR4-6ZRg4WB%5;iTC{!KtJEI>oLOg!g zWtE`4;LI11l4;>7LyULS8CUTsa*)O#V)&2)8}15_Y>G{*z?X1Uz?09H^{0G0Q$_zI zbZn~protQKpe<2k=rrngk#W?&SH+b`Ela`k0kGWd#x>^Fv_hq)>}qaDNAYCPh~|7V z+r%s*(`(@$v|HsN=5gMV%hQ>2eq3i8_1*)vQ>U$d8Zjv7(ouDHyyxW1%&PV!byZ{L zTVdCvi4{q5Jf{m)3G!X69Z75fZdUb%v?E<~s#tJ=q8ObI%T*jo3iOhnM}J?awXN;?hDE8@o|*^XOr*W!Cs0(36pD_~jzs;x0o^q52 zFo2Gcd;=d`aZGP2UBxwIhCY+`+8wv?4$DZIR)`1P^}Hfyz5S~i40+)*mE@%*s0WyG z&ZK~Q+LfHO7vwz3{;WsBujN(~squ4rz=k6S$X32Ql7q=bL((7KRDb~pAsYh0oNjMo ziY5;!sX&sEL$v}}Ed?51Iz5R(mNVEzY`^2|Vjh|-1aIPVT)9F7R?o&8l6ZZ((2gKw zYUjSVu>+6siu(+j>?&Z<2spylAUB}?O372k8!K@pYo_rFO{l(0`)E`Ueaz(XV{4pi zLO+1)gtS!}S>At@cm*LDM#ZmF-2qk@spsQj+Vz^J@_Q-rfym8VONg~9w#4x52-?te zAoe8To`Ocut-B~l&0a3cor6?8@^l)!H4)ZDaf?~+NmxB*=y07xMzjNfJfeKz|Gk)d zNltt%pqpg>t{;<(Jx<-wqD}#wb|6w*mjc6yw{6X3`MN_I4sgTho2I263yL3)&;~&9 z-g7?BKfi@nksx^%c8}qU1+*Vz`}JF44z{ToiJEXXF_N+2<9%@maVtqqrh4>(oMf|i!{javzi%g(%oSZ@NO zlAAb9XA;d_-_si`e=;QXm-iO)(BO(9 zzro%%*v(6f4u|ri`jbk=3vw@;!sZhv&K1PX#7sn11h7QL;ueAUZO>8>Rv##=57(=b z?gG32O0*gw3{Qxq_8=)@z#VyvNzFVNmWqcGrLPrA*)u(myh*CwzeT^9@ef^M+TkM-H5^_(blyaw$pBQk z<`b0i2LexrjH|rE##j=KZD?RKJXA#k&Wtxwp`J7@h!W#YnQjtejZ;&(3t;y9Ii7%f z=vo(KB?rG+C;l_QtbSHL-`V4;+czoJYC1N=BhTMMD!y|xm+a#bBtM^IKIR;a1Zfw% zfa95au5qZ7jPWM9CGS^ffp?{#_iyfOAu8-UO>f>BZ!x8}SK8*-M4n&Nr^A5Vj#Z$8 z@ds6_Yc@{5OcAxWy!rUq#dzJf5tfU0+($S`}qnpKDm799aN$NUA!m5|cU74PGQQiEw+MM$%kcu?VO#c*!p$3N6FZY0e@WE0x`aj#k_)>YXoK7qgaSCb~_HY zjFkN-&mzmXjDF+0Xx3}$_^S7xKpq7x;3EFiDin5s%Skvoen(Au-mxTw1lWG=SZZ9N zhe|fGMqz|uPrfsT%l-BVRgZ%}#uTs&EJnNi)UYLA`HR?F0TPb0_7u4E^*6wf8Rbk4 z=(Rjk!`}~k5>Bc9oOUD)5e6rRq|tyfa^4CjvxVQ6wenwG4>o~dDJ&!d`%4!h4PWr- zm=3{C<%mQ%T~Ox-C`=GWAp_){w72du?tzeVA8}j1a#3yz{MuXFNYTDn`^GFT6}c$GUXZ1Gj(ocxy)nlHxR5);>*v`}eBO7F zqL6sJOIZn}j-d(6@dKp)F~sUC_h>33zE9pi=I=qMG#3o07Y3wR{(&#u(N`JwUUzk7 zZ_{Lyo^g3<(DtFAg9VFU%{Bs33FnN0cH3l!)uk&M^>?aeSQ-Dsu4Z-S6ewOx(VO_#Y#v4E zAMUoS_|_A@jsV~|=X315t~T%)auhf&L&%`p#Sx}@J{u;v5f9y$uEt7P4tReKX>V3z zUNhR7NDixrJfLJATSTXQdfM+2UJ+a^cVB&BC3U671tT}Yl9^Y|IrMxx!)Bh1fjig5 zT%I)+h?PN}9XI6l|Ea00DLGm1wGwR7>l~Bo3H~n*gfWWQWdRl;B}w2z65x~;nYi<;r>$3 z&o(vmnsyN|o!$Ui^M7^u2fk}6ac1hFxA$xBl9)BqnUGK}ud);wBhTf54GkO{2G^tz zR{__mHK61S8A32S4IGn(JY5d6TdM=e3r;(_J`GK~xg^Fd&%(9JO}Kd`fU1G(4&dH4 z9(YKcBd>>w@1{RPS~D(*>Fx{f&4_TsWX^Bt8tfyGZ{6IMe_zsL&u1IOZX&wS-zS+} zQ;X<@@=N`Jc;dNn9XrFwj2Z?OGkB=kcD<`O;O156q55B!FN(Cg>Z){MX4qdLFuk}T zwKjX3Ce_$xJF7zR>;2) zAZT)(5?mxie%mE_$Ei=zG=k~g6Z+LV^zaQx53oKs^vvJT%Jy$o8$6@HEb^1fRHiVE z*drFY|1@kP?}1VRfgZtiMR3uXz<7({bDZo}Y{HS^WPt1{5~FR*?qngXC(wDj73MWkLF1j|; z+hoop)2+2*1fnCnR(|prMr}5oYNoFIe9SjQ^2DpGC(qPDW$!|Ho@*lVk=O!2Hk0FA`phurS4q2@!=9G&6$Ehfq)|uc@2$!ck&P zt}#y?cdHQyS&-K(B5j5QV9aq!Z`I(m-{x(*UVVj5ad_f<2^<-`4bPZU1k3 zV;YzpidGH8`I+wisUCq%)Udfd9_B0c>p#Uk zPr?N8KGzR)aSoFU)^-`*&BX)fLZM2sAnr1wHpu`kVDkt>gRBiKv zlW*%uQR6NRb?_%jLGS6bSKU=dyz!LDun?qTMvgIYcH_+O3o>DI5-d#V=)<^AFPD;W zOm+#FTo6xw%`F>5$L`G>CWM~!4L{KyxMk_nrE3k>Tr3e_du`wqZcZDGjR!_Z2f~V5 zv&4jz*FmtqP0qj9h87aa-C#d8>>6*cbf^=;HJ3=D{f7(DANljpmR;&nqTG-+`r}18 z1k6)EI>y}X`e#o`n&&W+vF(MbC%*f&V9;ANx;yKwnbjLLUq)Lf#HqD;?8c-hBxaMa zy}VNHl&2WYfyMyk#yn&b;ZA`*m|*)R){_VcK@fnyjseR zx=h#G%mohEmC6KnkmLDz9?e0Y`rQDegeNIeI_d90Z%?&Gv;eT5gAmC>v+lTI$Q&Bk zAb~xYRDwVkpC%`;>0=vqh$}jcN1f4fr{eLT24$KC*zTm+-$Qb0lzGJi?ASN;o|qaO zJmRs2r3}}BWvFQM1z(CQWB^Sx{Dszx8*T*Mpc@y$M8YGR>B z*P*7ra)&X~IS8?X!UN7W&Vl=#>r*U=YWEtB0ibvU%=DDWzV09n(Jc2a|rM#4iQC;G>!s znrFQ|^ChS#81+Jkc7pYfx^_ipVe85>Yhk@=Q4az_ zegmdgXfD~7oWFAmqqTycD_bxS3M*}n!H1@vDt$TA5)YB*wJQr>sk#j+#HDHnl}M&yFtL&qW7K=5pEuE-k2(+{4&aTwm?%G1V}{Bj^S=?g5;BF zW88nVIS?q---olaY=u4Aih22}ocZUQ7XBjt@$*?Ou+hMDc#|tk&;{*Q#q%X8bB#}% z8Vqot`cJ@B2C345$4~3rr@Ld6KHpY4kwvK8= z)-T`fQX<(5mZ*tdw6eob!Ja6zK%(gh-FYM~AYcrsuL*fR==Qczw^z2qhx;>be~&=5 zs#%mWeeD$cYU3P0oz8TF_M-h>QInIXx?Aqhmy0sYtIo9Jha~=0ps7m@NI*?1K99=h zy1&9>dK}&{%^C|9^?UK#5Iw_IwMMu_n^~r%T^y^+qC#6l;TiKknkrB-?4MyWP~WqQaoXXDDBag}PWiR_-P z8T@DS?WHgs+w%i%3~MByfA*~;{T<0l8UCvn4u(JYGx~C^tLLZ`-JJqQ>87mmCx+1o zuPwg*Tx@@@4wUq_KWU-EBAXORB@ zV`{v)<>A-i&S&|;0~vwQE7~`U^&lT;5CTgT#b_3{@{WxCTO0K324}HJZd$+?{&8Lt z>|dxQH+LuDjuSJ@$%#rBrDaMziQpBIjR*MGa+Z=sw5_Jik3C;cOeSqzHLF6$$XXZnEMzN zS_#lf>6K(XSz|o7y7!3GTxY7W%5%|Ju|Ea7%S)pkD`X#cZ@qdNFeg@KJ-wa=_6Tn` z$b~Ob!dR}!FZ-41FVdEd+=m!;dhLiZyd6JQi~ENEjgE{+eng`}m>&}5*5J@vt?vc0In;>gp@v&^w;9!8d3k}wQu}$*VDH}&E(!y} zv70uPK*?08L&c~|Ck@k~tPKxWn$=>Qr6hkn23O7p$z0KFVHbPh0(VkBgBLc}5)mjX zG0rm$-1B&uy_{-V2P}MsU>dzqp{E7;`J2x1EgC`XrYtTPG|qY(niu=*VBep(L zdGPkTEd?cDNBY`X$Yh2qGUc%e27mTVQrU*)8tqXCD$D8{xKH|M)$O?I*9OkaVP@Lo zp|XF#Duv#|S6!k<2NvvD^V=$!<0;`?C@zaVIjur^>82N7{6X${|4eR%Qx)|Zx_(|3 zw4U&mk-Yn8Wa<`wp)3|(M8yu>ZRMbl-b9Ie=-#gTvjGGar%hISwK97=C-m{6vcK{E zri6iuWxg*HTDBtXNCtMIT7)2IPC}I1T%XWuM|+~>B2CC@zbWt^p1Y)AUiewSzDdDv z3*s+GU&ba>U#5GG#=YI%6eG>&_Y$cBOw|dFZp8>h zRCBT*kio$R2ho6QCA>*?Z&BxPTPi??Knm40f=62_K*OTF$rN9xKW76SZ)$Bj! zY=@2-Hm)Pe0Sz*Ua*o(6#{WT6hVbK?T8Xyc;?sI$H3SVBkyIR45O<@wFe4CepEy8I zZ+uAyjcW_Mzh+(@%(UFq5w=*2vE>3yBjI85J>BCnb*rWyD_Vu4KOtUxb^%5Y)lQNt zBdYsPWA)ElUMZ}c51AAOn;i@i_r|T6z1&tr^4nlgP7hl80wZR#yjKS{MZyn-#!I}> zzgo>w@7ZJ>CTz|vxOm@F4EX177dYHe?I^l&<09{1ku%k8POf3!k`4e1`&2B$?HI7g z4mOpyt+e#sF_mjml_UP9oD+zCcXlHoV|qSEAzf}LL*?e}cu79(bjylq2#DG~ZUTpc zh(2CNP@9c!QGooa_YO>SzC64(C#e$}NwecuzB;xdfcU52con~oHe8%yp=HgB#Yx!0g68*_4-vne|*?MsN_qMaDyPb<>-m&d5OtpJli zac;#n-`}!O4_j%O4Q*jJo9L8e~XM*=GZph(dw2Tevz+MVu@N38Ak$62?U=d7Gkn+1Vjv4F-t3p4YS-I zwl>BVmY+{Ms^>ob2d*{uKf<(}X1J7b=;nxO{S|a6>wOM2>)B\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output 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-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark 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=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260521/20260521054001-Diff-Config.rsc b/MikroMaster/history/20260521/20260521054001-Diff-Config.rsc new file mode 100644 index 0000000..5cf7e1b --- /dev/null +++ b/MikroMaster/history/20260521/20260521054001-Diff-Config.rsc @@ -0,0 +1,4 @@ +27c27 +< # channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +--- +> # channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding -- 2.52.0