From d4f7901e84a470d2771123ea239b42154d96ff1f Mon Sep 17 00:00:00 2001 From: vados-dev Date: Thu, 11 Jun 2026 19:21:16 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 11 19:21:16. --- .../20260611/20260611192002-Binary.backup | Bin 0 -> 264097 bytes .../20260611/20260611192002-Config.rsc | 3596 +++++++++++++++++ .../20260611/20260611192002-Diff-Config.rsc | 17 + 3 files changed, 3613 insertions(+) create mode 100644 MikroMaster/20260611/20260611192002-Binary.backup create mode 100644 MikroMaster/20260611/20260611192002-Config.rsc create mode 100644 MikroMaster/history/20260611/20260611192002-Diff-Config.rsc diff --git a/MikroMaster/20260611/20260611192002-Binary.backup b/MikroMaster/20260611/20260611192002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..675343698ba24d01d075c8176de65bde82d7fff1 GIT binary patch literal 264097 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�)9 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

8U;m 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

+MkaT?JHxf`1F=v@xA*9(u_N%@ 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�E-l*TK8|(^VTCu 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�!8+9l-nq|RQjz%9G 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

T$0&mMg~-5o>(+*0jSUM zbem8~Z>gD)-KT;c2;ipL?Q(`;pm8RH;Tiz`A<;w4r;H&B%+$C?by7T;EN}^qMm3-8 zjG4Dg(+}<-oGqxpB$e*$!XQa@pWddUYNAf?ZcMT8u`U=B{=wd}^Xhvs`(95ZYZY(Bt(2lD*8YmwA8$St`Z{_SMUqy! z=Q=aL*CYg4%XAm2XeK~-+QeB4t0)?a7z1|0={nrk6fG-ECV7P{cQSt|J_paR_`}m5 z^HPhwAwk&SS5r&zV4IJEHVa>2<2h_cO~S99Yh8#twDvjyQ3-&@!6HGG6$PXhp(HOB zqWFp*H3F{%hAwMe}1>#50T@Xt1c9srOPexy@ z>vbX(ug|}`5+!Z1O6k?hz#Si{AfdyxhwSnxw{ZX^k>T5bmRGtMrcxGQ-lhl)QxDzP zp?0P}cW;;qO3ZEHU6!bhOfc`Scl0K#51qTpBje2c&u%|j$Xc@5n;066Q{Q@vtX|Xh z-?G6{^qKCbRKf|ezj6a*T&HVhQIiXxRLbGu6$-^pQ!BOsHACrUzu^}4lnopN8F~q4wST6duI80-KV8B2aLn;{~;@JG?T4+U`^OAV0VNw6Vhp?r7U5?lVn9PF~8K?^z_R7Cf- z*);a9Rg+NC*P;F2umj5-1lX$ln7-d}%R>0lQ5%F#BDFtgkYK;UtM&;%`Xo*U;c8Wl zA^#>)rjnq|%x0%N%!0!Exy0|{-#*2MVDE3TO0q2z%d9nVnqBXWP_vpDqWzB2@7jL> zhxYKG?6$|a{t`$FRuESnSw=K;DTuvhGmZfy_}p=e2euLx!x#x#sZudoDoHy~*cq8l z9GWUwxUAHssJjX!dhPEVd^x;YTwC;qejIlIm0Ab_KI04F-+9dICJ9~ISISCN)!#u6Gv5vU&DZ z+s$5p$t055Wsip0mbRutV#9ymwgB__YK^aZ&!;;nRfIm12;$fIffnHEqe@^HZ%YT^s z+?LcA)wNk1gsEFG!11=zE8BF=J%upXV- z96w>!9}NwTnsp_!9k2jG;jfMxSx|?e<9l8)oZBXn1!T1xKdAF%;*zP7 zl)Z3DE$4TkK2)`ejlkNWY$PL4DWU9&QhtFU5KaG(pPta0d>&7Qx}0zp&#kDUJhtvM z0c91i`7v;XCfA}9Ozu!)_OVZ;i6+OhUYV6*kWs8OKRi9h zl(*{z8zZs?u@t@6IqUdzA)5m823(17)KCnMU6hC{g!G6UelnEQysTrf9|lDJnUkAJ zh)Rf{&IF#cngwKIAovytY9duRej=s#aV z#$lD7*DM8D6D(Oe;()0CRre!;cD^UsVyRkEr_hogOALj6TXcF&Mz`^cIdUy5+e)~= z-C-AO0358~o!=d2Gh?H%4&HAMDWt>0@aMIeSdVsM>*4sBRZl@T#*nS`aqB*vx8D;d z(u$d_#dCHTZ*T`#@jDU{Y_@SJ7*&deO zr3&N{8f3y$APOv0rDT&Zizz3lo$yWi@3?Y%x+frR2B;G^sr^$Yj|V^WpZkeqbpb1L zU9rIb?DvDx3(7&XaGP|#cBj`sgNUW^5vPwnBRGge0GV!QF#}t}`n7;9c;hVI6~M`8 z)I~~u%MoweEiG!cEvT$w3}qUzyGWzcA9A?@>=to~hdSXHv8aHkvUK?L0tHB83wEK= z{9eKPc+Lm7rg9J-D|KTta@(Depy&ap+0VT>e#AarO1n^}WNAM6p^J%24Xbc6zC2m7 zCe~Oy2ueck)150C%#Mv;WaEaz2xhw#GAvSik<{VE$!o&3i)k4fr>Wgt!DUc#JLyaV zn$ooW+Csj>P4X&EAzrld35?7g;R5e6&d$uCoMFd6`9=H(b7Qso(d2&%;TN{GCfBz= zh*}9?Itypp-*4D0l~!RfOHK_$f)HhB<&H$iU}Eo@V&ESDOA~_|u+<2jd^{CJK5hep z_iOI>qechF$vFW;{fy?jsjC@p97{c!zz@j$_EGty6LA@}6J0q1T2m*8Yk*4D_&8AF zUVZQ^$F)7z-Z~sTQ=}FbMfJ}uZ|mXP*M$VoJDeeci*oQ<=7)@GXOC#JZ|mf2s{`=!FK>bcHIKRS zE1R854(STF$^vs0dfA0vn`dENb?{-RV4$1(73A$#B&H-++Wc11c&~kM_(g9V%8yoE zC`iZd>C7A=+GE<<00t)OIY9Wn9nbzeb^VFROt(Kw$mv?&UeeXOO`*1alr*fr_R*sP2d$@zO#T8*bz zY39db{CRcUKEk;E84z~f&-)Ygl$qqYfY#63Ecm)`Z>FG;A+YsCIZ5MiL5P6NopUpD z_1Vc}8xufiZ0A$?+5G5BXNewIj#e7;Pe@uJ23gbjv`89k^TZFVz(&6V?@uBIF#gBc zWlHjuAwNk%H@-Sp(_7agq$P1v%WrfDqq4G#RSlOH%+W?siCe55(GLC`noP4jq>uj{ z8(mQa?6(9GuhFD9ySz}a4F8@9sG9A?4NrPar7FXx)Q|faZUdi3hLwT)Cpr@caf5r~#cjwP#vLo@1WwrZBenYs!2}8+(4@$7h>^~@ zew@C~YV5P(yMXh81d;A#o$M8i7O#fCdQ(5<-|#nxq0Y}5JIExK zGKThcAmY%V?m(@WQR)FAe4s`XJ6t=4E~f_sjB!Ls3cy3K(#tSStO zC*4DpSS_R!)TD?#{zrJr(VwaJa@n5f%8ow8nw$^Rrc+o4^SiCAHo%lWLXO(2xO`iX zV*R7pmESqINvVTKy=IqW3o_X`jTY^%rj2Jv_V`?@4->sH#4I-^ge&)Z3fRYK^stsz zqJ5X;Z9m>j)T+Taa3SkG?HnY!Fb%CfoMf-M1YYB8rKwR6VLIr6-i3iMV{m#y=w)}j^G*ar!ar@jV}Vdj z)SFIO^BU`~->WF^Q9TL8JhT^qDZDZo+fW7rUaC0t(vw0|3evkn8=yO- zj}Sgw4B}FRECk?&qq$B^GMlO=cZ_{x55OP`{&@hfmQUn}mK6<7#*03#XDyfz&k}DC zs<5FAO<#&{6H{>G`(;VcRv%_=Z7R`f~bxjF8HstXl&$ffYb5QijzU8hf947I-{pg(0Yp2f%hQ6_E;W8I6+6)|qD#afQ*yFnF-Y}ckDnJzL>Z();w3xQK64(r%?L2GT|6PR(Kr|u_F(Ki_ zv{9ud?&)%ZNu(N5QM}M+Cq{9(77B{{YciJ?HCJ;l_9Ks+S9}N6IaAvAPB?P+xz^ZW zqFf(2?65uC;y3n^R0Dx7hcZAY+%Z1BD!*8j>RCJ>@*P+EmO>*iy=01g1rGGJPM?KZ z)zi8z9I4ysk!OrAw~(-Uq)f6{1{}zm#G-STMAwm8fHz2%#6ew4s4~h-uxtB7pq*bg z-WIRTB|CF0H;a0rEV!PK*bQ5P_6jyHoHwa)n)>ksT|5)gyMhDq9@!Jh#mt;=1q=8b zi+G9)m5f`(FSXkAqiny+SMmS$OUqyhYa4E>_qCkBNw5N}jb8TH2v!48=0la`uO8jEmbSg$ShKPH6cSPe zk{*?!V34w2_tUl3N+rVW+mpgW8)W55fDc9>rpg~=Z^|TmX6ERi{y2$q2xYVmE*pS> zR%USeF9+C+QcuO<@0JgpT1BWL?vFbAf44jwuLd^!;YexY0X1V9ui7TUMxa zpY-9WY3;s`hUFMGVK7KV{yNn>)t*&cK;QriRH$2Bl5xggw`kDBZu+NlIqrZ`ES<8y zmFKomWe%>Juzp1S^XQ2mk`iZDeKH}wE@Ttj$gw&~j@WP4!;z|i>V-6C(sTYCV+0JlpA>e^jYv;lMKpc$xc%4& z>f;cIVYQ3ky%U@XHB}|}UJdHgI47cn8hz5&$^B`QDDw*V`l<=wxbUzfEMI?#W zAYt`v#3xgx^1(u-;K;M(#@97ean>QqPJ;^{qno(Hah_b9SC^oH$BS~m>q{lJ+?b2> zyvA~J7Q1LQyjSqnQeNK>37eByYfO||kPDhpGD&>_o-o*X;k;$-I;s)zFyv*ic4KfQ>~TH6frM{>qMYxOlnwPY zv9>jQlf=cqlyIZD#WOsi3Jxn{txC%y!%3GF#Y)m^+u`M!m`ZPDi6N6M36gZ|k^ak^+kKRQDhn)ftgkEIu@VUgu8XIP2H)HiW{zZVGDd&2LH;y1gHMUU~HThgEwF|_J$;exSj{V|2{6ry= zLXd5{qaejn^19k#N}CcK&5_jb6k|9hp+^%l#EJ2IrNJjH?&@F*S!AI@hg2`_B7HHE ziY*pBJY9o@EsrEoiKQ{IhC{YYiQ>6$6h!b3q%$Pn{I%yK2^oTk-18lONwb}-oy#2g zhQbl)682|-E1Zj@?uXwZHC5@R@F@BFIIB#|ipuCYw9EY0l-12GYO?l}kQ1G*cPb5y< zk4wpbBmsKEhMjAp1oeGSPzM~945H|74p3K`uVR0rA{kvqcgWm=t%xw^1T4v&5*-Y%K@Y;?nu8D$LwXM;hnoZeb(}iekEzF zBZ5L;u4rq6HCyS&&MhKkW4<29$9P6R%h%#*3Rc+rQ z`tnf_@0xbqmhU!1B)lc=;&T7_#R23=x2;F9D!8&j$0cO*GxLX1rN5cX0!`V=IMO~P zBzjZw4mnPHwE4ub%?6TeqGZBTE%e$MmKFi4WWFt+0e_G1Vz{#Yeh3ilwrv-`xloay z`2pH%eany=>pt*}hUK>T$(wtUIP$F=ELxi43+Hu&Mmo$3TY>gq+*-&^TRDcFVb_hG zNvY**_HhgldOpv*k@g=v^6KdXy5Mu1mS1&|-oe%ST zDwy|x#9N-VXBQ!x7;*4g|8(d#JS~uKnwvLy2oyfTzNU)eh!3;yj_S3|?7<+|>Y zba9b1TH(G7+{C3;4?rVprr31HGqs#UvOmf4%0+a{0s9Ei0!NQ(t)+UN^zB0fh}B9g!{-e@xr&!mdlDXN3 zo9d{D{Nuz|nK<-d=j1#9C3K3hKxz2y{Uffhe`mVB%(0G#EpLFimMU6 zWx^Ribx3h-M7 zTxmf4%)$l3qjDcB%K)>_h>~@)BZow07uQEY5{dL@S955Pc)=&?ana!JywPQFM4J_Hr@I_q0R>(jAfaQ^9Qx(6&tvTKD$H|hs!haQYV>O%q7 zX(EhlsWRcIj%%>mjE8L1j8yhYk@_yJY8j9evp#Z>dctqlX!l(nq&<&P_=i0Nju59IAuA$_)*A^3eU!nEn-{2aw*V}Whru<(hTRK z701EYHp#`GLx0>%Lbg~#VXM3#g0HueNKJW0jJNt|w}4V4#uv-b>xlCzc8_x%i?@dU z>WE@!c0f$O#O4FA1wJvhLE}_gM!#qVNbR)<9O3-5u$A0Z40xspl+9zD0V9kB&I&3F z6JBA|tnLyz)0*|`mBpa*CX>PNi`u4vAZdGf#m7YjY`?p@#pqPZ%If=BaBP05Ig16J@ zad&@X`q>tiets&4Z6oR5GugbLB@mu!S5YMHJAb0G;R>aLM7<061l_zasXnAhAt_-VCK|*zU4&r3)5z?O`Xn;dl#- z+LsPI?HQXj!<+^^MkLvT4=9q(hPb2-obCEqtqJ|6s~`x0gUHv6fr7k{7!?ip5P9l5Q0x3Z1H5cwcSKKRoxuJR&8}5 zKziYIaiPSeOmeMsvSHE&e~#{H-tXa$Q_1sn6&d=re>XgLHZjLW9wjd^v# z3#R;(9V$5U9gWW0$&e^z*ls$fMp(D-M{f1!OKAW2J150*Q#_nneZmn8vD)OS~pEITXFrtsr;9G1_OB3NB5* z{6a;1gme~NpPomZ`l+Bn%ydq7l3WkFS2d0f1{L-}x2}=P@Qn<$K1KWu{nxMW0p@N^ zYo9DY8MP6+n^tMpFVL2tEQ6H2vJ?`qxZaBUo>Be~7i{@%CD#dv`m&6kBK0O33L4QUsmfU1DHj*H_zP4u3kkbfRmSs9(G$nj zlP+pJY$5zgp;C~8YTw!xsq#ik^*_XeObd~aL3tbzse`KL68}i&NaEqu%UwNX#^&yZ zr_oKkU52jWaO7kAp?Yq(W=mFAN?ZTr!)tG1Fex#|x!Nc8$phnSOx2T91-&P&uZbuU zCmV&A;+N7z{i*Jkd7fu+NY&%nf+V`gI=v#7vB;kcTtY^leNN;q`0tk|)|Q5BvvImg z=b0J}TG*&1FkweRo+TRLMRw=8N9_vx*N;OO1LF{Oeg~MVns*;stg0}QAMKL5tJd?0 zSV8E{3fIW*2siKp*oEYQ;WUUU=<6c0=SGWoEZ^>9T-lC3;=OwF)2!g*ODjA?s85HS~ z&{stdNqv2CNxD(fDTkjq6855yUbt*lTDLt$75Z^cr%VHr2P8QH6oK%&e?m^&ED?LR z+49##1R!Y|XwL7ms^N(5PTJ+MjE->%~k zU&LOvw%Eu?w^iaD|K87n+ z0Jki`*=58<2LjDtFfJ5soC0|^Uq`%%!F-J49&Qg6^ll^zVq|8Vq^^^ z<`hDUHeoJ^RIi543^>opFc8ao$7Dl8jH@f|E^cyiQ#x%Yv6Bz#h1^%TRk~7=GngM~ z9_+@1^VkUAdm>lcT|*AwQn_4oFMlp}X?X+6vsoEl^v7T^|kNn0NJU{6( zCb_npLlkF5z1vI7$kSyrK5<({AvQwhnpv2MZ;rw$@# ztr#0#JRPJs`n%lnqbiA6XF}`9+IxC-vn>CAnl|s~4o&(Ce4i?7^z00K2ryQJ%0cuZ z_;FquKxtDG3uI`V8-Zi!9jyMZX3yY1dJ)G0_n__xA zRIwmwDe7Oo!P#Y^Lgh&hO+%+)0RMwo>UBy}FC?P$@SNCyGr_dfE??REA`yFy2`okv zvGqg0K6!~-syW96m+y~Wk9n^5wWE5sWR(&4N`gJlJ-c~YV%3bw5y*6Fd-E0c$l z+Rks3m<}I7?9ZpEl-@4AfAt+ZG`Dd?=Qm7}U=DkO+0Yc^yLi^I@67*EMXy4PeIA$) zR9Uha%;?`qoVGdgKs;gJP$p|zD_NQ6%9_vjZk}3xdCBScsNP^;8V$DD82H7$%7!Os zw|}WNJ0n{Wj9AWE(lX&Y5g-4QI>%k4{=z8+51fAF(A)$=qFqqI@x=5VlF9OBTkl@! z3STIA)DzSd)dON+R*l0XD-0V5T`pBi8aKm@;cmruAcU84SqY$LDoDClL@H`eUio6c z4WlLY{;MF_&sCgxx5>!T!cqNJ$BUB!{cT+{CSvr-g5sYTvM9!OC+Eu-KOft!>1B9P z@p4n9(8WBwpmf!sKJi0R7~UpCbK5u(J0V_7itPoyp=dTcMVeMZ)y%V`ZXv3c08xlV0Ngy;{X? zHK-}@;ajL)z}#$)lAO9a3fb`;9r2NnBSR%B*`fN+DJG;+Kni_z9<`0>7hvRQ=^>N-T%4R! zW&<>kt6OYBKrF2E#0ZDCDd*tXTmV`g#rmN>1HLW4OU$C%5m1xi)I+$Rs`|)RFvXvdtx0s8+lc8R z&~3W0ACKTiEkWg=Qu3n+z&}c3;YSWz+S0hEtWt!fJjqHCL{mNF@FSYxPVHGab9BEJy)jqss6Dq z{3kEfAWKpPp6KxDM@&Kv6c_#3`1FqsMu5(Icht7P?C0KP;TmbvQs0K7{*6eS#>2n- zmFmLIRr0L=@W&lh%9+EUhIw>ID`ZN_a%ZE25F{MlfW*KI%gEO|{U^sSuan-gPG%{5*MK$DG+EF)*9ZNY~P|S~-wrYmF_I1xXji~Oh z^z-cHHi$j7;^Ho6s<@tYxw7Mbc#JpWG35*&RHI_?wSWP_5jy`D%G(Q!l%M|GNWU#b zP{i7t8IKH~`19or6~;hPmT<948UewrT?lQh;0fu&b@}(lE}IIGB6RNlnqf0(I85}N z9`oa1cn{ji+*rLLyo91fo=fP5suSB(niBKw8J1eD^84`M#qd=H`WRxt_XSMf)z;WT zXjF3TKtGfSau|9TIf;@GEL#qAoj3l2X(?2GE0GPgZ_p3Lh)G{clb5eHvw05GQa}lV z1DhuSjCno@3332{*^U$!z*HR?&X*XgI(%aUx@UZX{C)3#)WIx$K0K} zXlU~tx%)&N)nQZ^DSIC9$I zsezcwo}MAF929`AKGf}vgpIlHtvj=R9PUm&R|9^^bm8LP0G=$0!_W(BeM0=dKt z({61Zk?H!Ni1iz1+~c41S{fkN$h!W6(6AD6$L@Pho>&K0dbsM_B+MK2h7^yX(sJL8 zprvdGIW_l-r$e$<*a|3VOUvj0QsN(_xVOhI7IqQoc%!liA zra6T@4YH*a4-~`_U7Dt!P;-F=#Pg0!dPu!L;4h>-BZthEL$sn^7dYYSn^l>NlsE!n zNlN%$0Sh2hDSweYrNSO_`UvPZ9}3jS4c3?7T|KRtPHKX05c0$q66nL$ikE6T%O{7S ze4D;9uwRE5!?q-oIlHjkd$U0x%vcG-0xCI+hb>)^J);Z3wDf7O3OuUH^I~(O_ftkn zX7X^vt~#jupEYtXGIW?jz5ku-UDE_ua%;I7f4ZK8GuyFU9=1^qgcO7Z34(uC`3%n( zNR8Z;_xGX9rV`ce_8rqWa8WW*t{LtZEsc#!84l#lx#dxoODL^DG3@T7*xE2In!;BW z!G0K9f1-7B(}ij5rDI3Rd#AWJ_!N+A`AML4$Iq*hyQU}vUZP`MESI=_-}Xp@F#o04 z-5qiTjL98a@#($W;zMmj!o8XFI&=K(m;!UFTowf%w+KTBmm*uO{qv~vjZ%IwH&?sF z2(%xrK+E-abk2V6PD5`|fhJFkz;cgxO+vPubAd{f+t600!&2p~NXC{6U~ou0%*N7Wv3i-=oI|j>cShF@2So1|Z!yAW%1AgGzh*je z9J|ZAObD3b2Z&oIY=%0N5puMbK*jWUY>TH(s-vjYw4)M%`TuQcX~1?<{_x1{8>&D6 z_$pcahVB}mM||rk3!`evoOIGEB8KL2uNM|53~b;iZQKIB!$rPDX|CD_10lQXlFi)4 zQ|D(1%+mkpp!GPC0_FCRs+}6F+j+Mqz-qU-hXOL}HmSX>wF${} zvaTlea*rn^8wzaHv=ICEcLQb8NhLxKtUm|mO!vcIyz6X$=DtmDdfPJxtq5Q}!fS%= zaVprL#F7#-xg)X@$kbVAPO&t$hIRY&1a$%IorLaD;t_9wng$;4=KMM1mCH^ z?%P<>Sk5;n`+PdXYI*x;DQ<{f*5Us$t1hCI;k&ZXrnij6^qnP;w)3u!8O|jpdnCQh z-^ZKmkvh%#;j0Uy#rnxw!5j6i|fsM?3umo~Ng_q!5nNY|WE0L(E>e zZe#3$l!PCv|3jQ6X zj7WAna2AlD-J;+V1!lZTU8pbkKf_gbYyGhy0qA(Nglwp29evb*+*aLgP)p)hnFu9s z2@)SXV1HRjo46A0T0<5VaNwO8S^}mqnlGf+-?)T>tGn6kkSA=lE0k5k|J%)U5eNA0 zfJLPIHb9Y1th(IPg>?tqay2T2mk|&+j3kt!rbn-|h?ivPwH~0LF&ivJIk21<>FMy=5ACIn(1?N>UmzypMYV~oLo!E z*j8-|4cYhLQ9&>-+ISrDgRLJ?K)zI(5|`y2DZA}--9!lS1)~P4AM9yNd;gUVl`m-p zjtX7g(LumTDn>3^c{V>FN`Fw$4CzE&Rbc8bQi(yykiAYgw@mx)fQC9E+HrBBJW1_5 zAc?F~>O3?WH}NX`MRXn{VfE=KmjK>nCK?>tYNxWtS;KjtGQc*a1t{qzNs!x|yK;#1 zk}@sC^uulU>|E>BiE2HJtN-V$LoKlZbv$EAifqOL{w9lKJbF02_p;X6RV~3e?S&h{ z93Zkrby6M`KwpoHLo{s@QmVQOx@= zjl&x-7^wm%gUn8w^GHS9?~^BB0NJajlWbIb`T9F}pu4TPB<6Ll<&m-EZ_hVvG9zf@ z*bzu+=Fxo|%4Ew{i(k6*^~Fl4zH@2w)&z+>m{TPuWrKZf5g=R9R&a{aJrmF0M#YwO zde~TVYkAW*!p@Gw@<3_On&IL1|K=zs63256@5~k@<@P)t1wX>yS^A(F>9|Q6$eC8W z4qDW6I@F^e%wYSxksz_v+Cb`8CLyds0K%>*)R0Tk%5{GeD^j+H)n1J>SIw3X>nEu8 zId6)o|H6XDk``({saR`aIr?Qse}^|5y+~62fwM&LZi&~GQ>Qon=CWhAV#K`P5>b7S0V0Ur(^F-r(qd& zLCRChf`KDiQJ^CbHB+gxFA7Ew!Vb3IHBWlGt1Er$W-y}h8fX83 z-R@ioYoBrb+Ci?i^3FIg@qF1?inTFCNy#;2hugZ~RD0f@gLmYTV}~}saW&5Z2v&8Q zRB^w~_*5lTT@ucdwe9IdyiRBx`$TXfIpdWRbT?T-E=Ep4?EgT>^ybUJp}z){;~JOhkqxjshK3eF*_W$=0myrVOltHbX<2=Nzi^{s~q#{`5shtc%qsA{+@minc;!6O=Kz|l)X4=a3}&k4pZ6l@ZXt2a-{1C zfGXfCHLn^o~%d3V#$n^k@ha_VHy!NOWrrQh7tym*WzU4jzwn9w1+|Zc3FteV4fRdf%3;vt7&tGOT1{W7Ze3IPALzJlNLWYf)_eL=#Ct-Xcti4+$LUAlOXE3UCuun|@Y9KP|GN^uR=@j)U> z!AQYZkRV*hE+P07%^9AdHp{uHiM?+Q3vkxcy8w0CtTdC4-J< zrS?_vb1fVuEvBcsPlTUg8}M&Zf4wHn{hIhq4bkANbrvP3{OL;tEA(W+y<&uh$k45* z^=LpSCfgq+ZsX3t%MGN-5JKR}7$ozd*p+;BJaR!)NF&tmTasx>T=l9B(PT2Ph=^gh z3;l;2Ll>W}AL*aQAr48(adH3%n%`Zv=OCJVY+$TQ5Ure}TRqm8dyA`AE}S@SPL0FeFUscP{gXmR9gPjP?=nimi+MxE|SFr z9U^j8xTb=fuRXL&s|MwS{-=sbNrxIG{3aJC6$h~B^)%_N5cKXB=Ig36TYr35yhLD* zbD)C0Q*>~fZJ@l!$KbTdfnxyA07!G%*cj6gkO!n9rNO9M=Tp$KPBjann=!9welq@O zvMD5VTNg5?YKW7=1S@_zD1m69+xC0HEOMf#5k^0TysPat+>W_YV-FqK|L}w*7DhIG z544S-#ZS!9Ep{TKFlCdr&vGGIr8F9Q{HDmOJ6Y6st(veJn+fC7A4iQ2!GkS_O0Wzi6LAz^(|CF z0!1pO$%<6*-rQfQE%ql~D5A8;pkt~z7L;Q<}$%JPmrlY zRLPVV?Hu(On5_(Aed5CD5yOo*M}OC?lzMK~I=W$wDD7LcGJ2rk zfjDPS)JYH^FZyIZ@oMdE!0HcqJh4x7>qLh6(Ql{O@%@(;67>_86SPia5?P1^qSzmvSh+Bk5d9P~>b@kn&aSnS zM=NZkbb@M>{*v4(YAVQMvi!dM-AZ|mjo)T0t4%UJ1QIQ`yYN!y)TP%8#s zONaw99GywPXK$05Qwk)0?$3wb6K9}3=dAoe=2kC2j?Wv!OcLwFjtdV3<_@E95O+OP zx8KA+JeE4j%uA9Vg}?r=gBbcLR~sqbbO7ngtNJY;CE((aO(AYI1c+Ft$GrKqf;i>z zlzOqsWnc%Y_cHf~#6Qs8Mbd(9W{-Hz-DJN(>0+24c+ow9$M0$?JEV% zKAym_y&2(i{l?DVaO=M$wTFiBo$g@k7QEI)iawurexR|f9M}5}RgnB5p$Ukv3fu_LFUREniF36#s1sHeD=bHjG7NP*1y`FpRhf5l zCRN-&1Q_8cp(s;4(N-IVP%iQaraz1Qk5>-)JE235Zbh9Wi}V!wdwF;kj7*jh?W(w& zo)o&El0Xfhr)0kX8ej?7VJJ>4H_suI*}q3j2!@=ljLvR-)3nkFRY%k`ilOnoa|?*F z2Ao3IxceWctBcFckt>WHtcy743?$a93OG$Ya-ZD-Hvr2R(+Bo#-JgJylz=a{9XNWF z{OONmheXG#h*8PZxqj$(MIyx8OyN_WTryhpTg&SWFZTS9BJmudgHI1Fo8nW2=+sv} z>9&C?s3ajSv<`BlAj)!r>6J6Q4Xh5(zOR|IB=`vWYHasKxhp3rDrG^y0qMQ{!Z{#Y zSnriJ?~b^zUxaa_J(k1$!P=M_Dfv~HhA;>4G>zXj(4Nj@8ogF8ZdGxhE%O?gEwg(U{QzQ{>Km6TAegoGMqtUm4sWt>V+DyZ9re00UICBh$=rQysMz0mg_Tbz_m`AvfegLTUjWAHMY#ytlS1 z7YxwH#L-`UlmBKd>bWU9(TEWRBqI1ZA!S2G+?2Dne1;EP=p1;@2^1zJt^2qht0E^Z z)W<9f1f>F;24nU7du{ z(8_IjOWmeZ;YYUX^(W68-2_TG@YYhEZ#^EuXS52=Y zCOZnov&+CVQU}mK#VATp0_U#+LY<}#PJ9P^Up87zF0vLqp)sdXcC9|H2Cama_!4+9 z0DeNkyE84TF2Zo%uyf@3qDWhdKd>PJQ^1EFjL;L{dq9xrvteZ-mzBTxLqpxAtB}TQ z=YAeS=_pswAELE&bb=S)X{0S0e=!NK(3EK$_z=9yJ;R{(I&1#JC4s{UI&-N>Ik znhJLvdfz}|H2Ek2P^v`yCHvM@hT5H!!oLjT?h&UwRQmE~)4WFRuiPf*E+x6<+v+F% zjK;XG#%Ehc$aer`JfT6zps(1UO@-u{$7@A!GUt=hNE_H0Gt*VQ)-_T!E>e}BViA69 z@e`%Z^DYzVPP}SHdy{KM&SqykNxrjg%M`4}L9@36{7z9`6puGP-}Ezvtqc{$QZ zEyEBZ$R*plZbRnaS;whu-Ll5iHw2{XF}kK6*|&(CuP=W`HD`V? z%n@1OpW=|Ac>F78?0A^kAm2lIiU;iK$I0C5bmWfcVks?mwa$E2dBx6UvQ&r8%f-30 z!nJqRW9f9%{FJ=RUJUcHC$-o0Q49;U2v6 z<)NzF>N#awcU-!mgxpUfN&ugMAo9ORbF76$umjBsvKm1+YINS(cGfOlmJczGm(iC8 zRTvTjt4n9^^BzLl&K1IIwW>_103~slS&;02IK)>TOmXmJ)9y(G8%y9rI9gzK(|M{y zemVF+fA-;;P)R&yf2mF7Ul-x`Uf>}zgL(P$p$aw{0ncg)mwSWz8iYsSYfOI`+hh?h z=>4*>S5b~}+NF2QThv{MFI4I!@*4Gn8YPSxn)C$}&Kil?5K;Bty`YemOtAG!A;YhM zdGV;Q2kQ-jD~*nx5$k$e-Un5p;3Cy}-dsOhdtukznxs*^j5A`LD8aW=LeN(O8Mrw+ZR;H||-hFShMOSeRKkeNCZ8eIdvR74k807%+3Qt~qr zE;?fVxk`a-Re_~Tj)`23uXa@GX1?oq1#xMa=6@~t116~NOyY)x15%yg7I!%loe1}| zL0tJi9K0YRM+Df+1TK4wkBn(L#GHg`KJ0)44lL*3Q_F}%Nl^iWwD*&7&(5B74dfTZ z%Qor{O=Iw}FPfY(b^toGEAd?Ct&3fl?EE26#7NQ#>|HEVG`3)zvpg5$cJBo|KrA(y zk|t^t!NVEH!6ZY8N3BK3jaL|CRh1ApnXcJ?ibok7aEp(pz^o1>9u4$1*24Qi;)>a} z0y@AQem?L$b0OB>^vO@+Fn$OTynS<8+@Ztwr@L4l!J{Jz5yPW+9BsY?WgWAY2kA zf3iE)RCTmpaENk|45!z|J|NjEVnVF*+aSw3qF8iA_>LRp_nH@ta$f`OjYb5*B`$vq z(r!P}V_IKuJ@r__a**!2HA?OtEq~LML!g{pPS4+~IA4n{xKgr=#SplDi}PQ)BRy3YDqxMg+dhW9?I^#f}CYv<9N*Xa61zlJ!y{IJXIRW62)MqqdNejkR(E0@B`D;erZIiA@u3| zBa1&@=GZeJzM`I~b1B-HQH!rPHRv4O*mON2#i#&$qsFC;>lb>AtRUU=*mURUA!G?=TgSh9Pq zOcNf`N8_)i%3&hXnohtOwOZ{q4=L17{tY}dgSC_C#F z15N_(8LqCm$mU9+SL~aqNJ@o&JXwAy)}{p&fVu%#2TN7=_FggiwBR{7`Qw=xS<)}j zvxG9!`^{K80kPFvDhga7U|+9k9D0*m4w3pN;9J(`HvAi9s-t+C111+=H2Qh*Xide( zAx>;Md*K%3n!!!!asV0-04P=|Avl(Sfs;`-75PPiChDv&i?JDPz_90!RXzI4WzBVo z9{`pE6h2E%L<#Z$EqR4*Q4pG?tYGM!a;KO=P)}+hnXM|uH#>5W3^O1j+`5_?^N#Wh zaDr)+Vz1Y1pxLvo)Cdy*+M?O~v8S3sI1hvS(;-l;%{S<;%}$Tt#1lka1Su4gL?r4p z2KzcnlqH%ks8=}>zPO8WJIQJT`$gX<2`0ts1a4J{L+E{@7>}#7+CqV^igHx0^h1`7 zdX{SXImx1x8#LfbEAa~L=R7$;3MJ>6d~nHk{Vh$<(A6VS|2h|BYFBLzIt0&oku!jwYAcBXby7<8?X=`Dd)g< zeMGJLIcTMeEm_z_PdcPq9%L@SgKEUOSxZ$6c4*Q_zqjUOlfMjRB>iRcvTHVKGleC5 zaaiPw^kt1^)k#Q?h<6$Wnr|z`z$XH^}eE^nb~;` zL~~Pq=l*wD3+Ptg-J{>4*5h=r1?^>QCtaAqh7)pgC82CL?pyUyCLV5gTh`=CPtNfE z5xKv|vRP4|wJqERx0Oj91T*81IsZ2ehh!8rpkMkfe z1O{=#H?4&g;#0fs%)&qA9wDq1^kp2xVqK; zS9-!xcIF@yQHlB@%gCHp$&sKEwsaYTvU)miFP2AE>ySrcN;<7qxw^>y1HciYlp9ZZ zN6(O5uM=qFtA#j8Ks$hr^R)B)+vVr7VY2=+PxfU3=H9KKn5tW*Bn(lF2nP@@;&(?` zwkD{pbcQpDYK$8jn7!XpCdzD5(;-YJN_I~gA3tY$a^;BEGsdoWcPW(|A6)aXf1Elu zx&EQ=lQ^9m??EN!nX7&)s$>J4a0#P^XC$e=9Ud2L@FAC5tj;ERo9lJ-*5J(@;BGkt zhvE5fOUr6^c?F`-1Hzu{?>m^9#9Y5dZrm|L61t=|Av)+%n=$^#$+Mj*Fh z05h)MF1Gry>vE3v3xTtv{{kCK{)eR~Ae>LHo&Otnt+ zFn~Awh%0zw2`C2y$fooCJY(Z&I0^jZiTq@AHq`%SbXaN#^&B`h?6WyG2L)V*H}}4f z35-p1Y_PQSs>EFS{WYP)TYpI(K~K-Rs|`6&+G8x<4dZJO{3F+_v$t~!kn=(4j%y=& z6|t8zL83rIE&la2vCL? z-f@n(7@5eJ0$Ym7bEudY4?degAXMx0UW!V4*w4#$+=nbcG0P`<2<>4<${7_NLKB53 zM?d(si3MeXG3a{T2k~bgQceXJWP;tv;lIDp5^5~r;{&BA++a-jB43LN1ahd&%ERD) zw6{UJ&;th-9SLNPa93viQ2yyD_R?zHAWYDuQ{6+GIP{M(-a@x;xat)@{14VtJ7!p9 z3O2@BWhs%2x;f3u&MeRFLL=S`@7~@fLfYyZ2I)x(y~afSIU6&rlzXxpR3aHsrkjfEc2arFXAfR(nsaHK+^O5`MsP%O(B(DH@kv z5u2a1=xt6;U}kCUgq6n|soxunoxY|#tvv=yV*ktKhG2qtyt*eRD;gYLdGNh&#OMiwr;`BiJQ0OBDE2$`1t zXF7-{i-(50?WS{_fWfO$lS8%O%)z&c?b1)t`!FVlwO&m4ZZn6^i>Yo5V!ETKjd*jf zdtf5(7g?ci_{1F;f4eqfI3f+n?UOWD1P~x#L`&Eruyy2|QEfVNSQy$SV#RhVt)#ct zLyZfv!k6N`7S=F6(?5;o6~En@Hw3&5=3M$1GwReFz7-djygVrB(ZunVH)8r&8sjeh z3Z6xn`8%p7Sj5)ct^Kf=YFY|+W`gYo&T*fYDK>ud<|#Y`7(3gY$PAWr%iFRc;1S<} z3-AfmY`x1j+KR!~`Ee{FN_G575N4;cv&;OBolhelU{o!F_P=GM5S}GF7pLbtAj=K@ zBQ7UgEm2$xSaNJv@IZ`*1Vmj+fT_r<###6(JZovN|?vXA#av0tXXN2GAV~ zDHkS&)KQt}v}?w!XiFJy)(Opm-Wt`%&%yz0g~z*V&+1$X_*}&UBega05Z)cWt#FY5 zKG-Po7-PuKUf8$$Jo2&6Dy>d{i8Uo`8HSdf<(E;vec z*KBszbg&t#L>kHerEw>s_*$GN-*bRv@x?FD+}OxIs4Y#2t9X$$Fv7?K2Y5F%I?u+| zGgd5TviYt0RUAK>Ymr9Lxm1lCd4az}{{2f53^3!i$nXIa8Ea;EtDgq5DA=r=_@Z|N z>c`gOMkYNd%$5?1YSMDa-fipa!z?zf4ezCk8YwWMSmPme3hF)M4fy}3++#}Qjd4^E z=bJ&*s-Wpv{GaQJOR=t#h_J?E@cJNI#f-}U|33i0(n#2M2P-+b9#c3GKfW9s2mTIR z&~%Ny2}7!?>^Nx(4WLF&qi9o?&uy{>daRX&rwYVokw^RCy5Rcq>*na|-oMJbuLGvH zzHtmFt$@irenwKUrbjIMVwM4ER_Ot=Wr_xOCGi7|fipt}M;3g<{Lf!Ja1r5YKlC-n zDhZl4+cwr|ZqN41+5-+=F16Kg(d|Z|DJ;ka>}$L3XP}i&2b+0n8UL(Suu#ou0Wy38ju|KqNGeM z!S&FRwI`>2m5r^{W1)`#K*eov2p91*7`@vEvXD$wiSN^`c+)a z84+B${HSqiSdB}~lDFPxDirKA=jE47z z?kpup3`OR8n2xY7ST?prrrgxml?@!DMobybf1zuLaHV8McV$F&oqXVzlTHTPng^#G z^b_*yWCdX@viOW>Uh;^;R0LfVFe+ujl}w(b-VvL>Fl#E zE}Ua^FOlIm@7ol3$mKd#Z!x8y!J@>N-wDW&N`PmWFE~y$hN==do@u?}S6|6XKZxyP zz7~Qz%4lHbbs3%TAnl!g#JbM<(&Tslh)ZAf8mP+N9hZXBHoEVA(3Q}NQn6nas zEu-fX#sM}(E#Dg)bdQ)&2KKNDQp7m9G7?Pz`Pma+g{__b@ zrI5!l-m!Fi_|%d{EnE4H)CJgF|K)*8R^ycdtH0n2teD9$0YKS-qX zO(9UcmV$QmAa#Qx|0Mxs9zyK_7$L$~QB{sCNfq;W`@pRdEzE-D@MTW6TCaXRmRuZ* zu?>~fKLig_yxzCD-F1d?;(jHK1p&Q{H_B7oT^0+%rZUV;+Dr#25-jw%z9kUi+ls16UsIaEytCFh0#- zqQfp9GH@i@gbP+>#p|~JMbjwR=@dd{_IhqB1>Id`LLNtTmp7L$1*-&}grFYA>5ueW zksxA!gyDJtuQOKt3oh(~IZV54?V!=~OYGfYz0IVMn>RATMif(Dat|3lV*sn4#6MG! zKvyrx&3bCV_!Yv4zbN%meaIZ@U9+jDpP&}O)8(B=_#+)@5h`!puFyG^^>2Ju*Q`HP zB7+ie)HP3Kw1*3LIX|6JU#UPOJd?ebK0?Jt&MDFpqv2ksve68ZX$O1GeGZ_Bh`piV zm)MfnfuBbkTI-?2g$h=|pUQ!O1NP)Sy@}sUdd0cF27&Px35ht7NoZoC73mIfsNZsy zjcb>Z^w~tRmlg9sLTPUBe==#`jHSMyVB!wfUr5e9B|zTJp^2^dFaU_bFaXi}&lp1q zSZUZn-5}*8_}e>i0xABXQ6mMR~cAu&rylMTNxz`@8AdR^dSo;`% z5|NlFt2b0midBRNIzJViojxw&NWQ0*)VzcuWo-&-BhGZ?6i5qwgZAPjCre#A0HmNW z2OFB!@&VBJ{UAERz7a?*JqQ_&b7N5){2?HK86w9meKtfgDA1v1k%7ouc1RlMqZcCA z`AyUP(-_1v+5dV5uwo20* z=4k+hvyVHU=?y}UM{zX*X6mv|pgGpB34liSGYy?jkhi?0XNIOvfTV~@Mx7`YVxQM< zb|Syq#%C3wNM3I;N)L=_gU$uqgT2S2slXR0YZUls*%##_wfGc>!W{osCs|I_4s!PtX3-OH~2 zJe357E=_pkVP@K+PMK}>A}w{C0E>%wCiBMRB42ln3h>v}DL@fr@Fh*pR*Z5S)LMRF z5Z^c8l{6~?T7hQj(S9yxoCSSeYgqCm2O*@CA{A3{R9Mhl zKm?SsJRfjR{GRaPE(Lm5c*AMcGYmrA&Dg-ru&Xy?0^4J?U;!d6E%&*NrJ6kobCM;Q z9utKWK?Qg54cU!Rq4GUH_!XziV##9;{^ye>5}-;(VgAS=;wo{7Nl=FX_;MS98!l}X z7?WA@!|rem#RrFXVpM z7TGJ44}BOIWSJ0{n|*g{Ne(t?w%?Cg`Wm%@tvxN#GKCuk*HGT%gEMX3*~F9Db7_o!^2y%X!N%h6g>6 z&MZR5-L7D4dR`ChL{9>v@={QwdXd=e)eG0f1Q_I$9MiCdaV80%+q^r3@%>G*n7DTu zKN)F4-CO)a=_zcrK~_+=W=_R30&HAJP~a?EUS9fPa$1=AA`TW!Rn2c5l`e+~20Gx` zK_&|i2g1mF(m7G0p%FJo$1V2(`2Ak{x)<3$XuG@ghGb^<(%1r*K?XEw2&f-!ZO5)E zSYHG5Za1W93!_JJS4m@|WBGK6g4)7@nJE|_`UPGScc>oTUYm8e6WMD@&#$>mIqCzt zif*l#c{v$_H+i3FCEr(LQj~{FyGj+T6K;^aq6)Z#stC)}Me3Ep{y-9dOwGmx=$9sX zYp&L8W(2r5^Q`VwM;$!OE`(~0;1YHlW~IXVEO$@t&I|b5{k0?mp)r$jrH(x6FJ&hJ zG^wB~{}WDpcscS_mty^ju;^I!(z0Qx6e9b<`$?rikT9#F;E6lKi@L~kU3!}27rf~a zIu-}fY9rfTNNC?c&Z_hfaSjaN2@jh>ye-iH5OLesCX*uJ%&N4%nJyqkogZ;JBh@-- zEWDJIogxujDvl3AjLf`9p|mE3zg zjY0b$ZYRMZjEd{L$xX2IVMI}bW1MgG)Z)Z{>X#`kuzq{Q>c}gV^o+%7+TF-n{UW@0 z9Jz{tD`b* zq~VQDs%$ftx8DhjiUT<($+BYViH@*NmiAGFLso<8? zGXO6}9sJ_ey@Nj|J2kRrUKKmKur3LYozwSP`_K2WE7{}gL ztkv>kVN-<-lOurK!G}DD(9=8CF}HCSnUNj1SvnM7MLQ1)|39e}7AsY!G$EuP<4r@x z^SU=}c{JN>D}ggam=W{SQkf z|F9zXDN@Hr0ZE$+EkH~I|0Gn*MRyYHgV;5Uf`3^a&%aEbleVSQ5_j25#I`mXsg-=i z&UezCi3DM)_7tz;Lzqk3AmY|M=Z{h)Fh5rMHXIiE|8Wm!Fx71vz5M%`m|0X@rI1(P z>CHGZ!B?9Lx+ativoxU^Ipv1P(DsV0U{W*`()Yzze4A&`BA@DdZ8JC0SzDgXH_~Tp zyJU9({bWvr^mlSN2%FCM)e%riw#Y$Gm1#Z!+;29he6wAYHo&S)8L&a8MEm3V&ZNj4a(})YnYj0I(SBct8wX?bFQI>mj4i{=Ip6w#hD+VW`!fzzzBU^s-ZBC@a{3_r2x%XSbGa*!}U^ zo>lN0fsJKDzh@uKTDe+A5>Q{7%M$Iu+h5MyPAK63sdZM`rc=4$ERLNT2&^ph7V77? zxE)Un^O35Arrb2*PCq8fp}eK;;+c|)$dwZB2v-UA##)u6Wqfxq4ZTo*BJ{zYE=lH< zJLLQjVW(5o8l1$mzb2eYU_@wyPU1gv*xEDYemn`=bUF!sBZ2sujV@SX%bMjkt&J4v zglR(uv(yPdOJx+;#2+SF{rp#?Jq5mwT$4Az@(9cBdZ_g*>~mP{!EB#WaJR{IeP)bi zMtVzy-`L-O`Hy^6ODjWv-CnJ%YQFamPN%|G!U&JzU^}p#XSEb?xvdmmL(td&aTN?r zP01dmMu?(ml=i*(S#*Dyh*odCP*@14S|*6Nvpvp)0iY%dsTsF6g(l8|=FQ)d)egA% zC!I0%hXv0-xKrSzc!NAmuv_0n+IahZZ-+IgqLb`n zY-H6V%cP6gv=9~D4FAv4&*&;sM*K;)=X7pai4H;=1&0y@y@c|}Co$(1gR?`|-7$Q{ zEkZl=HCI{-!KkQ`sZ6qFLW{jEzH>QqeoMs*iQtyW0lupefJ@XF>oOHYwz^Z=E=$)J zh`=_j%!Jit6V&xq78ZP{3Yi7e&m6apG#E<|G(3n`s&%{`;e1#*4lS+l!PH+5?h z=2Z1Qy2-Q;{cgM)3k#fQ%^EEFI`ar!;L0PHHXRYq^&dHja&m^!(4I?Xaz4KhTQWVv z{8oP-|+gwLSFguXg>li%mzL8vp*=!8c*Ki6+c3M6@^-K7R45*6BhLO5UNhr zKXBfehEnEBj%{`koT(|;F}{!WcDlpIWK~16WrU&$H3_v#D-$0MI`SBnyW1c%EDXpt=l10|E)z+MvZOd3 zvor07en^DXKE7htv@ADUv;DKsp)EuCtIt0!S&+Rb(n8cxC2DNc+et3x4fXqj`vc|@ z_Jt)>bW%Ntgn|7MFrV+$clsD3BHsXQ02XV;>@+pwO-%SrMxvpXKY*O{LuiKt2KR{@ zg+I73r>b1HHQF15lVA{NY#fX_$o_#xN zOwn1#29eVgCD_$q&kahx?0g_*k0l*s8BkgFy9%Rrr8ZHV8F%YK)~Db>ChU4|bA4cVE7lHy3VePVRsq(|SwJ+~$bK!) znS}pxHIOE&+^UvkjT8H&4muSTT&8J(uVkMY>i`1E%JU7eRdiqh-8hI{BU@v7rV*B( zmP;RJuDHn_3qOgL)f#!#43xX2wtE~eIbmzOav;Yh?Y1G9cRlU`>4u?W%nFtaicLX- zwV^2m*aWi)`DNLASwGQ1@GsxaiC0wZ#G|1~pqsK0L4@1vNU{S!LY$#9@1d2i+sbc~ zOYjb8YS5~p$fvr@Mg-5p z;P6DW;9TEXhpMsDwwzB)lPX`={&&Bl8Js(St3O)Qec_EWday%$nvTa_GBKvJ2;Ghk z+tp4Czmj6I&k>()l$bo9QCT`~0QVIgiROAka=xX#Q{35IfFfibuf0HB;z!-q}wTpy^= z{q-|w1Szw+98{%c0+h%6#JSn6&xf;=nzJ&S4q%eOM|?smP$Q+`CPx|CC!^mnR@R+_}$Ul8*JCSgSCAjfv z%!7&ChU}YqE#})7q4_fSN@=|rvt-$xU<_cK1Fl}q=4W7Gv=)HrU;}xrf=UVVP)BQ(Td%TZ z%uRu=cnvfJ5wO9Px_xLB^}U~7j$}1`)rBqCZSNFV#$wA2kfB`yI1j+;l)Z8}^*U8X z&7E@OsuSkm!dM1|!@(DF)ftF&Xq>TLem;V7{7RYgOE_b>jym)@Y;bxG{~t%0bLaO_ zFcyrAH+rf@W5()k!;A8%C=siehAyiikYIJs3>m~;Ug7b{No-)VlC7Pj;mpxip&iHGUWasb__;6 z4Flm8nEhz8(Z|_%qSm2wpDBCb#AM#;TY6cp^U(#r#&aDjQ+Ssg($<_qbmyiuD_1?b zn$0C1xhNlpbVh^R{~6itEmRr`&~HM{_bnP9uqND)oUW6yn9n!FXL4Q*eVsVXU%Q@W z@_KYahhU)HQcEdwR7J07*`LGhX9~!*0b@DA0V?_;!+S$0oz3>=6?6wLj|5_}c$wC3 zVD9syi;}Vabb$6nQ)i}1NNrhtkhrJnGGy3Z5WX;(rlL)i;$>Z1tADZP`rNO0)|LD} zH0ORt_`Bvh8Z)yO#oj{S(X0A8C$CHg^Md_HOE;hB4mh-Hk54*GjpO|&uJ{Awx~4c+ zf@dWY{n7ThJbiK3$XqR1{U!qUU~Loqv&4>JQ0?r(3F`&|hcCq7Vd^9P5hP{FlVoKKfT9i9__S29JON84Fv<_4CV$R4bw8 zw*3A+fss>%sOT)72GJDI*a^t5KoCDpC@pd^OR4cZ5U*sM0+m zjn$uGRvQ($L-Ts88Ap5371xU;B#5gV`L|29PioG=N=D@kX?_~u$Q?~nu&w!3(U*3^ z#ilNk9?K$x9Q{Zxxi@3vZ^mGP_nzDixe3i!}T^p zKjGIk>jo?z4J*&l;0m>KFWCQ5*{Nbs{x+aYx?UsB^n9$G{WXh>bRdeoK^4UXlAn{u zuAtwAcAThzE@_b|&0K(Y?7R~!)nH=SZMrRpVIXdUnL~21>=jy{xMb^(m(H|#n$;PL zCT8(GVQMafGL}fWW4XPT@r9i?KrzXt;H!2%9VjUosGM4b5BH18*3e|uAzs#IM8Js8 zumDhXgB!ffrcIfRodA9Bw6OI;rvSF*ZBF%akxI>6y;}*E1wdn)Zpg*3gAy8v-N*FC z2jK$zffJnX|IS(>L?+C-L7Ud(TxGDX+>#ld^ZE%@$ruguMF1|hSY z>lWc4%WgS{IuzEuZl+D7zlEZ9Uu9Ar=yt(1XWL7<%rNn+wEE58Kzu7>} zqUv3oSo>hgm#i+CzI7!1wU&Aad$(-)rQ`UTTAqW_AK%)d2m!vj{StR0k>b)XIPZhH zIezi3q|w)l$5bIa8h^>Pr1dHq$^puz@jV~X5wfE!w>txMxYr{;-eQ0egLpiZDou?5 z_|y+9jmn4GP~s-{A$&j`R+VHczyrxs%bJ+NqmRzmj$l{0aw!m~T3ut$$hZ zR{k+aeQE=WS3SObDCoWlMu1^a7{Alf*LDHhWEE z$M$3tE>=4L<|wv;HTkujuVvgELQ*e2^{?1v_T$OmEMmHXQM6ri5rK|Q3yQ1M_20eU z=YcbQ0s9r)$eF)G=hO znUATN$BYSh<}!zPn%Uafsa&Gcqb4;6`fZ@P{Yp0c2e;QqZt)eAo9giw(Q!04ZZiBQ z@C71lP%S4F2aFsm6xtZ!CFbnJMOp0w1Puv?se_pw_f^I7HbgIpb0e7b*9b&9tTTvW z{#?~{>Z{m9tlPI?02#d>iy>QVQ6-TiuE49RwAN*Un?a0HK1{7(TJW)<4%PQqGyQQw zEttP~tirNq!Um3h5PZats-A1z|N5p&8D%8aM}SGSk<+!M+p#P&LX6QylF=&2x7KD8 zO**{s=4l{^R6^{-vh-)mF^|9i}?mz$sXH}H1_s% zzFftmcL`wt-!j>_d68jiw(z?WY-!X-cE6-E6sgY&SRcwHhmRMu;71hR#;NAV z|MC~?>Gwr{%~qun?}Y$@XPncO8?X7u=s`@RXD_ontW;rG`sQdZ0$0KAd*wTsoP!|< z5a@3!i4a%WLxY zibVWP>1O_SyP6wwdDu`ta+>4Fm2x%*d^(AYe8tKddDR_eVzh( zky+0a>jmz5Ll5i6pRRgjDwHrzf+?7wDlkvJEd}@)c4bDG=}oi9 zC1Zh!O(w1Q&0Pbvea|(s^fe1GVn&4A)P<#y!(eUhb_v}(*w#!`LOsZOZgi-Mwgz)e zr_Qi)Awh>A>^Rwxi--?ABUE>>WR0Ca!|_w)h1~ zRponl`_swIt8DPLP5EmQ$G!{#MmNz=sy$_WFgk(4KD!MVk9Oz!iL%s4WJtJn=Kyox zm`f^*46<$>s>%<-7fE#u0x!klhXI*eZB`VSK2AQ{fOx>N5iS2n9oLR1Mn)~LFw9PS z;8prnAJw0{^xz<8v=f}=(}taG42);M%x^5d>6Ip$T)zkLH!V>oh~DkMs^g-1)`8u% zDJ0*Gr`7P7_3M^EIfvE-mLwq%>!Cc3tNVHwJaSh4_by%`Blwyxy`OF+N;z;>-#xy2 zkWu+`DM^^>FCoeiNzxEby3RuBW7wcpQw|yhBtzx5Ek-i^fuT4@n83HZWMHDMt0xu0 z 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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/679/bd93dce4\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 08.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" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \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" +/ip smb +set enabled=no interfaces=lo +/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 trusted-dhcpv6=yes trusted-ra=yes +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN lldp-med=no lldp-poe-power=no protocol="" +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.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 interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never 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 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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 match-subdomain=yes name=mikrots.vados.ru 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" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=amster 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=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +/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="ether1 - Unet" 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="ether1 - Unet" 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 \ + in-interface="ether1 - Unet" 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="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ + src-address=10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=udp \ + src-address=10.30.30.0/24 +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 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=output disabled=yes protocol=tcp src-port=443 +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 in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +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=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 +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes 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=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" 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" disabled=yes \ + 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 disabled=yes 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" 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 comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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 src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes 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=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=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=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 check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add 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 disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 check-certificate=yes-without-crl +/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 certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get 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="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260611/20260611192002-Diff-Config.rsc b/MikroMaster/history/20260611/20260611192002-Diff-Config.rsc new file mode 100644 index 0000000..7ea8ca8 --- /dev/null +++ b/MikroMaster/history/20260611/20260611192002-Diff-Config.rsc @@ -0,0 +1,17 @@ +3254,3255d3253 +< add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ +< Direct-DNS +3353,3358c3351,3356 +< add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" disabled=\ +< yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ +< 10.30.30.81 to-ports=53 +< add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ +< yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ +< 10.30.30.81 to-ports=53 +--- +> add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" dst-port=\ +> 53 protocol=udp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ +> to-ports=53 +> add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" dst-port=\ +> 53 protocol=tcp src-address=10.30.30.0/24 to-addresses=10.30.30.81 \ +> to-ports=53 -- 2.52.0

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