From b8b290049c5cae77419f1a3db13501a15abef6d3 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 1 Jun 2026 23:00:14 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 01 23:00:14. --- .../20260601/20260601230002-Binary.backup | Bin 0 -> 259328 bytes .../20260601/20260601230002-Config.rsc | 3464 +++++++++++++++++ .../20260601/20260601230002-Diff-Config.rsc | 8 + 3 files changed, 3472 insertions(+) create mode 100644 MikroMaster/20260601/20260601230002-Binary.backup create mode 100644 MikroMaster/20260601/20260601230002-Config.rsc create mode 100644 MikroMaster/history/20260601/20260601230002-Diff-Config.rsc diff --git a/MikroMaster/20260601/20260601230002-Binary.backup b/MikroMaster/20260601/20260601230002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d34933590b4a9fc2bba3f7bb41a83954345d7855 GIT binary patch literal 259328 zcmV+aKLEh*sF8C3^#cG}JL(@eQPP!Ea$R_S!Jz&C000O80004Z`SAPzLk=j~PbkEV zL^sc&8^?jLAh`Osw%m}Oo~J`8SXDCmT02=WbJ%im;Cy-c*Vl@H`_5>UyeZJwP<9>3 z-^<5>FF^Q`7gFKUhmf!HD6FNLWFJG+`f zH#*u+8Bs7ZgTOo{Rl&YoSu@?$QE>ejC{Ub)rFT)+a>mq4LrI{1zYN$gw6@(Vk4Nr&j;x|Ctw}2e7c-b+9Dpe>yS7glmDb!%Z+3 z{esiyC0EwFH%+%m7oCX|7qTB-EPr&g;5&lTg-cNB829>(Ogzt-5%7VTby6K(&o|jewI_(gOmsS5|swHzJGYzZKWG^RT<%isi`KXD$xf7lU z(~x5}-Lb74ED30o_RpscoE8`dC#Gie%T)*_!DGqk5s52jSC_51J$7O)LpmyUY|ilB z-hME+hMHC~v>O4Aqr($@PBkDVI)vG=5*ER~NyJjUZg^+y_OMX3OaFa0;)wX-KK?hP{jtvnR z(Nx1&&TZut&OAIdMpSi%76x`vjo$vEcyK_|s^O>AYSOQ0DzkV=xzosWx?0$Bj&BSb z$57jAY7XVfIOx2Md8M&%ZlFtK<}*BYx@TPMIRPJmX@Kc0O22QXTXWu&+%7%y95{kP z^kiKX*60Jo9Oix`|GBT!OUlokPSltkyrE^7ish>aURd23QJNZ_n6xU|9%ODbC0B6* zlLRt!wCC|$OzEC>6&Z<(JNoG0Gf%RQ6o7e{471@pgn{|aDs!aoszgB{DK{(mti1ac zK)Pg#l1rifQ%fM|ZL2quEL*tFAM>}D{+S4Wrj5H97A{K=k*TWG|GFXzN@^93h}X)JPYCmKk*R5Nq#*A!RPy-b=Kny*t)Na$FS zo9v#JIPFgGjM;R>ebYL2TS&n+J|kj zqQ7FK7>6d?{a_>q6en?U4?{7At%=}eL259GCaqk)9C{2-@lX6GfjhfdDyL-&<)+fs zFcF%i0qh9T$nx=$RDKf$$nR)T)ZQFlI*~nxXmo6JBIGmM4Y4|_nQ&J`ZmGrw#l2_i zw|P99P5bbZPq@ZEyE=}m=ldOnMfna5IY%Ba{}GLc*^M-9Afw{SaL8{b8TSe7aH8~G zB7T1r1sF1?I02hRfAW$u7(tBA(B7a2Nx;0R36H`i2h&>lp-s_&4FJEXR=aNlN<^X(35eR6`I~@vLj0HLAC_uVj_aOz&<57 za2K>meDQ*|VT&_G+b!GIc|aF=*u$*B>xTHj&tN2e1<~sbnIbvu)q%#A2RjYn?+9g}QLcS&QJcV#y4$UPVWJHrZDnRLf(90SQ?x&&C`lj` zolaGmvyT(v$MifW2IIMxJnXWTBVP;77VU;lI}ki9&NgwE{Weh2!%jKaEb!zVoDYDh z#6Y0std_lkR~GJn4`;0zIRKY<rfS@w^YGrLvZfLh3ea6JN}mokQ} zkpQ%t~FSR+YHQ_D_fJnGAQjOxv#vVjWt#S zQlI@k=-d{A8B>0+pU!CV`fe`d7b1Y1ox18qu9<#@}jVYV5*lrOZuyUYgJ0D@4^XW2XWea`nz)N4r0}*XVw*}tIpR4`# z!-W<9zCNS#i;^E=bryXJCa8FoPn<4wHyLtD#Am77PgQhr&fzl*nS0^OmG!rYx?3R| z%r}nn-dY98lPq%8Uyc?YD)XK(%=^?QFjykM#Ac*jr=Y;iXZn^ngcTz$Y%@lxL!*}1 zktkT#%A^n;9C_@7@?Q=2%YNNlwJTJn0li;AsKqLs61gXTfR6KDe3{AkqoU~N=QaLs z1=fK7{-PjtYpP47Tk^My^8QyOp5H%?3SyHf<@ENa=GlH}NO^9}Kl}i!(ny}364z-{ zL1btX$SG0;hHR|;Yri?9^wPMK*Q%RYeUImhW7XnA)74Bh7LU6$a%a{fch7Bh)|Z3} z6( z&c6DR3zVr+ZXE4I?BAv!d!*U|-&sCi0~1%*t%`zAh|rhLj_JMxR?0U1m(-`%ptTkK z(@E@}HvAU$uw4oc#04D*KPbmlF$_jwwIhHtTH?rENoJ$Hzx z^3aTW)^yoO2T`D_cZ6a-!qXF`2L!o7w!soGehkp+|10OgCgDOV-(W-a?4s zC&$;c@~=m;NHhAkUdKOchlW2RDOer-ilH9b3S-nnlLnxb^-B7$=9wSae}6c-@qjJT zYRI9%D9qx1%BYcwMU^z{`CVAQ8ARKf4s9%0-`P6txaP}WV->k1ar&Q>*8n4uKBGQ- zb3Ud%{+n)>e#f#3KPD~Gi#`0WjTzP>C;{`fw3gd0vc>5>m?L_xQ9$_PDz~nk!rr?2 zYd8DOWbK|9bZy02D&w-&oxZfc`R6@Bk#rl~4t!PMKRjnG$DN|K@DM`o01_qY1y26a zz0_kz?~B3YNas1C&M>_sQ)DR+>A1W|P>~u2AAE4r*;IS+3>ULxmsXPL-&)Z^R z{H(BZ;hH(3B^IK3co>&*eDnpg@qY6rwVig>EdD(X7?t4wTIKrL&pw-5L!fys%Hbyt zh^$4)#x(oMb_cPdI%z@>oz=&NW}P_UROUU-4rG3F)dCATga<>JTz{76Y(SX*lmio@ za++mS3dpI_N~_TAem7;{Z|vM{Pa_&(3xm>S;>*Ilqp8Z|){V<+&og>%2l-7~B}M>F zy$xq=Y7m;2A)}u`G@g)?o@YAug*Xo#J3dRe9!P9Qqr3d4YJwcX-H_Gi5>iCsT*DT>KPZcsjr0i z1CU-4pJq`jn3dU*yHc=|>M)Zx0lC;bcA1FPruztDv}N~6VQ%iKX57l>lf%pCC<|*U zjucK#Lr~+z6Bc8Rw-vfTB2?%JFtb?@OQUI^wa0}1$m4O^KfBZA95v)Oy_PQO3MgzO zLv`=?LOnnwAf_(rZ%4Jxldc+;7~9ux1Z&r_c|xaM8(5C1GWdE@4u^?GJ)E~Wm8xw) zh?rJD=-I=L{Wlkm>OijRnFXtUBCi8V4@U84+5)mXO4kL~{<>mk40pdXqWxuLu~LGW zODq?70GyCL$wLuUm_b?Bw$)UtZbMxS1sEf*hnz8yU<8218B<3C=?NBb-sZionAK!w z5zpRY5vPfGJs-hVDhP5lw{cnqK5gellvbpcvF799NLkuLv{*>Escl3Ui0dOHdG2?r zYYF_fWpNP;CqVbmdkGs)V$2OGbref5z@5kcgHO_Lb4bv{c5^aDV^7->cqM^QL!931 z5uuio^8ZoXIgJf8Tjsy(|DHno$OrH19&=}T1X^93*=Hl(2TIq+n7h0>0T?ZY>U4;8 zjgt?tgIQBY#}QPx^bk~0GZ)0Zva3nOb#m1k4-Hos@c5wiWSZnF_Od-?DH8p$0cm9F zB+DUu307e`RU!}G82--YyGtC*^@|nb0$oY@+)5A`Vym>o;tcw)Tt);%d*AxT3gkp#Nk$-uxc)P#DO zIFRc|FHsL~u<&HF*k!4%f+I5qpJq=y*djXg<-|~@(Y?xKokbKy=z1L9awMB zL(44JIxCF2r7;e~lsg<&a*frDFb56e>O=OT#1adUS~uktGtgwt(xi4_UzO@ZBjIHq z!@gQuOd!NflQl#Lt7fsk`mI`o^kf1*PhIOOEcW6#r3EX{!6<7z(yT&bYuZ#9^+aBa zx_Pc~f@ktyuuJ+(`!)bm;L^9%=LSv>#qXZOC@elisIw9i_5t41@b4G-_X(wBq`@;y z=P$#UE4MFETU-wMeQiH z<;*Q4+r!X$N94}gC(d)WP1-OCSpmv1NA)BG?IFgbtPWf0`a<64v1u+7I6TLa=$Iu$ zc@iruK5o>pwPIEEazxb>0df*UFY-GNn_yeIXp;w!ZKNvSH*E2Y>$VhVXibP~W$)){ zbzg>eipjCFab4YeVwRp-dJA06#i{cqz$j_O+AQGu2%7CEA^}g?MzymLiP3U;nn;QBLD33BsfL;W zNqzy#3ulEmA6gKLbUh#$R!MXM{kL5vqayE=I^MC7hFP8-x(=@{tR`@UOtQ0D5Jk&2 zIhG%B4adf^=FgqdVj(-x9DiH2U?#7<_pV3sFK}+4tN!F^>Z|CiSr_z)*TBJ(cq6BNRHiK}_7M-GEqzf?xP%c;`H2Hrd<0~VEDJeIlF$NMCb&w9< zR4Ga_W$<9G6>(vly*!pwzCl!K6KU6%%=X9^@*^^hybj{dCz$gYJaS3lax(E?8q*}2CdQ4cA zgj}SN2@*m7z^?$l3nvl;XLTqh^C^Zw35zQFWEJgz2)TQ3m}3=nYEKoq&euF`YooHXv+fyWkC9g)hEnzCAANb0{`4w&~g=mPqSG(X3gc zV=S+=DflfL4n+89Y+YFqVo#a+fiG~>VQP=i{aX20NMbcGS5+=D#a~>VJaVi7v$2va zh#0d1rQ0(T?-!UjxuBP(>IRqMSZbya{(JHC_&W302wk7E*gPE|XG?tM8z~#k*!3FA z^D&aDTQ1m#C({%d*D)0y1&C6kmx4+o6laKS3@{OCh^lQAmOZe$(&%e)K`dK3Yz=|p zyjix&J6LK17>NgznNqRP4|CEM2=`o)xnM}7Tc(13V(UufPiQ>&QSOt`~ zDWWVr)fU)~g}?F(fHWDY%rx3)Lm?^3Q%u6%r0fTxB;lVXpEatYr6p2P zyZhj1bB8Em)uROyiMr?EDdguH)4%VL^BQ5;5U{u3Thbc>ZyUsxC8Ki$v$7nVLnrxL z(xC`s_2Z2%ZQtmR7ou{5r!t(BBvEIb|9FK(mB~A@;?C7ZVG9)yfKPYJ#)BQW5f(;PC z7Q@|3NXKK5Rq5=9kTvc5eNfezpxa{Y8eM5t*~rk0G9#AcmGzJ}M9D^!d+0~q9|Z4k zGe(F2%R?V&*UIsaLTp6g#>5Dqp)}owLVM3qKc;gK2>yPD&7ff;mJS;jdp8Mu6-(y| zoj*3=-U!d}_eSXf;6tBa9Q+`3j!TQ*eKi*sBrc!A-e=F}!lzQ5W7!PxmigYUjG1K~ zRW=3uZ%PffFQY;f>Sl4~LR!Jk1Pjx3mR3b4gad?t*Yhw*DV?o12{2_p#UL{=qCcW4 z)#FV2Tn$nZxkhuTp4cvq6anq93wCUcjz@E!nxF-p_?0gN{xH8Q5*eIoH~zt6*H+e! z?P9;~7M7dc2&T*Su4{ij7(S-r?}9hx8+P*WI~84FALu1(?X_IGXFZ;8h)G$^@ERilS+A2iQk62wZK_mrw2XEme`Cb|UJ+6@ zwN*aqj!uAP&e@3rFC}is5aXdM=W%P;5$nPXB)_F^=LFr%xQcP5i{RUW~%F-_g z-%ozW^EZ|Qi3#ekN<$;uAWTphQ$R;)A|cP|IfRG~J~6bKXW=q)qeyd=zr32eDD9JH z;7yiv;WzP{e6@HFbwNIfWNVqe`i7K~uYMCPY#B$XiNT}pIg!Pc$!~SKaJeenXj=Yk zz$SpO^N>zrKJDo+{_dYk{g3`Gb+8{=e7#pESbT=3M{~}d!hTL(uyKE;=k<0Yh*n-| z39)grR%cKMxK)C(VJr)3K2C=#+`BcP#E(SrV#2DyMUMF2AnBrh@H!DKZWLjg`7$o- z170Aq{zkbRb!%jJW~r+6d0=dr<((CNJb0@&wAsF!@RtRA&AxMe%X@xZLWyb}qBF2C zp4E4*f45I9Mp(8I=)D3r1p6z?BbZR8s5U32c9tlvB4DRDA{sLanh7Fygi-P$%MbR) zk75L#kR_6dtj82g*cRv7Hn9>1{Jl3a@(KBur}LRS%63y+F6)2kBzsvJ#4GP}m7* zmCckp>IrNJ`$5|#GsAxLWV2v1j4_L-Ien?-u)?e%Xj1->LU>;2DR?leV(j>>mEM1} zCBkyJ@H(8=_HQYmelJq0(@lEKRlRjoYlkL!Mbz0I@O?~ibvPW^vW<#A9N%fk8c~3sE;V&8<=%kTR z?}su>o8ozj+o}qgLVzr^FY+l9?^9*L-O;sF2CBIHoIac1mtdpn%L4jv70X#f;*kM8 zUo=sl)Q;-XjLW@MkW7SmJdLmg(74ElypMO-d^?tN3>RgiKb44_>*kGZ@>>A zRArKnVRe%z>zMKq{9jbVj=#(!Wk%aPp>eAyYcLOYNIB=GygJw)b--w_WW*+B?u5r_ zGc~~#UHa;vrROP4aH-^rH!cc@UuLwWhn{A`VK1wY*ZF*`l}jVJ2>dRA*`dx%jd&O6 z=pRaFr&X2S>^eyLar@#B;Qu3tJm2=|N`6srO$Oz9dv-JdGp|3I3s z5;iBkXKSkAaNmU(LWA0WFYs5b%h-S;BafGbOK>@R>myad>8!B3XWl>}VGS0VBM;;8 z-hfKPlVBNpg~53mE)WwKDTEg@s`C?SV#HzUR!DaqP8}qCR~%FBsb6#vVgN}|6smEl zHeQXM_3VF-hDx^)NCwjisdV$od*C0Z0Z0-ZeM`M(raL^o(ilz>G=oLU#d35O42@Ie zp2_%UA!>RvaI1}7`G-qCyEqPe<%1buRsIQvN@_IF!*+k}A+OQVtNLIuO!(%8HS!*15mWXqJ3lP-79Xn8l&;-K!93iQ88_R@V^P-VGRyR=f$1)%H={G zlR=LADyue(i&EURG_sqOHPJYw8kOVvz#=L1*@EUwyxsBLV8A)@=1En6Qqgm+*^ZWm zgUiHf8fgrJWAYQiu)`P3xZh~$HS8Ek#aAgK>BYmgT^@Q*Sbg@VyQ$5&20JX*@CL&M}koH|hybM_jhSonC3{&z%{U7=L&vVfH-N8?iq zc|h^%#1gl(#m-|IunqcMUp=n$-v5bI6HDKDcbedlOU;ei($| z6z}Y}VMnEtllJvhh3yE%?Ez+03wLmfZjQm4x}8Rm>ED>>>!Pd5jrvuMfB@1c{@b~{B=R{}-G6TlhnZ&LS35>cUdNIV-K z!rSayj4Js2RIu#s`bP?86$VXcjuh39BDUI-FbzbkQtAWfb9On$%5$#mbh5i>q*lrG zP$>Vc4e)ig7zps%Iy){vRH0ZuuA)?!^g%zjWQqz#y1WN60a6(meDIs_<&gp%oRu)Y zc}x278-lq2N*0*aSf(q&Lu2ba4BRusLDBIPOy?y@T;Y1qWHrq9pnjW2b$duySo*fO(H-dP&e1@8wy4<4T z_--8fSD6XXD4r(88*v9oSq}12m#l`*qdzLcqVmAg(?zv2P2P_*fn3I_*pel>dPNE+ zJ!3-{8GYF=;*C>nl5fSS&`9%#6PeXl#kj(E7ykUitXO>qJcWVW*L;U$#&omLAi9}; zZSg3lsSkQ6{YWsAO4vMpn?sif=MM!6*h0$EM}v>(=OK9YH?KVTr4ByzFquz<#Duu;wD_R_3;>nak#x_I;J*=2kRKFaEQh zR%86zl^~eUIs<{Qpu|^m_=2%n5*A6XS22R3Y@EA9OTq+Yi1kgM4-t`NM&)q z$(&357wf=qUIaQ|#rP)+F`bvRKdj(=(L2@i@L5OPI-dH9uYKe+^lYSoIm(|UkmFJ` z)F2f>Ums6Y9Poa~*7i|0sbEq}e~}!tQ+&k8hC}kE*f}LOmMghv5!i1FifGnWj1R;3 z<%V{+WTj`mt^$2)EyIx1Ik%*6-J`=#ui%@(h&h5Vf+XzKuTJ@(;b7{(kk7>KIT8)E_ zuP4D8MaFT*MtI{pPyZ79bngh`><^E+mEnjrqpGbbH*UsqxU!PS^4hYBv7tDJ%>Kt! z?2??vt2N9h`lYp6V4tB<2T~L9V2hx&7n4^r5(h3_4^G$}In*BN=sEGbAk*y8QR2n~ z;JDjuXOg`!AlE{({7U9tpl^~TZ|Rjw;P$I&jR6 z+0w=s;`^0r;B8`He|h^SOs=&?7x^*8*@ z?3id8g7j#jU+1g`U$sbM>!lA#2nX6SJ4$h+z@(+~a-Iy!ceJSN-)pK$5rtkYYtY*C zFRNck)kGOP;Pp}A0~&$Tz*3T=N-gxBt@%@djs&asRfq8AcuS4meX`%{^$RJqNX0WF z4(5hAs*6i5*6ea_LBvaNg|Y+z$$q5TV0BtMCx$`~hHCb+E>$R37}*mlRu%w2`@1XVE<<5+_BfzNp=btt z{LcYaxnCX>7Vvctf?dZ$31_IaP#f4YE&!8bt#v!xi9*Ld7^_gs<)>QsnRB4+6~rV7sVJ`5Byg!q)D@7xsk5U@S~YfAIa_8l z%YX1|Dbh{%kQuUe^#m8P5e2Zn7_K9)iMk@2J$EG?8}E|y zPkfQi^F2~5`8ARqEClxBh*XQ=gtpe`6r8l793tI4WmtyZJ&jDLG%7yI(c1 zDt=hoWGL~20b;rJs_0}Nfb&o9TB>{-@D?Rl^bP+_aH)LDYrs7Ifg_|O0Ozu6Y2mFr zIF*UhH#p3L_(XWsF7?jdCqWR?0|WhIW-(R!Hu^LwBbSJm-n&$1VrAxPCUVGP(Fqe2 zg$|?vMt+s%h<7?g`xT+DN|JdTiS`I)k^uf(vM zFiLrXMx8wRf1S$rW_4M1Ek6)p>9V^@uqeyCj5fm{&lGeJ#>l(IiyM*SMVA<1V7@b< zW4Y_e=^Vcb(N#sa$jK{lvF&E*Bkn3hh?DL3?zww}J`35clS$RnnJ#9Q?q^VipbQ@* zm6JL|&8f)<$BI%VG8rmQg4eHeq&Yn)Fu;QYpbV6*MrQf%AjTikbV%2E38n~e0r&KZ zw~rHFekg@qGlxKauS&d-?HglczuhXmX0-t_OEUG+i{czLPeidili6fF=|!NbYsi7p83=W-Fmqju4suj9WAb zvlmN^E-F|_M0iUMavi0rVcm^p+$2`NV4(kGXfFML&<3} zYP^QGHR?!}JpYdbZ8@<$O{m#JpZHs)@{{)*PyJ*5fhrEN2oqF}Ner|8DJ9^qSR%`O&1bEq2p$>T z)W(>(=@5RoB9Hna^`dz@N`KNB8p~5iwz&JdHj5w19;T;WoXjmzFO9w` zm|JW*4NW#aJd!SM>G2A?^tIu{z`|a+w1+o1R8nuxxfDr%#{GYwA6}S0DS_pZCuB8H zF2@9)GkA?Zlo2MmqRI;c(~6Ll8vEt6!JJ|@?F;Y|#z58Hl)z{EHuk?rNJNj{)ETQf zxME$qQrD$gUfUqG1r{y|FTn*~3=5QZJX6B(6h)6lW{|HI*;1^Ou}qs?@C<_5>fLoN zb_t`7DS>@OZ{FwInLCl7{p9*!!=P2_>{d;#A8r$ex5!fUA3DFfZ0u{3Q8mKWGejMf zS+AM0ryYRx339wRZ>nHwH2MOu;w(%IDy#24$Z}vZ`Yb>>m-rV#aYt!N3zQr5^X_xA z;1wdlTafFeAk>k@qB5P3{J5Od<|Pj$Pryt=v5-somjln8OB6{*!GavW!^o*Jc;Oo?$0pU zzR*Jl-2Mca-(Ll3Qc$T(Dz+A#wNyQipwNpzAMOkzin55Zo8;Xk(2ZrO)E%%Jt#)o` z%T0UNKh7p+{9_&gOZW3RMaYTfCjB$cL~flDBUGXZ5N~mlbi*+J=!Q6Q_uWD*RuEO)rx} zms1T$wq$67&-ii*K{EvfE&T~>Mt}=&iQ3eAB(k8za%Q+S7DeR;`r@d9ZLu(qxF%OEwzTEb0 zG)v}vPwxTFPzpjK(`VaCb;+?UA5CIF`!)wi1L+n58m&9y`L{6-s8YpSvn|a8GKb1I zJ9yVteD`Wa%h=yKp*1+9y_sV)FqHRiQa%JLfX4)I5ygm?J!Vc~7JQ5NveUfm&X^FN z8~hu4H1XN?9>}BO{2K`H!$ zhdgl4Cyk}YsJqDpK51iXi{!uwoW~B(GYy$hiIeZz0<3K3YyD`v?D_r)#?H7c60}ggX3yNa7j@pBb0CUuFjWM9k7is)Kxti>J@Sm z8zbqCS?Sfj-3@@x$?YP^TX`6KNUdH+j4(q5v^;`kQ1J`6sigB?uJY(&w0$s zAs7Q#3f+m?B^Dy6DO#+OtB>noCt&f*M50 zN+|#yd?A9#?{RJqD7-+DJ{rII`i#9s;b%!?Vk3cCBNyP=$1-9UKD!gw{R6W*&=*5` zvAz628RwJuBmLDrme^>bbz~d`PUQ)`m?aQAEr70`>qrwFhgYz z!7_=*lpzC0eUQQJ$s5n1c4-I%EH^;|7^G%5n<4yI7dL>F@i}#sRnhR<(<4$A*xgLh zq_Lq~E&*p5)!<)EF2hPYzQL(&m@IomM~r*+*d(Wi-(vIFVR>~%TN7XYeamDhwSa7J zw19shV@}c_Q2%XPRXPx1^H>4_6c*Hq6>^dTj~uF*>XgYr#kq<*m_~9`FP~VzbVX>RSAR_ ztQ5;&^<5&ba6?V|dzjYkF{SLv%uS`mWgO~sL_6~3bnJlTB=pb^ngU9qksq{@If7(8 zua=erq)U|_ry{Y@qOk@Tlno8dbi8&Ym4~MA#J+3a0srIU`JsIz_tAoa`y>IL_0T_s zwhtpF5m}7|UjkiY*ixQq;BM4i$Pqu`xD%~jQ^gG=eb+-Fx#VO`aqlQ<9d)qYEE8wF=aXNVX11J75Ipe`QJDDgB zDSq=?-c)tL@>IC*DkcNK+NoU<<%XdDRcuF_c%Hit0ni71h=ddC_8Zt!4$Z+uZil$8otQ| zLQY1f71QAOj^&|@TK>`S^hGt>@|uC=rPyhl7TDZ)m6u^yYfoZv6LGQu0OPyEYU5?S zNZYBSF811-pFz@!m|TDzmaf{NXkgG}f*<;Ze3z0%nXnHe6+2{+@C*I=-wma%_L(h2 zTG=gQdHU*Ux^4$Z5v*IFzgRoUiy6I%_Z{l^x{v zu8BjE%eRRNs*y*oJgoal{WufJ9kPqfFKi;}g7j>b4MhWXuyRWD5ivZ&>~;1v0c6m3 z4yM$UNM5rjz>V>IhmaG+%Bcqk!>;r^qw+yk_Db;#J)e}B`$u69N>W>TA6WmB)tqb4 ztkmM-p0Fq=kGLO9Ou${*$waCMV^$5tvW||3zmkonD>u6~V7NmK?~0aTVic?d%L;dP zSSwPKzE==7cVYdSya9WV(bSrV&Q4ccGS(xzak#F~8NRA8#M!K69C(n#u^^x`r>*od z0tq|*iSs@wM%D(n)Szsw3RZ?2OqQIEppzoSz*BEPX#{_@AU8f5O@bT9SSiR*YMnYS zT5@gSSxMz-5j(^KU+;OY3LI?2OdP2$L_ z4gQ*bImlx!-Ohrg7er`@*p=ymcq9pmElgG@g+&=l(+5g^^%#(r&+C@4{o$BNwW|Li zlqI;HvTr>t*qK<@yJ3nRu7;NipC z6wy3%$&tQ(r=-;zLz>V0+~ScB5ZLKmx!Z@}W^tXw$Z?+>5Hl$5Dts30+Nq$iB4{rY zkllb#nD24c?dgda1RAGW_QzM=eF|LRlY*70^)fn5JBwzxT zFlC2A#|!rt3B&zQy3#XJxqEohi@PlSFum+Q$*O2_ceNNTWbYsYT!~>o5!PFc--s(j zn^2%0KXp!M9g;-4r1|Q;r2#y(Yt7>3Obtt;F{=9Uidg#5EvJytx{1-Y4aa({-82ao zJApL0%2Fyl^}s|vh{xiAvtA0|ap^yPYuJ&&&@}1^zWZm(ECl9I^!ffT~ zs-YYx);F~!yhNg|r*4E8;3|XE?p878|C+|aTow%{cNtn@eDElt3`|{10Tcdb6yjL4 zTAjH{6Pp+;=E(&}CE3_vBE!&CNm3!-**oKfkEmmvxPOrjbEfP`y2w!NVbXO)a)8UT{>+Q~C^S;so8wUwtV|*T9vDcl5Kn;uc1ROP^b)M)lHKlZsTkr{jR>RYY7p85 zq%|70KyAmkM)s0wL$SK5-#=+=O05y~J1b`3yBMRXCWK#ZrEY?$i|5wr6(KSK?d(Ww zT=#2W4ys-ndSx&rQANWa)#8I)>qooNCGbjIaq4D0bCes0?xqvoZHa_)-{qzM6E>nC z0x@@DI4KcY&a5P^(UgpCCyKt4R{Mn5q7o;+ra1e?lhS1QpCm0_c7a+YA=r9}VuQZ3fgj^l#7$l@RwL8SDAuQk*Yf740 zXYt$;aPYEbK%1lX=eBhz_ew5eDV{^`Gu3d<7AyY)ZdX;&L0M)Y4IDsgVErii0uhF8 z`^#1g@H`FBQkrjGl3mKuKytW|W?-$C%X$784h0H@6_KKFK$VrvglTd*utW?$uDlCD zOsfu8Cf=iC)@e*(1U9~&Wk9+%QVL>tw?iPUKGN})Mkf5`-Ki=_5K!LqY<-Cd!=vH8 zSIQ=SPEXD0Dgm0h@YC`#JDdvw{B<$N+YsI){ap-!z+rt;5p`g2tt?GiG#PqLya=a4 zq6rDb&T9_@5ZrlD%8e0#93=Kqvi{3ZNrpBi2unm|pI-pmqEji;EqhaG%E7rsc=|kN z;R+Jt9Eh=(XX;#oR3ELVIS=$R)MZQKs@eC0cd|>^o3C$Hu=*^B_mB4U5Q>S!s(TiHw4tQwXKI) z+(}^dmguJ8v{Y31_j;(t-A6etivl5PSCpteb@4E;H-$X%rgEsD= zA{)#QFmVHZltI~P&JB(5zhn`&p1*<@j=7BUlh5wxpkaUM_e*Y+?EOWP9onVj`XtWX zBh9EPx7!9ceoMdPQxuTjBFNNeR#A|6PfbY&eld`|3ulaX4Erk8onW-e&tbRella5X z#Nj)q)cR?hhcpN5pNyKQQ8Ani0@OvL9YJB%3gl19f@`rfT}|t)A}ANQ5rtW&sRLlS z-K33FdUWbza7&|68XRoQkj3+(Ic+zkL}3>iuxkj+d`PU7DmJp24r6j$0r02P=WrfT zc(0jK{n5iOnlAwVKLEg8IH!Im7+_drkGZzPUmhAIlgZ%3bM&{oUtE0I1V!Dpd#e(D zC#`cw{ow+sp9RK+=@8(n1=H@K&t{HQ#uIQ9QEL@f>>fxzf@mG$n=kqaD&rgStF7o0 z*{iM%HkX$iNmBnhSK9m&djwH?8om~VGUu#$Yr(4*g$$-WiNB-)bF$l|z#Q&{lVvJJ z&6}m>Ab~6(e+u-YTXOE%<{`L69IxoP@!_O{8>1?FJ%v#&Gm3F<)^qsJGdag&W9}4y zqFuNfT~j=@N3Jj$u?(Y?Mgr>x6M}5?jZ8{9kty+22j4zbHh+RW69jD*PD8tG?*`5! zT(Zddocnf1USq=2-P-cP4vTx5YgG0eN$WiYW~CqWg1hAIgK2n(WVIco$AP8z4q z+!9=)&*+*wMtu*E@(tBk$P`8TBZ=OGN}53iYFiB2eCRhia^Pvp&-R4T7EIBh7#ay` zN!hHx!0a5(Cei4Oc%s3TFat|#Wo>j2g26oA0bO*!B(!B+CS)aMjK$Go9Uw`L6)PdT zbD)qQAG0)6Ibh==QES81b_fY(Qn<8x?3ryLWFhBFK2AqslMFC~*i#JVjki@Q0Rx3G zSs|&Gyn)GfTp{^-)AQ#@;lh)YaMLfe1|u|E6^yu@LFd0bUB6DcSHyRckBslBG0D&F z>C#G*)@FfN5f#pXGe4x%z5}=OV6GAJHHm)eQ9b9(3^@sgiJNSqJMA0VD=uhtyUKUF zNl`Ekm+Pv7R6<9&D|bEd&U$IQ{VYGnR}ot!U~X%U(FFRMg>1@br&PdNz0xJZ(q@a2u^z_SJ=$vJcQDzY z|5gYmGM@sAUn4+@OLi@O8pNQE0iTHF4+p&ck7JFi16Zx`eoU|`fjTdA z`{F*d z5k;pN81XlI2G*-X{T3w*+fJxZh|+O3%XooHIRAr3KxDnX<0(ia7^ttjTG6ZTt}-$P z_u9~VG^#x6T2mE;8+Z4zp-?<$Zyp}VqAjfF!h?v_W#0KXVn~wQYb2TGl2pzPfgLDu z3ARa~j@A4CAaB$skn100t2|dTw`kwowmQ!|iKv+go!Jn(5nX1yqEvGgO}B z&FVb%U~jOi6OBi&w=6mUK2nMx3V9P-T8!MjE{xcnCelu*jp@s%g)E|Bs$Y^w%UQ)@ zf$>o_NWa>Fve#zXhQLn6rEEqk2GR?x=kDrg#O0+IS!m*G3DRv@9zjTPLgH9YLR9hi z;4fN{J0!P^?CYFP3-mam|M;sENQxts8IaKv!!tUfWyh}8FC>Naz!vJG#2DOA94_sn{g-}*`CM=OLwooy=s*4*gl8w&O7`rwLF3BYt2f1N_a z(ReojI8W-78A~ursLRI|rkggjzmuBSd3>1VK#v4wTx~2;eGwmA^`UIe5gJ z?iyo%U)z3UYmk7%l&~mt(WBNWwllfP?)<{8)=gYDla(3Azy_M)_k$HP&VONHm+#S{ zWn@8+3!HgR&Z7UB-qxx=pM)eYv017gJ$s>^NG^a^e2975JC=?L)GtpqoX3j&6O`1S zLX+pR2n-8riIPOBxQBu(YGNe zM=*s`FP3Hm4%2)b@q$dqdSYm*AR|Xp({X`@Camw1(F{g_xTWBJ-z3RI)eC1SMZ%k8 zoeCJJv_VvVPyaO_o5cTpXWCQzc<#;JA@oNd9~ ztvwyb*)mVddzB_u;Z{j9Eu%AbI;@m&RU`?@3yKgDV=IC3Gid`X+PnYmp^bAtV@~RG z7=}CSGyEiZF~z){>ij5QAQrFxcWh{ap-5^&xD*It&BB%oWqAD$)>&=2BcnT;5~r1k z=7&288fZfzBV-Q0b;l(&u1z}lV+@yv^r)9|DRjUrHX7BPi|@Or-}m*OGkolg)#9R1 z8B-dq{}KR*fZmTsD^26^|5|ld_ng%Tq?$Na^Em)K-WJ%df3`{Fz^BeCx?A1@ zZL@rr_XhIBUTQl}1jNd#lXC%(%NundSC{%nuX^Q$L4)brKLbB+&u9R3$_w39G?bq= zj?8>lkJ)QA$#g3Jd#}ntmQlXxIjb&W8PX}h>O$pP=sg!K5A!|{b-Ee=j+!3%6RS=A z<=-{wNac~=u8gmfu}ZVg@K#sc-J>0ltGC0NJM0I2%vS%RL=6)nU%p8SZkNr5PYbbO z)*+n;xd`A{6d>2U{2(72*skGy#W~0GbK2I`5r>m zRd}e@_f>pe(C2mkl72iWnFRle168CaDDe3u@Z&VWA=;5X7R)ss=UKuo4~jH3Nb1iT zKW2w5IFdshIg;@G<@zosDmgHIa%605LAxG=|9`Y!_;5Tq$Rd?KJw8VSmzZ|{5qPr& z-)mqdw~%JsjD^c0Ry5(!h)7SvhjVHbkA~?OFB?xc4IfbWM=xh)K|rO-cl9=vAvF7V zwfrYTis!+OfU&|CDoOD#Uu7Od=g&Iyb=HQ4vmIas1WtaaUHErjo_=$AV0ipN*(Ri` z#K@>m#a8ENx#6pQv&8NTQ2#cTHad^QH$!W&+^CY-7>@`=Y?>4o>a@2(DuYwt1-Vm| zS`VOU8M{rWQv11UV`7hk8AnMTETDie9rJL}V7apIe2eq#19Zhq zi5SQqF^un3ME;61?@dtgFnN@8+sYy(c6jTWlS5BhVE>In$F#`T{2oRL2v%6PYeYW3 z{kcun3LV6S865LeySTe@-PotVv)LX-(~1%!3=StoaeEC5Er}l@AO6AbU~gcyb^B1GUo7<#LtBQpQW(AT>eWM9T2dE|eq%J5Cx`^nG{nJgcMm_5UN%j+wOh7r&M?U z50xcn!=?F#?_o1zcmuyn11h{15B7-l2{HwkFRWC-q^r+thP0`Gvw!GObR@4t%^q1U z6YnRVvV+&`l>G5(5Goe)5E&Swj@URHSUm-2jZ4ePa<3}W=G^(H)!z1aa?n2PqTyvn zry4u_==$m{>#x*Xe^z)O1%p0;;;4?r!6!(ocv6PV=;ow|l33-+aA{G4A~n?X+3K1Q zn&1%aH99 zXN2mBJ#o>0aV3yoABka>Er*!|?IVaznqM1xLQA5Job|C3gG;17<%@|Xh9ik)go zzyC*>`@=s+%RvVb0Ct4?{xj8QDW!12OD#(-v`58Fx5cEIbU`V^7EIe7W;QNm3rX>L z#w0)ED_<27*Xh(uvNZ`ur^wNB#k2*=_0oC}Qe7)#%phb11Ei1k3t!z>3;0YyB(5v= zNgN@}@0yV@_KI^yhu&jefe+>)dH(U%$nUC%-qh%w&2X~|fAhIw!l^w$LYaP9i=#P)HmuV()4;_NL z>D!Dpl+{U~e7y7+74g=ZQU)5!w$m;vm(GxuxgeR)3L6=P3S8$L;oX@ytgyw&1qTqLqB+*!Gq_=M*Et)a*yX~>)Zhkn8>>@ zX7ECl&~+!N))DbZWItJQ70vSo#X1LIiXpf^X;r?GVwVVX*NX`K79nnn@9@MhTE-*C zY|tqoI>}axpV=&7kk;&~!bp)h#kHUI@qa{U7e}v-!(t@FwttzF|aU!@mUTs0#cI614&rIfu0k8P9-OK8hg3{x!M|o|5HyU zWsu!CY}b_*DY`3}`mysMk~56>t@V?1Rx+eby9u8w8Qc~$Fc02j?>rM2_=l^8?}lP| zNAWH0w!RUuOsF9Dm0RxQ^u_Z1NZav7ABWb75h;9((@W$5INuBXa5y^h> zRigT5w=1?yxF3gYH0>n#JCF!GUQE z*8#n3*iz~?E;(E3s&7o&btuj$dor45h);iEXb(_$_Uk%fSi;PNODR^?3^v4m06 zcT}6P-lbQUvQm-)nlIyhCd=X)@2~NNk>M_K`M)>H`#+1c*lF!Tb-%WdEh9Fd(m02* zClmG=%}mN;TxvfR*!NH$su!@ER<^Bz;s5hRC#YK3+%sA{PMEVgFKx}qlBNib0<|3Lm6 zd=>0c%3x7Wj8mQ94p4R$Fc(0m!e2r;z5JDBriMcDK5`wU7w2HbDF$=E&8<9Q>If7b z73~K8gZsAl893$EJTE)9cfYNYos~qX0vMaw%^U$<7|rd0-QjDj3AL) zSuVkt-$=g*+Hi4aRbz5hv5y%jpdT3ot8s@hM>cJjU@-?=6YasAXN;&2K5OgjpxHJE ztSesnmyDUu>CJ~$r7W(!U$K95v$X&QAWM6usTY3K0K>r zIA8deGN95(P?|xBZQO|mxeSC&7`qXV2+tF)J?}sf6BH?glaf)z+@i1&%NEKejBwb& z=HXJ)>>sEwrjPr=cNW3-hvI_!p>AA{E-Yy3b=>&4ow2u1hPCMQk5l)4=HuG9xb zD{Iw7vcoU1S%6{fx)Tc@QP|>p?&$UlxAq4OhKg)C4}!oCJdpQHqTytmH24jqDz~yW zbR74DrQ4aYKwYgR1RM9j-~q$uo|_1ZaM324yE}qddtk`i8ga)hBtqmsunEmHsI>!l zRC0{u16{VF+HMIUq7sDr5|B=wPna9; zV|Qbg_kw@4Ey5L)`(6u!p!mS_%{sxTNv7PPxAO`&Hy(C zCpLRG%nIe7ieut_9-Vrg;t5`m{tgjz0`1PuUxPcFoZU{%OO&SK69glWa z63(UZN(BPaOc%QH;331qzTI_nw1_Ag`6nN$wT;q=subyTEOX*uaX1#p&TtpCcP|D3 zV!;_1jRvtymLNgEKrWVL=fPtbE^}MMOtQ>XRc=Th!CecJIZ&!WC!vbm??!LQI;Zd` zmCWK&GM+!d<*AkVfcXGgq{?H-0ynez><|^3kwELGE=Gl|Q-!N&82*t_auJT+e^-lG zYTX`KIq<1Qsc^E)e`Qj2?TT7$=iw|x4N$exBW=iUDS+Pm(pX-|GYbUB!EgyI&i%F@S-(eg!X(Uel zc#yb6re4kE>6>k!ehb}qQCPIP!C<78?^SR~kKcSz(9B4&z)Xp9hfT-l!} z@#)#k7phDy5ECC?Bt*bqhKBqoHl*$_ZRAi|WIU?dK^FBZBT;wNq4UJC(OZ+VIOZn% z7RqsJ3D$u>z@D`*UWQ$8M2a`-?kyJEog#<~+n31U+Ev2MxsI-&hj}d@W)c&?D8ej{ z85PScF4wDD!rsSxR({Ulm3G?jP1k$EHYP(-&sPiX{&qUeT454GUC_?=hJ7f994=44 z>R{Cjy{?gB#h79WhhRHl>Pju#U$-38Qk4E?eya6gU}`tW1}2>)od%4B+YfBwj7nG< z=4C)y8iIb;;9@%s!uTuv#0ujpY=rH*K6*|o8E3>HqbGch?Yh{i;xV|w*CDcruM?n_ z`~F#!JmL?jXX3>^tw^jznRFI-vYS*^m0dxD?t!$ZJ$S6wuE87=y!h_JK$)47qa#VJ zE0?9*e?c~XF?ro@2{;}NA0!+l74+fD4qENBv!qhJd|bj0M(}HW6)KQsrd4YtjbW5f zqJE~1;x^wi9gd>MeZhl>=CLUlO_-?t1oMBjkN5Ofzi{V25pBB{6y=1LM*&}Lf5QyQclScr)y~AUxQ!>zp(z;u|J4?k)CY~1fTHs_0eRn~R^x7Z! zQ$WdKdiC$Grs#*N=NaELl%P|4E8A2kr4k&uN!?PRtcZ57JcP8Rtq-(D6G6W)+=lR< zp4CoF``ovBJnc;jjtA_w(oVA`Xz2xVXQb zQv9~aTE*?{y4jwA6rpA@{XVw`YoHfvA%R4`dShACU`@ie4g708gNJ2tk_wLolU(aq^{Q54oVwjXvvqF z5_4#K0*IO$PiBR~gBrWn<(|_AH4-+( zEIT^n9QWLl=SgIlcU@s_x!D`zny`$!81P$acll|w1};sob4D&^M@l_P)z}tkMdPGE z`XH|t+04^YC}R=v+EP>4L~WCRC_sCN#L=IUY*;GoO}tMVJ=zn^BPH?w*yabM7csFS z;rMv8qT_u?idyFpM(RWlc^UAnvkUw<-whNmVzpX1NX)%$y!4QxDIRvJxnGTp$7KH9 z{JX+%2gq8qYmpfTY%%Uh{h1m{c7;E1Cu)J!I@B!pKKrRwL9GwUD4Lbb6lr>(ql3Xt zO_Fv%Tuzod_kTB^S--_urjBZ=EVkxg5*IPh2j08jW@ai2cEB6b3-}`4DU2yuDg>2_ z(H%3!7DV-!jHfr#DKBUW$o!n>Pje>Gc>l`X+ z&z$xzSLb?Jj66UStDiEP z+v^-O6(tC|DhVd2i^2u+(tU;;o7uHdx zsO#nZ4X-v>HwmeMH!~MZ{(GYTqgN21U4D6IB|&lL&a9Cb2~^a$EoQnyiuwhzWhVi2 zwbFUewI46R(7D&VyZxUA`(vd{ZC6qF(2ptr@Bh$(v?6KnV@%fLVZ}D)O)Vg@bIBpH zH`9E7^kL>1HLjUt^i(A-8+`eJi2F&x_mevou#! z5Yop<=Od0Lq=8xXtE1`LuNHx)*l9v$ zte>o3trAB`7-)GL{*-jYWXz#EYG0^{&06sA2TX%~GBpNZkfQag@%6vZY(> zhcCzYFbD51UX0G3z)KoWTGkn>ty8Y}l_8f_s43R;>sysRXw0|MRm8y+8+W{!=54Nrfan2rPx zA8wHlQFcFW29vvBf4Yf07lW_J@6Ds zvYr|mYT5I%M;?Fazfe0R>W27WL{D0O{`GS8?puf{r2)SR)JHO+5leQ<&@)oV1y3>uEQaioAcUwn~0OnM|>c}H+>R&~D~80jMVVtNm4Dm`IuT!sN{eF@iU%#(f?frxa5(uU&!-xo zubV#iUsL_%z_BV#IX+32E?O}&y3}(PrT>w$(BWb9i}t*W_5s=-xO(l}IvXl_KpPa3 z!yHPY?D(rC%;?f@HKo&#Z8wbg1t*OfN%tB!SM>wh57b(|*7jxA+1M(IZo-N%;~A}V zGnZ|_h&zX+LapURTYK~jqQ81&mM)MY@_%9OKd8t3!mZG#7KhxzlEn5~EqLT*URLqB zmR7!M)KQ%WWi}FC!cu=%SSoQT;;7&>yfHI82;CjWV@CmPxB;}wX$1>mmUt4Q%@oWl zFV2ELa{OzBXZ9z~$CW`tIGqmZ_$0x`C&*G6w@UA6$owJBt#t5%>(= zw~(B8L~A-<^P~!vSC5#QxFRgb4#`TkCm(sVPFYNK?3K>$$hvuH==@8UG0htYXcd`q z=YX=md>^hWn@mMU#d8g0V%wAR`Fiyk(yj6V8UoX4TAy0InrI>w$4Wv?K=#81B51)Jty|6{fFBGP2t^53Gk^HOIOo$8$V`-k&3 zS7@|rHXJ;^@;_Cx1_ScvP>s!LATu`ZYNyM*8aZ2amQj-ZURTnNlh{kY$TYL~3H1r3 zos#TI-nSH|w82qD8?yCFB{Qo|H0!hU^=u%@wQ^tH-R27$sK*Ch6iqg?LEKVUFt)R~ zi?ps=^GtO%R^PG5{yYIyD!mD#pxH*V3@@a?WrziV$DUPJ;)zq=hkTST>V+k=iQx`p zK}&h}^zFRLU1Ne;NGK~U_Nqk>OuWb1HlhUr7yvuHDp7oB>C?36Sx)4^))w^@S!qUH z_m7Dnl4k<-Bw=babzqfqliQDXDjI=J2e$SG-)U+Z+Fku1`N!dKC0{J!?5xp1VRHWv zc-IB|Suw9|1cVA#juDoY-cR@6v0%{Vm*VEPFtm2U-9(tD8ngo?Bv#`X!LG;=A=~v-e+yvQ^|=?uIS*oF zr?f+7$JXafsI)pV#=Z>5bOrm%6U0AxqXyB=_F)4H(7;|^yv`3pZ9LW?%)%4U{IOi0 zl51+k%9#>KiRp-15CG$$+Yc=P7mC#6A~%$i#kXa=)5X^duY$K6OSU(XeXnmH8w%%z zF-vk;RsHeG(yb+*%_PC!;diZ{nyqDrFbb!A&t0@8Zfmw5swroL@p1TtwuT9Y8xnPY zLL_d->aueS0H z0A;eMV2f3X7kQ(fak(Jc4m{%)ETjoT-hDHQrwNO3YVe>qQ(P1Xy#mdXEw#vMNXD@C_6Pu@)U2L_?xcDOb=oEdyr)#KbZLmL`abjAE9}NWWthspf z{Y|oOy9yI_?WpIA2Jq_M9*~sZ?boz!3uzW(#b6I@q3OqaTCM>(*!T=nvSDA%L>okP zKdYF*Q}y*HXIR^xr#H|^73km$W7o2Dyl#MYiD}>dqPQ`AK@sB`J;)~nGYB2Ak(+DUXpzKO(kaQ~2rVF;i zJOg|L6dQ}Nhj$JJA=Vs_<4HmwLRiFEZ_R>TGlL(|>_%)oMevpMhG;LzfRQ~SUpTjn z=(*l|TGmW-6^7FhEcu(yc1HE?5HX}Jpk}Qn2@_boeWGVit;F#yEx{VJlJ1G9>Ef?Q z(W=jI!s1Fy>&X`dZ`g&fdrM(Jme=q*GzNfh6cy%0vQZNZ14YO1@-B&RLRCL^hp!KC z%`W8{#-J?D=p!FuKJ_qq*G#>Cg4=Fb>%{HftJO~czsd3(9bcobCn8&I#BwD6p(Fbl1lyPt{papfReN z+K$s?qvnZdpN^X}C$>>^j{J)Zj%Tv#^*Jk-|4$gSQ4VKtm>Y5^D&{IO;`sRPS^^M| zBu?j5U8AZh;T%b8J7h$?GIZkB?NfEDtRRtkVOI-meb3><0rD!5j&4KVx?8*z~hPxdLObC z%V(E#yK+j}b(JIB`zg6q10Uz6XdXO%D@b4F+3aDwJE6qn1r) zwAl4m{o0B7Ie$bc(1J{o=)#PDJ&I~3&qecL>#w4gh@C-O0ed^SPOp?+(ez@!UB_?& zr=29IKKW@ZE{60~rCCm`M!M7oIb^Mhzv0JDbBpO@Zk~&VYM~h6%-K66C``t*yfttd z!+XBLnsvA1Ts`QNm9##+ok2ew7o4K3p4`K@r1C`3vBxOq=p@5m+)HxCeLgw`e}zC9 zyN+h;`3n1(juZaRdysn|@7^dJtyV>YHaa9T1$ei|BLuwT&Gj~S^|i2Vp^|Nd7*X!P zr}g9J0`1o3Uw9%ik$A`tGMAH)m;;0@U&>uuK=(&LHy=&WHW#*&yMH0k{*4lbri^i* z(nG<63qCq{$F3?D7?;qmG;1}m2DJ4_RAT6!#iyencOJ-!;iMHt6@%AY;whAjDnHv0 zc#cj3Y739xPiVhQ0C*f!u5jQwno0?-Tz*!g#VZDvlffh{_m#bIN;q_s0BwLfIUs4z zVfb1l5QAsBAkS*z+~yN;4g_K7w=;IG6b}2$lwjaA%I8id!qFt5lQ@MU^HYllyh{n}YNFkZsp;K>51i>F9;6 zvm{-V{MS#wK5h2Ev>vxo`_%GVxuee;E0Y`(V==*~uGO0uI#mXEy$~9U`R5nVtuC0F z$%(Pvh8l{apSs1(gbqCk4)I1f98=K#e$Tf9Zx>~-lI=MUzLXuq#kAlvJt-s$eW->4&hH% z-()V|AYo{WrivuWL|k1dz_LIbQ2`h>){kGE3PAmktI3&D?#w4`S*s}ZDkVDEyKQz5 zqe8;y(6PHE8&wIz)M%su=qX%hG<5&nHfw|m0>7=Ak9sG>&7lGt@-QBPzoIuq4jVfT zva#UpDFDMmfrQ2|Vz1?Cao2~@4I-gJfFdrSZQDA9v}|W$PUHL#J2fb3t7*Z0uYN07 zi>U#rsxlPxU-OJ{(-ZS}i(@sTuspEZ?^mCAw&fz`y2Ci6ud{7(kq^s|sbMODMHcVGrcgXk0u6$TQLrWR3aR0hsd6L$1cHFMeXq0>Y^nFA6) z1_v=G#6?CS4=*0aC=f17{ntby7xSU#CEp*ko?CmqBR1UQ_6{;B zS;lv`qqsR`T!R?=Mr?v6V%Ey(I~X~_n`?s99Q%0Pmy{;TjNj$AimcKLpb#dGin8-8 z)N|Fvpk|ShL$l$izg*NM8DO3fUFqP~GLrE69YYn{Msm^ zNzMaGbcUK&Ltiyb$lngRL^{LTRFh>`j}TvJ-?M>O%%h!MChLpuE8K^q!7P{8#3w?@ z)rSu)T}?(8y9F&4f;TWJH{C%`uc!O%p z4XaxM?)2wg$FxenH6@Q5a=DAqZsN0%Pa<9PcQUmh=noFWAZ7Nl-jA7RnbSTLse(s& znQNiWakh9uo`UpdzxyPmiM%W9qsI3@2}7k}-!X!ALKz@PKdmx@LpP8fh;MZZm`hf+w;IB4Pc|v|}VQ;(HQ>-8n*7h`){ME+I^(=dL zpe66we)1)nDiZkjRti;2i69ogk?Zrw=Eol_kAh7o-qzYgutgR*5g}=_XEPa2s&OI% z5JPw=CZfr%lb`CYil%4Pef*~2YJT{Rdw|R$km%Ix)f$p4^@HBI5dLeTogG>Z$uT%a z&1n-YFB7UN9bBZ@#11xsD5H&_xQLE!EZYmvj5s8e{W5$dBsVW-g5R%AY$u^@yD*Nc z58D7a27=6x7nO1g8f!(P@xDHMTWW`;&EO=X)E3A+YxTkEy8 zd7~3%Pthf4dCrBiaXzqoXE^F72}Fu9F)sS?UWl8{OK$i-YJ7{1E&z(Dn>nUyt5~%5 zJ?LwvVeLZ}bb`;=G(XP9BGeFRYil>w@G)~%Hm|!qhC6e|FSYg*MLT^whr~ZQh6Q40 zUzjpyl1i7ILFt*OJ`zE|NFIJKGwS_Epol~q(pNaGu~dKr+S{9c2eZ_f-7d30ilTD2 z0F3gJ8Z>&)T9nNavp^l?1*Eo^wGwtNob7l)Ip#hQ8W z!E^|ZaTqA#Uz>{7EG86;JtSqW_K5_5sh{#d3YkJIpMVM2 za6u|;s<1v>Cmi8UIte~}KUa_A)PPz-?Yr{vLgG95uwml@+t8b_t6ovkk>HU|J4F~U z)t7O_&T;$^xgayF5?hFfRf=vwgGP5@Ui&b-bCG1Kz8cgK4YCL7aNVK*bs z{L~>8yNsNy=l#-|A|Nd{jWa-ZNYS6rDW&4ZP>~CNx;VQdb~DQiCXieiC1p?bs@$rC zc9D~r;*|_f9=;d%sZ-^hR=DugbN-{|Jm&Js$0sz*AtxO_rg)4Eeg<4j`*6waQ1Kk^ z|D92j0l9ZkKZ=!D_#Z5L?HPn4L?ULA=J82liqFN>>x}(Nv*0DN^uPF{al8ncOP)W! zz<@|cM0fDyrU0Jufy6DU*s~Z5UgPLNa)!Av9tzbGxL@sY2uWVx?ph}A>uG#XSqnt` za=IH}nqGsDa#G9*wF|9aX<`~%7(O&9!(v?J_kevN^V)fF9-Ku%2X41k&zCX49d5xo z7o4rA2?kW3u*@APy$!%5PmW|`d!X0cpZh>%?|+U#>h0Mn93|>b+SM1s78WLB=Jhf| zc+z$Hb!Cc4>p(k$4bMv!nu^;$7P5TCI>1t!7YpW3j6^J#M^^qBq(hR&VOts zITb&qzanlHO30+mg8}89c0zJ^@iL}XhoB&TDO6M@HGicu4*wOa)15Fdl5c%U8hnGm zW}sD`_7Gwlc|-E-$1T*goqzjFBY|n@)S9b;*N8v#wc8+kRYA=ZE82H#Wo1?PlRPz< zV`sym_iu}C745UO8MJCrewE8_PVT2LW|MzR4Ax7}OybrX+KelbUf4eeY0F9ZSs^e; z0n@G%Z@{HN)XgXInhwM6K`4B;Wk8*<$D^^a*oL89$V7l zM^-*9W{PDB(3g8{0_gSiSOOYUR+2FCR(;>#s$ES&4r-gx?i5F^$-0MBG;$M^?$L{3UOI8 z-sby6DG}$OpGSs{08Ig|1dP2|DFW4)+o>+#rle$4{+5xI+>;DPGiqKe6Ll<7ABCa% zk~}qcD%v=|lvCu1s%2C-BrWW691T$3iICy|dXcN06bAzx9}`R31n|xEmooyC=`B8a z#o{GYPg=YmOYoJ8Cr}80iA?{_8Km>#$hZX*U-&=Uu|}B;%c}LG2vZIT3nb5?HS**e z0U;th>Rahe?xioN0|z%t=nVc}BfsjZkENTf_Yh^7f3kNbQ8*z5SbBlDid6!`>8++Cbc#tBzE+X z-|n=kQN@0&3FAgSNe&QIQ}%}Suf;N~99hSUsG0leY3-?-+=PH+IQNey>7sYb`M;VK zWYOm*irX+D!N@HZ6+Nl58Gm_RI(09G2Jr-4G9^MPz5QY*NOTOV6DOeTd0ON$Holhu zsS-cB7}VXqKs7|o^BvRZ$t$wKbsx(S4_;COgCHw~+`LZaX~)yw#54EZ63jN3qBj(Y z>z_{QSeSefK|{6~?H|1PfJvvcj9bAH$$6~2v3k8C zW21T0VFRN~8jPnq7ZP2Ygot&G=qNk+UYU`9Q2mj0ZNO6r9=?t;LW!#BIu=lwAu3}wX4ih@8?MyGA0X_-UOiQ?nHlPrk03VZ^nDXi2&Zf54LEp+iPlvtDTn|kGxFj5^H9u};DJzHH$+#< zR-etP`uc6uRF9o40ahb!2j7QgW);oIT?6^BFPvR%=nyWdXRI@&m3?$DhiL4!HmVAK zE3&*# zJXuvCw#SD!Z2AwcdfAKlC$pIhB4yCAZs_x6F7sFf%iJnGyJ)06zs}?Tjzo^yaaKLl z_ufyrag-F$wz^x5<4HOKbJV12lG2_n+&$Zj@06}Fx|Gg>ymoOBgzchnv3UlCt`zbC z&umvhLVblgm|IWkAZ@xdw^099$obab37*BTsx1dp-QRl%r?0Iz(1w1@cX>Ebw)dr> zL}Y*enlx!~PTJw5E5%?H9=w^1DARnah+_c3;@;Pc>eM`}I@cfP6~-2~!2Y39MQwhC zC`i1sVBm3cGo~{Xx)idKe6tu4L|z##lczOO^(~?Jdwybz=_w2KR`%8AX(U-J6>i#J zUkVMC(+Zd(F4|eseHjuTh-^D3?bG_?$ZpF7d`MC^sG@v~ngX~M^af-IRt< zc!lIsSx>3npFiQ+e=jIo-uQXsFUA7x&8Lj_M>2GgKF*annzpdY)!C(pzQeGjCuLH2XSKiDL>(}FV6t~KLEfXUvfoDBvF;FTGnF8U0D)BCykT6nDRfaap|uA zB^eY>YMqWPC}F~5Z413n65&P;M5$DPwgFU8^f+j@&OdpifFzP?ZMM;PMff-loVQ~` zS}@l_9&0M}G=zsUGNG0YMhC>Q-XxO31eEHBD6xs0d@c${SQEoU+?PGUF+`0K>yKDd zUj2X>B+`oVFETWr(@kyHBJ>p}S_GJC1n6YYAcAUnZoF2Nb3 zf@hSDk&NR*O?GWzuHF`E4l=Ei(ya&KI-|~NZ474LA6nFz0N%-<_CDsxj5r=%;fg}v zxMqnfl0nk^G>311Ol}Uo^$-E}$G^Ud?(@Gb!WZ(09&b0ymig&kU_pmZ)3AL9lQZx~ zIMbL{ie!Z!2dm^AWu{4XNXh`C7Z``N@S1`*L^#rTojA};-hf?#aEaM*-jY9dWjC4T zU;nKN;_j5M%lyj!4QBbQ%4N$3^?JEqQ{s!nH^r1)noVI=fUQq1Z#|%Uz)l{{>m{UHOzO3{P0ID1!BGqstZj>o`?RKjC zz4L|BI^u8Ao`>vy*-f=Hr8vc62n|Tip+;wdjrU9cm+%k5uO#OcNM0qV+@unCRT=;sfB#pv*(FWFT5F+sQ@Ft=~O5fOEuLm|#$$4P_@} zaUsK4tPxG6F)2Dc0wz@_$!~9Zs*?sfajJ zsYY1p+80(g<2-$P>!&Rs&JFPqfCEg|t#R%oUO!12yewGFt692pLviE>DVbZV&zG7z z>gP&z2|Febc5Cox>I9Fav7KnRsG&8nR-IzB!eKD~u|tb1Wh^L3%f*M_kAE8IrJe-D z5uB4h5N~|kBhM271GoGSl^8SzTwaU8P4iw!79L;FF!8PuopeXe8Fgj*Wu#l+nyA{= zmryJ9h)7_>RQA+(qZBL(?wvu)SvS6@sPl~WW*{6;UoLxPmLE_~dV)e@mmc;q8oGRs z?4|(V?y(_>36(bgxqgeE3qJ=+Rqe%m*U1_NU~X;&L^lW6>y7`I{0$>O=8mmOz_<9G zRCnT?WD(T)epbPlr-ABfle{Rud*E|0DGegHy8hWrhYZlNrRkZLIrpKg0dK*&0(n{@ zGZnu$4B-R+s^jHrI53Op{QNb&C7HxegGP(dVCk+~R-O6&ZuO0lb3&cdOz;@7SA*5( zk;%>G*Nc_&Ic8;G)A2CoSs8N7-`EV9%0#P1;00fCCZk)EOc@F@IBrxkwK5RwBHTAu|oOb~dL%0p8;~9ZE6~}v>Pg_H$kIN~J7DC-P!O5vL+s*i6Y=qf3 z0m45xVN8ihZ-{1o+e6r0^ha&J_p4nQokMf z51)e%DtVy(N0*SuH4wBkCAw<9-ia*(%HjXMv9UpSNN_td00&w3AeTKd*`UJ;%_m`4 z{{VR!P8M*0D=qczx4Nh)dNZKXE9`*jN(z-2(9?`kSb9%H9UME%k8HIZ)?*U>G5wg| zAiP8~cSkiFgzNzkwdH4BY0()-21H37d-)^zQ@Kq#AUDE8sT?>E`Uj8c@H2q*(t zrnEIsY=(m1q8VpT)RCy{M=kCDeZfFD2Aa0TU_-L!KU<@GSydbK`m_H3$32^Kyx#!Z zu_FUkr~Un^T+0|lP;j3RpmRqj_@@HycUrp9SUhPbNr7`%SOflbA?%j{KMT%1Yr++2 zIk9v0W0mBU%YjQV2q=Vdh|^yLDo)wlsle}%eR-U#U_0_!1{I5S@S#-|jk0d<;SgLZ zIXu1Mpj&Ak0$QnzgwF>Dx#9*jbV4!OtzhRw6Vrojq!5%iFaYQbgO^+!8JQD~tYdRL z7C3huZ_VV3rDMpzd-1V&n3nAjh5H_ePpON%juF;Ay^o+cwm=pg%Cwb27;g@*MzDT^ z*jPmA3<((LOd#sX&{#s#S+b1L!4-J zy%b1Ix?hRMvZYqh9L!t(bU1xHW=LC4ad0!nzOnpd$oVD`kn1FKeS6WmzK&z9!D~7B zz^2Dg=bNhMjR|Qc*(AKt-agB(tf{`);x&y|Jm7QxD(7=bWnM@v@+N%0o#8GLzZvR+ zXn{|d&nEWkWnrK@*^QmGfvBe2Ppl<{CdcWa zyxbEIy`@d#jE&f7cc>Fo6b{3hY#^&eNpQ?D-~)|8(%P~j^!N6y8>n9qaAStIi$y3# za5)y!9|(h^QF5_&mOP?RRd%BRO675_(%+=QIm0E${i`BG!Mkc_80(Spa$oi(HMHZS zuYXI2O*+!$=gBx2+pauWT19C0d!INC+$Hubq}DCx0$}t2LBAb(?3qnNTiB}x=bFDu zB#bMER<4`f!At(O#RKYK3Va@WeOsz7LKW&yGY=^{9lTHE@IWQXYD2Y2Gy$1=TWdF8 zJ>O5^(P%mUY$7P3ahv$|C0Czo#nZ_Dk0ZExI|)YX9*wDbl`nNcc~U zlL)77r^)k)ljdx~ZUn#A#{LArWG8=oK37An@;V86w5E9MqlMFQ4q{OWQ=lk4{V|m8 zUmh4_jiUC^v0cd>WbpLfhbZ^|Jm0@WkP2FZ0omD`8_Y3=QRQ(7XJA&-7}PF7Dne$I zq_8n&*`~y@VWwl$CiU#>8BZODuFg?f+urfxT)_Y#Y^=0+6=KVkErrDFe11a>APtF~ zO}OOJL|`p!@9#g0^z5Wc6jiySk3zOWQd;}wzKHRyDJ3`p7Vc^Kni7!nXMn9E={;bh zmJ5tr%;B{rDs76F?=+?nWMU!R6>Xo+~BYbkO_Vw90v#CYvt{%8VcrOfn^UZ7JTEzY5k&#aw zkqC1ZnnH5y2Rd9;*~}^Qhu=dXCNXM4beDOLlsKVb{5{-Jz))5%^SJPnQ7KQ0*o9@^N#1 z5f#nrj#hGZDqV_Zx|-G4S#(@}?g~Hzf3g%M5HaxhbUiBS6u6im@`-6R1Un(kkS1r3 z_AnmqC0G{`M0`2W5LEqPh(s7uK3(Um zvzz_b_u_ak%&J?%oLDlfOEKrJ_=0lk>3C%eIYZkP1JpFV`S_{h!H~&Qb~tZG{4)iQ zEqrH~Xn@ABQEpGAOEn`rBi3J*~JV0KD= zD!LqeX(wnNSzoU_HgERsaua*l+B#>|Nw}Or2z3kJ%0AZxQ(ZdMb6=&8oCkSV1ywyT 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%0DlmelYP$H2;( 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

7uFd9qY-q*op5Sy|db{u9-tfO4G-|{dV261;lYX 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%0AIs3vWRF{%aYBlA_cu%ELu3e35L03c0 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\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 disabled=yes \ + 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 cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main:2 dhcp-options=clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +/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 disabled=yes name=ns1.unet.ws type=\ + A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no \ + 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" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=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 vrf-interface="ether1 - Unet" +/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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/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 package update +set ip-version=ipv4 mode=http +/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/20260601/20260601230002-Diff-Config.rsc b/MikroMaster/history/20260601/20260601230002-Diff-Config.rsc new file mode 100644 index 0000000..2eda38b --- /dev/null +++ b/MikroMaster/history/20260601/20260601230002-Diff-Config.rsc @@ -0,0 +1,8 @@ +2440,2442c2440,2442 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 disabled=yes \ +< endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ +< MikroVados persistent-keepalive=25s public-key=\ +--- +> add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ +> 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ +> persistent-keepalive=25s public-key=\ -- 2.52.0