From 23e904c8da9f5a7b2c0e244dba9a05ef714a8abc Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 27 May 2026 23:20:17 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 27 23:20:17. --- .../20260527/20260527232002-Binary.backup | Bin 0 -> 259483 bytes .../20260527/20260527232002-Config.rsc | 3462 +++++++++++++++++ .../20260527/20260527232002-Diff-Config.rsc | 8 + 3 files changed, 3470 insertions(+) create mode 100644 MikroMaster/20260527/20260527232002-Binary.backup create mode 100644 MikroMaster/20260527/20260527232002-Config.rsc create mode 100644 MikroMaster/history/20260527/20260527232002-Diff-Config.rsc diff --git a/MikroMaster/20260527/20260527232002-Binary.backup b/MikroMaster/20260527/20260527232002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..365171901216dba2e5f58fb317992bf781145b1f GIT binary patch literal 259483 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

4t+L-m0sC@@;yE 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񗺳KkxzYNjj+6V6$444 zJ>vx#qT(w2{Ihh$ed|TIBs|Ldm<3VJs5B;es?bOgXNm*86^gc3el*hn%R{x!t3UUA zOD>O{w{B)2LUFxLI=EI8C$B?BMnm8`=gDN#YMA^J~NNb(Y7 zN5pyyS1*&KbZYAGZG>nYy8|V?<_SjaH%sG3{%S2c5L18I%RIL|(D5~9_JrXW%J^Fa zvwq2RC**g$u1JPtz>(Rck~3Nx8Un8=D^ZL++WuxP;M+tZkUbazkl*aXo#&{BYQnA6 z(v3?MSs-*TlhVq05gP0Xpa^6IO3qXm57XCzlmqpkv03i86v*33=zAHx+HIR5TiU$Kp`>L!DGCSjhq^IYj9a~+GDEHs`v6k^7j@GQNU4(ebd5@JkwD#Z0JxnA6SpjT5yq`gg^xIj~#l>$m{-G&*T}P zvo(^&G@vVBW3y_|w%RNMo$Tshn#aav{limR(y)5lv{bdpWDg7ku{h26Z8j;(r-Rz1 zr56JI>)?NiPd)D>YLU|cdTfm33!v!ZC;!@2t1t=1$Kwahjs`7JlO) ziBwp%Wp#kmTz^P>RfV-GkMT^BT^kBmO0FY z7t{JmcJ`d%6~r9IDWAnLBK->;dk?gnL=!Pa)aza^mCaUm{^v3C=p?IAfg8ZcuIfCw zufv^wC*(wP4^s7lvHl}}d0F@iTqH^Id)6jNr0jjZ8GT-iO@c#Z8oXAdPGj{9k~J1$ zFGN2It*KJo_x-tV5Ra9>rb%IPEa;POD1$0r;d6n8RtAfq%X+G~NZ9o_H0I(G zt$tuxt&uJU<(i%=zs6RI!cl+g&nR+{kl`&zp1LdPFxCs&8!XcYRuRK}Ia8!?3Ft1O z2#ROj8bCx)mNM>+EPByezFYbQ;K9{gE7&@4f$QsH;I~~nPK37D=U~P)(jl>;Ku4E7 zo;>q;`Ao3^g1Xt8nSy+Pw4a@ZmWGb&k?YQuLB?0d)y|Uk9A*#bixkk& zg^)Bqge4gh`)H%%FU0c)fh(Bgme>I|#*hj*2Aou$ysn3#MokrAK{B9j%7Io?nQ-VP zt?eg{T*44BBMDr+W1qg`Xr$U|f4Cn(mAv<7nsyXZKa}%l0}mq{(ovE7ebt>y(+#Ex8f~>b2HWJZ|2>3ISfxb_{cg}yKjFCY>69xoe86I3ZIOea5mJ4EPPFr^7Xfj(T%iP>l#Tng#RJOxNCfRxiS}i#=;6<{T#r23E&~mr%qd(q& zaSaTQ?MRyk4WD8EnYYDJQjZ-Z0MqXe;C|5dSJRQeh*?K?`7w6PJQ4Sqks~3DzvrE> z1?e{DA%d|OXUwOmBMxU>np{+xOX^}TTt&_sXt39%vnZo1(#HsQsv6`uhNV0DlHv&4 zAnk{7IC%qk-u*hXg_JK>%I;9r26L;zx*lCGTeQ;n=@gsR?5@%=O3T)ZKDlSdv&NAB zbwLT=LCMetQTnRtWnNgJhg~Nn*r2Dk)K~e&v+7c=(|lQ)je;T*jDVa@oe@kH z_WkplN7hH@7MW=m05Dtj9pF1|ef7U+Hf-wj=6}i^dnK&Ta7w!xsrsV!$GMD69NSQC zr83NC9&#e$=AMR08P~K1R4l}ceLhS!hzAhdPCFO*GX)AINp&o8fobmRL43ofZc9jc z^VM?;;G&pR-~k~(;D(XWK2uKY1va|wvHeF0x1`OQcoE#A4xzIAXZUS>@vvVnmWh3} zp~><_Npn)&`7Z$u{Wkqr3{SaX`~9wVN^cT%#U!gOs@{nH(eh_-H%!|7$0mj!)Od7$ z2G1xxu|0Z(i&`%fykY!hkzg+N^7Bft5@xe#`LTFI2?AJ@$j9zKw07h_XkJ9UNVY05 zaI@hwO?|hc@55V@gGF#6uU^7+peT3`Gl*CBVKxEH-$^c5hYAykJ$Jli@+DXJQZqEU za3QXg(WwzVYWf3w7H@a$CiYX=tZ$Nq!wG&qjW#ytkL}u99KTuNuNyclbAySlIdn-i z0368Tq_4?p8^p)48J4;}c;@Bh_o&p#%z4>F+)JUpVxU8b+$&lQ;6l!jwW?l>Fk94? zw=vxcd$6*#jA~QtTMo(*4KzM^Qx$*)TTXvgzNHStX2S2p-aP1!?S+4L)hMrE1&qU( zVZ1FC)t%apIV_;~`I_+19g~7b{WEAi=(q6bF~BqJXIoupnc9c$W!c`8V3RG_Y=J0- z0wkU(?(eC&Kh*9HYv>%ONT~GYoDQ5i$1rw>0)f%FL0T92sMumHUMBG=&^=IE_N3q@ zIBVV#zvzYbFGO>O%4{9ypccw{HbL8*j}6D5GgAjg5*1vV-FkoABS3e=Fx+uv*Hz;; zco5$vG;fgW%t;wbO!`e0!QD@YjIBn!;{qy`0(j3x6f2FaDMfFjbr?_=SCEgq{qn3B zb;fv74MC%Jyg@P3;2e0`r*M{fFtNJ9evH;^x`jl}5^#k^%~#Bi9;uG4rVR0M!5$~X61I%8S3@U5E?&Sbfa zvB;}${2WxDv8ragC;USQE`{yqH|e>%tl%NpFxg?wYJ#wxltV>tG7^1(5>w26q_PK<>?+Nyk?s(Ejg0x0Emp3CLq#+9+ z*7}Sl3ae#gGozYb{91&2$wk)85M@i@Cp`{9_262EZiBOr4&e08dN?h6q>MuX<0}2{ri@2*FnK%_sfd_%l|&;T}?4u21aki57Geo z0Fs;!@qZMJK&as$gmTCo8o=PtXxE11!hzS5h%^J7mJ|Gl2;{=Nf62KvYf%A>G!ds} zZDQKJTwqd2kGiT3z-Sx|wb=c#MbDW%g8t^P9XlGN(Nke!V8zS4e?DQn*ZW@ObOxha zGPUg1$CbZ0H4zoi}a53U&m%p+a)BQSb4n=a(QSDW}OaT#{* z*FpS-oJfu)!96=VziH<9m|{Scq3f&vaN{|%IVekSEk&Kir(pRLV9W(PtTKQ0wPCb3 zy#GF0WN$Ey(R-{5{+ekhwe!{MsmNoerJKKMEc6{XcZSV_D>N|(n*MN>u|+g&xAHG^ z{R;V;F_tVnPrF9W8vGp$aGb5Z+^|JR8F5hz^EsLf=ey#OzOVd}$^PrT48^A9s zJVG?JU%m(&5KA6|TNr?e)N_PCr3O^z;fU(>y1F#BK}tZU44?(Z<4p$~F35HR#!)AM z*w3Tb@amDr`D*LK$_sScE3uoXxI%2?>oC8}c$W4<58a-V46-M^Q@zY(MaA+I$YE(>JxV z*aTtR$_mJhbIC>Pd854PSC9@&8HaeVdIaC-XSU8lrzmO;%AW0j%9u-o7 z$QvxjG2aqA8NG%+E-aIWwoV!N`<7_`Mq0A&&=7ibB$Z7enj%tUqq)Rfiru_wl$X9W zS}Gpq#OmHVH0lk@`+U|>L-TF;ieX4}AFhoo0&*d722q%=`zV04JZ%s*0q5=) z)Apn9I#QgMYyP0(H%a9y3xYvgSen?+hPK0DMGRLiK>c%!@zD{-dSqMxX-l)Y2$f>G zmP80Oz;{z^iU>4?7&?6NY8sx}{c0W(`f>rd>PJO5#1uu)>ovnffVaKZx)DzC7gACk zcYC3>hi|fBPsOxVn2%rhluxf^f~Ax+Nl=3FE1dpvJD%=P27C;Mcx$0^&$xobL|j z*la9%kd6HkG#FH~lPIHxIGCF&i~?fOpwMBMSga=dV~B^DXaV=|kytkL1~*gp6gRPKNoLuEGutW^w%=&3x< zMO9Z6EQu#G^W4HfHlTK>5QI+cZ&=KXm+@3MY;$}vEl7h2A46zqBYG1i~nW3#xymQvw*+O`=n2mxR#HpvO)w#f)V7Je98`TkeIYQK5BjlpnsVN-5p# z&ZqX6^-?#l^&4WtzySL`=rjI~bLf--{{+Dvzq4BC|LLY4hIeZ?IEz%NiMPj3$%f$|(H+wBB?OOark~(u(xvPm{ zuTboob;*(2w>g7a7A55EiFlH&=zh(i*(123?VsNFYdTm&FKXdrs+~Hnh63+In7l67 zfKtqcme-glX(Nc3@uj14(0Q%%^Qtl`-;yLEwKfsf@l&G?M|3 zV;d?3r9hDoO6HD3v(Fb3gA8J03`G&3q`COjEbSwIC|q>qBZZ#@9mf}&_-r4`E8ph{ zIGHII>n5}}voJh%W|qDk`K8;YeP}aH7g|#?oJ`f!X*q&Ndr!mb(?j^A*OVUqwI{3I zu9&Hk0RoSX(L#Q66_LzN2f&bsaJGIIf&p^c0I7B-8K@V_n0(ek%XG0;Kai)d67h|q ztb2z%Elz3{goawieyHys_te%iMc?hidDy=+z)@uLd?FkocJN9o1;ix8e+*b}Wr~tN zg<@e1mO`Pa(cAv%=JII(|A-|qhs9L(ekialDW`D|o6FREE!qGPTJ+it zfmg`bWlP|&_Sh9M_njonaJRw{+DMYBFnBN{? zi8ZJj7e9`6y{ZYzhuL4dvv6jD4g4@gcvIs}Ap2%TqVGJ@iE8HHY2aSP-Y+NDWtp6C;#@yOnAR%Ds1A}#(M?f1Hv z*d*^7%*Qep4`FruNtUH>q{WX0?u4uzBV+ljE9|6S-KI6!%F+s@cB1K0cyu0%_Qh3R zcsnSNp_9i8z7x5(>(HZc+MG{IunQ@U6U!d@RtWQf*UsCKs(Krb0+xH|Rp*_BF_EST zyMf_OL3V{Sv{&Ewvpvlx<|RAjHbZxJREA+E{wp>x-#l94b1E}0e2IJ0@dV^wM12@+ zz4m-0$ZMbFFDWp=h&3lYj$`&9aueyee)5&DVai9{+pA0`o&2|#DsXvgqf5BtiJsqN zK1(6{{Tgy+*!0vOT7rgkrSVjr3t9cHhQ&cXlMxyE8k~UbcGLP4 z@DZ%wazd56Cms6G79`{u?zO2U@$gUUATL#Hf%;pF^%~?*4lMGeJGA}B+F^Gp?A2Q_ ziH~M7iRyJkO~s|>7%6_V5-5@nXb&(;PTpg_KyFYgTo)X?EaqG+itWojrF^PQaZNe% z{`7Ngw*gl-)K%fEsF6a{Hq)}*d2k2q&XgR~6ea}p%9ejvuN0jU+6yT=aPFvNyR?M! zXP+i9p@=Wxw;;{p#!^H6Z zfSmq?r>$Vd1*^`z!txUjEs+MvGwK%vyk#WAu|UlhHKg+F&)i%j$&Z&g!w6^e3A@&- zaVoU*`t?w`&Y!BW$Px+dTz@+m;on)7dLoa}%>n19pFfLi0Y5`PkdVT8>0l?lwvUm$f? zu}4|h!=W0GO1w*!4p@eR1t8R55^@WaGm*fY*)4uHk{6M(1v#W=R&6XZ?8y$Ng_=;5 zO(Ja$=bB{AOWqV8MlorXpeIyZ&~brJ!eGzEC$o;`mqmB?N3R=R$RAB8Zm0$Q9p$l3 zNSC!nuiT0WPltd_qpm#y9kpKD!?<83{$KnJs}Zit=S$ z3{x*OPqY|INWZxM!P&#%_teR9CL$`ZsT z>U2k5<>7qe3tz?hM!ko$^z6#N=20WO(u6{;RHGX2qZlRs4D|AKEnXt0_^`j8_6y{g5V8~iYQ3$W z?EQ}G-giC{ zQMY+NKv4naLGBhlpuXHuKMn#7mIjQ#)-(B>57t4B7?33JR>a}tC{|aZ3C_K7y9tDz zCyR_hh|CXyrOFO}{yg8%f1*T7`Q=2U?*d>1`e1(vC*x?LZg4-Xi{yAtE&Hh-^(Bieb z=fAaI;W3iBRYTSq?c(mx@MD4@j2G(?*T!Ho71>ZA1Lf1q2Kt2OX0?Z{W(hrv+jq9 z^qnkj6LEGUV|hRkw1-UxW%F+IWJeEd7gPvB5rLLE}o=kLU!HRWpb`(2(`J-h!tB(ENHR08Abj9<3#cIc?VD@u9?oj48uxTCrLQm5vl ze?5A$6N!+lRI#SAS88kWGaK`}=kJ`Q8KY00=amzp?#Cqw+x`DC!t(iv9XO)!lztmu zhlk%3RA@-QoiXs3xW6Ir1XqAJF;|%T13cU!7Cr|rYg}<#{h{mV5$8!3md84^+KrT? zFaUZub8mC`i;T*GAEb0{csVL1QgRi`=_s+>e|z7i5oVAj_b>vPl#YZ!qUT2I*()Rg z-AgIE(^k$(k{P{n8d^rAqb)*5Nr}G){d87my6q5&S7cuN9YA(uDK1tgr;m+-^WTL=<@)OcRlV`NAJadtZCZC z1bd*QH?%G^nfFv#Nku*>;Q)xH`r1BvD@k%0*eo^qnMo8NGZYeoxNqRl#PMY*5e4;3 zAp#m{Y$WxDQjP#4S!lAn3mv8+f+f1E4ZTg=wx)OJSEC2=AhO($?zk*Y{eA5@k|zv_ z7uaQYm2#e?Mzi}Yozf&P`c;j`Dl+#euiISDso1bfdAHXHt$DV6)iVy)O{=N4@<|Ku zxEHMEBk+^hgt;}+tP%NI0Zy5U2cY!oog|g}ER#B~5y}RUoNvd{W+ZsvJZ&Gp@I@f? z)z>3k=|%%e=VNeakR zFpVRmI_O2e2bgNa+XUGMkF&Tg%z_)Tp)avcw;vCZ2C=e%vB|sv34+R2iw~qtOlH8; z!fvW!sYvIN8x$O+Mo`r92E9{6r)z>%-BlfZ1)gx5r-*Q``9SZ@F9)x}h zsqA8O6)Wte0g2`hSIVNH#4svZK1uNJKep`#Ap`=RbA9o#3yE& zAs#xyv-W#tgc;H_<)9DddP&HfulP(Y6cT!bTd?A3u4^GmXjhVP@edFyo5M|aOHqH? z7z|23Tr>99c(u+P$RCL&vnAR$23CFmLG9Do0j|IO0GjKAzz8IXEnc_2{j3bZ;tO0= ztGd)GUz?teac(6teMVV@4AGe&?uQ6CvE&mwrB8mQ|SF`d2RU8{Tr;8)#zAzS9s(M2yVi$Qx=uy zxX7wQ?ovH%NjI)i!(J##j@|{`4W&(r!tCdv`X}ZyQtlpQh?tL=l#Qnpt&`B6*|YMt z?sthD-jy)NhJrTS5I-YbuY*vZ|5K$G1KG#5XW)-z62RFiffp0}xnpD!q_jrlZ8JAl z&)>Qv0zcPs@M2rQrl)%uxRoFUnYEL6yZ~zRrF4=d`Suwmo0IV$72c(jSry?6y9#U1pL+})_dY~xI=pZbJ`rSmxwydj#J+bvNnEA#b6_Iv&OJ(F zDO9niLI^2Cq=vJ#7q?#uTXd8=$?TyRh(qW)S>Wr?xbBoiBsXSm$6*)q&bEApDIB03 z^v5Z7E7AA{7k7GXzX#_P=~NGXwJi(TQ%}yB%{d3mgX8QRYZ6%%w{Rzb>@Azqb{dO7 z_e|c>ApMT_DQ-!Phwa_M!uuldrPS9njyu_RNSwP+qOI&jbRY`nQY-N={*f=o8R?sl zMhq;ZDrONVltUa0%WjWy1Dj&N4|CTw=qE^;IlNDuI%q7_ZHIY_sdULT&N=76g1N3i zx8%}iI1Kk-Tk^m zf1P1OnmPjiDO`y6L&~2XEB!AC4X6rbv!Y}gnUF#b+gS#4=VDjk`;Z|+vG417j8+WXG4x}htu4c zi}ADe2P5s)fc*Lx4&l889yKKh>k4ln01{fZz4FlTSZf>u8m+6PIr*Jk1t+)WF(9r* zH-QNz5TxXx40t=I;q~$&jbm!p&_nh$rKznGR{nC7G(|hrx~V;z%i-p%IwJpUf>JiI zqo^|}Ljm(gHIuiH-&T#96CQn=ty5!%%+ZuAJQ5eGA_{A)cEarTOmw{K=+Xw?W9->= zEKF$K=<-Ems1K9z;;Wpj>pT;)2TP}T7jiqlqS4{vR~m3AFOk>o#}Qt5A+Q*dBXn!Q z_{8%zmlX-!6R23g3n|xr9|KD7NaiMXb9E<19E#qRkb}4E-3u!^zZ@AyKPn5rYuX|F zKu!Z!@+_=W$OBp(i06F^P;x+TYT}0=Bi$OLW1O zmU6~5A$P~_%@t|FxgX7OT%1|HYdnb%k(5PwS(*twk=Y(Gk#NyMn9OjxgY@#(w{WpQ zAF<763D-xYhHR}FW8kr{@srG4g`-nGo_okh!Axg+yoga!iq04Kz?Vm~c)Z|y3~O;5_iQYe4=TOU_y z#1%MqeIThU>6TK*7{Y%K(IAlb<51&=y#KFFtZNS%UFn@`!&AGrUDKDU^=%j*o|Ym+ zSLXH?<)qLS7@z(qU0HxLj$GYAi9atcg}rI^*@`7zq*y|9#noS`_j5)um#L zF=dbUsQEFFdCzC;^QBL8jJsCya^6&}CT9>lAQC;QT~yk-e$QQGeyeP;Nm~Bu>IJh%)wI+5 zW`wF*`1rT^i@C~duaN?grhCEET)5Ta0*5g=Upu!EFLIWi&QJf}z^)>u7~88;lG|I6 z%TspHl5Y=e$zB(*MBM3zVJQ-h+L1i^8?#BFuzMr^QcTpq?BR$oY+ArR)47dHn>;jh zDP=5a&#z9-)DEx16-S2o5B;ZJL3#i-kz+F^3nl}C2&w8h!8GJg&PG zidb>_)&eW&upy!u)gI+@d7q*#m>P-_`c)!cX+Nxr9a8}U16H@=&|3m#WcBm0Be_Q{!Lc=GPDd(zy;Bq zWNep{V@hy)r5sLC*RSgo6`=-`fBC zy9wfZL=u~T#F|VTfRrk$m2S;E*maa|*uvoq6+fAvMk2oUq#vA61Esw3uyyC-$ zNj5R1=j-Y0+${fldlH`qiHI$Q0!{RPfOM)faT}DXmPya+T*{Awi@R6pNHlam@ZIXM zmA8&tf8Y@m*9NGp{leJK6|0q(fa*m2XmbnmohI-49pyytY7HB#J)$&b=A#^rFMbv# z`*@Tm<|eS{@YNYYWV>2bAAy_zEI7h*4^7>!4-A#u#{XP?Gy7_M4n2TRG->OQUr@ok zdQ5O9*3OLc5(u3pD-yzs{t{$S*&5J~4WmDH@jgeP9xIEJl~yc!qs<5<9r`jdcdThq zA0|0$Dv-`~RBhenFK{3hqbuIO{vB7QmGveK5Hu>aABWBaAgvLvV&$l+0YuRPq1h4; zoj{$WC<}m4t-ZuzIZc7dRuOzm`zt$S1~0C>VPx-s8jSFp_*+a)f;$=JQEXcRuIVy$ z2i6;eswdBvb+QH`c(H(l>F8*1TVw$f5ma};YRzRO>I{laoOWXr=YR7;^vK)17Bf= z*^YUNW}&Hm432)sAWIMRPScT=LBFni%Gm@9A6QQhnB0dtHCZl=ow|Q(y2`5IX3eSE zY{1N!?W7ne%fv*eArra z2=+aTU=(wYF`k9TW@$dSwB??y<`i?> zsHYb%7DL320R(>?VgK&jMfZQ2dWk<(nHX2?*2;ak2oPE96bav_ zP(4)wCk%#mh;V~}Q8nuxo(-&Nf}lo;xrqk!;XaV-?@BjE|nj7%#jUKK~-g zkF&wnYwf-^MWVzKdjM?~!B^EXRDceqTXf$_zvjUL&AP@xN_e5N6RD|7^;b;0>CAO` z)ulyx&q$U&WKU=X2)Z*n3&VmN*h0W+`^58XJ+0mAzvWXgDU5>L`p!ld{R`LMnnh}j zc(~rQOG%9dBpCiIdm@q?L^5t4WP^;XaujOwEiL~wHadQzZzMEQr+9?aETD+C`U;qA z6L=u1Djn1bxY4|?kxWhwaT*g#JA3lqA-c(KV&En321eEB{BhQWH5W&onE4ybYz)cP|}16sRV^?7L!%=d6!>cS|HPL z$gq^UP7*MT-qgIlXJ+*>;!zQv`n>hBMOP^CbIG{TP=DLeyA|C(7eUi#0Q!wjPoMf5 ze$Sue$o|ja1B)m75h0bu+N0Y7oUUrF?-{NEQ+4B{Pwg{He4%_)oXe_wmfP0zNFMN~ zMNADfnGThZEa%88RAi{kMRn>ZD(gG^{jBV5oN!*_-Tyl)?0h^qLQ3<&G{xZrM!F;= z>D+tA6*ywRyhL6RyfX3YA=0xz(S_H>sCg?mCU3aDh7ht!g9N`&@^chB1v~iVR*mM{atGJHqpO{7awr9_@SAxPjMR} z+kxMBsaVB-wgf1?7X9e$BTVQNYA(Z6Ym2@-p2k# zLhIL}+`D2Ft+)?BY4}V|fWMKwPEJ*1vmu3s3hq!YCZUPVjXjJCsB+(UDo9Cn6vb8f zgN#u@sCYq}jdD|ld%VyS-H?LhjTzlzKyZ7br+bU4b5dyVpyAsF3~X`^d7(&R@@#6f ze-_*P!+-zhJVHBSj)mHEm#KYDvs|Rbf;=5*zTiyxVjORb5qLa>F3-Wjb~ibsNuu+= z9X%)>Z0z|YY^Cv%B3@knyotu&m+oUj9N`#KstgxXlbz!RrZrSrs$CYPIE1ne%|SG z83N2dFwGU+I&>!~guZKQ0W_)k)Kb!*N| zUgbir`?JI060n1by&ufIh~n-sbSvRbjx?+7i#)l>49*M`X*N0(JHVd86~~}U4&7g1OeB27D`ZBG|q$tbx?@j)l|kcco?VBb6;nQ>gJezpY!SH4ar}~ z+Ye>zQ7B!)9yS;!q+TCNc&x>N%PWi_`XVSw>AroRVMj>?LYGl>hQ-~yDPKqSMt%oY zu(dfbgzX)H27iP6!*M-;epjKejqzXn2g93=&K@1ubsY*F)5}!cO@J(*Nf0QvMH?TM z=wY84iy&>N@7@*H(ankTN*7FRZyXJNUWDetf2_33Z;ATPW7Lk1EFx4^G_oq$gDKe+RXW*(Hg_2V?@IFck17t z;u~P+n#6j73ynyIAFT>emt52ZWS{cCBcOXIf%``Z-asTI#a3 z79OrF&H^COzUu+U^qa9GnzNr2nvOlxYA|Ht#*o4W@_n`5Lc;GF6PHI-ZW%Ja1)Blg z9QZSEGS{y|k6JR4`Q*TU=?IL>_llF1&JBf&9+>!}0-Y7@n_ajuXs~F7x2hr!6U4V3 zhS9$x@e1Pi*Bu@}J_k}X;bIeV8GZ5NI-3>Cmum}JC%+AfP`V+StJT=z`|A2;n5L;; zF&RnaR<20~mxczWHyvx0$32KZv8<${%DkVVE#P+nqCRbT}<^F%rm26|({W3_Uu7||zCUm&JI>mEK*_blY7NQj3X76HV;6O@$ zh>Qv7mF?j(yFE*a)tU>IUrYc&YAbF;9r7#_RSqKw2Oy3mwRK7R^N9o~>PGB|AqI$N zhB);hfYIQY>6;tE3O5rtlxgPZTQZE^Exi(3dH2eXu!%XGU0|-*A%~zXTUO^*y#-aH zBBOo6X;mPajmv(tN1~q2mK@(Ru~B!H8Zce{YIuU}u%Ou>MG-7YR9{2+oLCht|4f-! z-!L82L{9$pG2_Rep2}xZ`5U@~&qwBSt_K-$x=|8ElMIyht7JxNiX?;=c0&f^}hTAiLdi9#unMG|L%`S{DGCG4N zfbkpLJO2@km+34TlXQx{*Bp=RRKp|k2awfO7Xb!7cZI7xZ5eHE)$e4~*HQ^-9K;z# zGRGT8rLF@n5W}$$-RzvD-&U5nq?oo|vF#x`o;8o7U?xgX^^`TBrmN@ z3=aTI_9<~$vt0Q6Gm7fvz0o!W$SDu)*rSs5@R=GUe5NF=maUYRt#Y4@6Q4md8iZ)a zFV20_jrc@RCnzBmRAp9W5BcF^0xFQ-nj_R z{lyu>{V^`XIKP!L)-(_BVV^Gl$VIYs4=ohO0hdI?Bu-P;S@^);Ii!D%q59tQ8}})S zK_d^$bB9_J{lZbqM2U&7qK`>=i4?TprwcANa$n?8Kv}p5+!S*MNH3@?ns9MJ>bd24 z5g=NN&hLaipXxnjYWhjML__g!sQS+6`$(4+!GKM7`99kUv2LUA;jl)yfPUv z^a0MG9g3RQvC9^zFC5vD>`$PSs zuyCLM{DsJM7=}_R&f^7FFO__Goswq+DmSYPv>+ZjSexM2s`l0S%&8@h-2cA&NSZZY zqHJKxngv)P786x!Hvy^;RePD(j;vK=H)I%6SEMBKGFOhkr9cSUH#MwSYN>0W#kV)+bK zfYfi1FDj68vCScVOq+f`tViQ#L1DJl$=MRhI$X<02VU2cj8gB)_MMz!MFZ zTHsSO@5QSCXTn;N_lt`Q@;MonjFE0l{dv}m;0rWNYgAK-*de+CMr#jT)u=LA1sy)2MXI?(B!~$~}lj&^{ba{o{;>?5CLFTCaT>#HQUX+CQQMbc)!VNNU>KrAD?G`Y)*KH;1cP{I z)4O22$B;5bam5TP;LGTL%>b!go<)s4&+v?SCZ)V_7l+hkd8q&iqYBc5MhOLa?0Dw2 z!=EWiR@q_O7qTor9p>hkt#*#5R3B31hVpx2=`$ZV!cVzN%bLS`?2pO~AiAK^gkbj` zYe*CE!K$g}cDn)>vsC^t7i+Yn=1!?Mo&>Kpoiaxbm!kvLrYcT2QZWnlr8QN*9EL@1 z&vmnX9ZzP$faHt%DKONKS18Lit*@eh6ftEE46Mr{T6F$6-PZZ}3m2%CIJckJr@e60 zS;bauJsHjSrN1Dkwjs}lVvaq8%PETkQ#iuJABao~<{=bD#@! z7eiU>)Y6pEiW>FWx7#cNHS_*wHIYo}(D+jtD8uT zH&@?Lu4a1zH$~_S@1Wor5*wSNHyPYk6^qub9b@((L~V%MXA%+e<2+3gy8Q)3-hgunJ&ro{xB>3@I? zlR6=Bq;!<_DTM!_jQ&f*=R+d-=?_RxjOZ9H5DYQUc28*!MeQe=#jgvgr{TK4|--U+=+w6=L>06uodKzlHwa0zDhXBAlOP>a&&mW#zsB;b&cLW|S zhG<(c2tKRe9-lS!ND=BdSLSm{)+pt)j|vhk{Ukf#SDeKQ-1Hb%N`*OURg8?# zw=X7QjMaEKyc#v*+zOh-`wdC$tMz1`ae}wA6&YyPq0`z8u!NCSe;<`ld2|2OVI#U{ z0%kZiu6mWs_Njh8NYw)(Gr6YZ>6zfN*fLq`z^P>a$TR-8&4Agrap|nDYaBjik=R|x z+66NLoq3Z{1`@tug$4G@XaZ)%D+)YDxZLN!O+o+SLm97{azE- z@`KB0Ps+E4!oK=32+*TD8lULFrLKz8R*;xDNH25by;@CA>EM-m-LioXG0cpE-GP$l zC1&?I^H$xY)Nsl}0>5)s9SAAQTm2)*g*CDK1Mq<-$QYdjiT~Wod?L`PP6Ug5F`0$z z(5*ZAI=a+X^2)j!c;?;~ZfdDU4!wUJ$bsa#!`k?ePr zN{(o+=a2g=o|h}PuW+mdf9ct!%_EPM)50QbA9+bvx951AG#Rm+<#*%JaN!W7CyW}c zi=e@6ZFE}so8~VH<;Ls>qY)BQB-rcX!|<&LeQxmVFE?(O^6ovoB8k53VR3VAI$hV8 zfU}Efp$KICj~18a*if9&@7=8+sZLNP^AeHFO^kcpj+Hk2qf@a{H7J84>+#Cdbx;)c zI0s~Ou>WhTbel8s4}P?4?HUpIrX*W7ap#-++ubwj;fCi zk7m05NESr@Qf@4ZWn%&Obfwz7Uo9BrU0h=&-PS)o4-AokTn%&m{J-PENq7NL7|aab z(>MwYskoAXm4-q(hnnQGw9M4Y)oR&Z@mG`-w4auv>^ctTKnfWCDh0ru2$HFvKg$2B zRtRQOW`cA{!>;4X=rB^22&@vrTPYyhP9cls$uShnwZP10ts2)hxd<8O#Iu4MnRW zv2jR8j5a1n=G1oGP)ln#$y?UmvLge&wj|^Kt?_M9Y z9To$Ax&<&QjIp{9+cB?3vZb*hSORY6xQQ_L(F9Hp6Ne3^Oc=keY6n=P2S19mr0O%X zZH2UQA+m31qlEC&g!tl$P`TnT$hif^Uqgy~BC7eS^SU#VZn-0aqcug!reZX&y&|_T z{l>uI>p~4)P<&04bqmNkj%YY)sN2Ax19pH)(R)!Ss-QU}v>za|<4^h4X`Gv9f}x?| zx0Bu=(+zc6?l0we9N{osS8kVd{4GVa-AT=Vr#z%8z-{Qis`Gtv=NFnB$qrU&HiK~_ zfu3!nxsVH5tEEtpjk+wJwgY zX7{E7Ki_kn7iS2N4X2#*wd3=WyrH&hAD#Ub`X;}Ss|~>CX)nvO7%zdrZe~`wJ3$Ui ziUz#bPmQdz`C76O5~{i^F?ax|(^zZ`8}CnvOHRjXrZW-%JN^OmC9^2qHe6Oa7JX|( z>!zN?m2ARSjpG$ zNa{|R*GdZB>=s-q-T~&At8i)}5VlsIo@ZJgW49A$+Z!fzDG>0w1TGASe0Y?qSZw@d zc;U&dAZ|e43$uq!TDh~?$N;K^yP%dSRVnAfB7e;T^QWSSG>t>TMh~0;sgnw@+)sw3 ze%5g;HzORh{L@l!R6L53fm2UQ-rIT*bwqYq2* zcc2!Iq87;adMR!H@ ziYqORck6#(YfzMnZ&IKIyVkh@sU6rV2@2MV`O+`A^eJ?lu8GdT$h3S#7Hj2$2P8-E z6@oF;)OS?ZXg?tRNNGt7IR?gIi61ddW~Q{HR+3`5fl*dAVZvYRGkSlkM z=?z9s77|2FoWj-0cGO1VXF9%<=u&--j3gdX4(pWoTN6@F9$5y4ka2e?P7qMOuaggv z2Pl(|S_5>7z#lSATk?NgnHDmIIdt-rmKEZ1xo@aFrU0S31Od6p$Pi0v(K#k~me!Ez z)ep_f(KH%-Lk1kWv(!*|Mi--&R^W$jt*CWSvTAOswr^zTx^a$~ zj{g4PBcp#D?^hf(<~BH*&*b;}g*o+{3c7)GF7id{V*jS!p?t_F@QbfE6UeM#7oS_K zd=DJk31equiO)?>#XnzLyi#qrr)Ctip-GNf7h-na8IFp2rVR(A$X1S zE=Iwv(Dg0yJw;6`6`*`lh8!ix$fd0zEatNsiJpb80}vi)Wz27|49QB~W$<%3+aQI( z9U_r&EF+p-^&aAh5x%Kil`mz7(t2E#&$I+CUus=*W6z1stwmxTci)n9R9Xt0ePHEc z+dE`E%;XMlLsw|fyZy)g%UBI%l>y_n z-i+q-zxG}Rps64QaY8~Z#UqL_v&k9uK}r1rV$(CDxlkS+?8}|9?33-2)(`b;Ikpzpc;C1-MNlY`;yoo~0qHkzWiYw(OeK66 zE0^-`>=~{gRt2=Y_%|oYyFc1MqL58wE;B!!2Dy=kSVR+Ej=WszW-MW4DP1q{`I`Zp zLb8z*iH~0Cu^j~I$>J^>u#K!3NcN3&=ZHf>SxhHl(pcZ3YYH##|_KjwgW^-@? z$wE9SrfanLx}sOw%OREqkS32?ZAz>*RHV;&R|MA;U=R`Ts!rKyn}tp#Fw|LQeU7Ge zJ4>e7M(Y5JIIuq<8?V{9jWCu0Pp!kcmkmlK z9QofFD-H+zJRD$fh;Fm0d%)$eKOBamHZM|N`W=R8DKUQ%RCy3)ITw=-l9^T5fCbhW z`#t*dxP-o6%1Je%r`m?F##h$~YK-ZMahVBh-S#YNc9g={ZtPTY49}1jsU#HpwadYX z7sx4vS1lp% zfe^Jq^sukVS^d>F*5R(FYpNLWhRqO}i8#8JwWHdRAnGsK{-=hk?tWqbLcDZ2)H(eE#avRvNA24yjF`$3`T?C^s&X$H~)FB6P&>NF;*rrhBWjS?4nnv;LCXf?HOQdMH=lV)i?ctX`x*5pLn?@4aB?9H_?R-{NEJvg!)$Jh<;h8PBK5ca zjpQH^z!f~7?8Pe++AqL_2HS7H4Fb)N48xJlfIaC(d|;6k>S)@b5*<{H#EdsAxqhz- zgKVFUI!{iMVYa!QJ`!S%&0ULTjm%RBO<$i^XcNC+wCROEo?SMZ|JT!C?hEU1IQ0^u%Iv*NCRf zY(K&!u6lXx8To!;3*dL_T;xgo=l3RTUmckV4NZ)_fB&cO<(wPwWYhSS>-ji!nKGtK$^NmmwXBQ_|Ht8IXXfZ<^56(F-KQt zB!4KEa?5pGGoOX(T17`I^B@CktQ$^5=P6K5^3_;wL4LpBrZgO}J-~^3b;OwV${Y-l zIjB_3%x^3VfFlqz0%cJ69ySjdAos8$Z4s<$m;5wW(xrx6X*3nOBvRphw)5Iu-Ip|2 z$M@C;?Dw1?Na#+#-nx5PXecZb6+A0Nc#;It5b^|6j9SZ5cwP^=qO#!*S?P=eG2dS$@NUd+u*w~Wfks=pDTC;fq zC~P!#!(|Tk&VA^6Oh&`J5}3vW_KS$PUXNw8)dDm2cQKjFcN8FvJo4}(BP>^NbPzp3zh*_s8q=5|=F_{xoWcdf_&=pbsM4RXIQ!5s^W*!y4Jp>)m-^iVU|Z0u>GbJ7H_L$=Q>{4|XCl~IM1)^g3v3&XsR zQc%*{t@7REj~1B}x+(&6?Ic-G0cnM5O!jDT8|-#mry)#gyU4JFw4D{S&AGi_W3+$A?EN$M+UTnj~mrY7{-3%S-=MA6a+IC2W>QN6V^CEoEw) zIxfmyWFNKT=?y_xjLV93tgaI9Maq`jr(=btt0#GjoU*Eh)DuS4mP}_D;^=$m6Z}9F zpb8y+_s`5Dn{4GEEHW&f{BZu=?9&r~>6z=hGyj>LS4q8kuo{*$9|DpyFffSINb~vi z+?FB&$}ie%JCN3I_@(fgSwdfBs zB;ruV%xZ=(W4MX0Jl<2sY;ln6I^)LOX?-bY2ls1~iNyx7z2mhi6~LF&N{Rh2gWphN zztPLU7N!tP1;kMIk*c;6f(?aD=hp8JRS_j|5Z9zZBw~@=nnH0kqo^0ZHOZ-nlk;1Y zF9aa@n!gw+6@+($E=4$q3TY*UZ*C!|r9efoFg>-~r`6$Djt12{k#6Cr@jx9UyfTgQ zTZKl)bnh?;0H@~!1+VF6<$4bmYKR{jj-U0dg8Ph%-$>xBkUA6+Ug*6$8yBg)R$?e2 z+4V1gUS;s%1-o%1wxsG8IW5YTZ0G=c{SToBOw~0nCr)C?QxY1#9fCg(YU>3_JIhPS z?G3{aQ;H#>G9RABrfwzrn2@5A%4P%KXG9<8t|ThTQAyG}(G(x|0S4xH)#_h^rNyDS zc++Q{w{E<@ivjDH(nPqLnw4sZNeNfA#nHeZpF(ZbPq}vCJ>W9$oMl-r62i>%Ha=S2 zTB8VNkBHjXtmE^T5 z;ak1$x|`^7I~#7zGR_PXd)Qh3t2Iah5_Amko?LyL(aKt7$nHed`#mQDDrm%|RU&NA zpdIriDa0^E-e6J8EiA-7<*}L~gVlbpA?wpSNz_QffAeLS$LGKVo0`6MrWc7ipQ(Zc z99|2qL-Rb=M@B|FJBzg}*^|-mHflH;x9>t;4W{Lg!iL3kVaiq}y zMwrU4QSXKlps;X1N#M>lp>;A<@geOQdwhuaNkR|j!ZphC=ra0;JG=|G_pq5yaqpG+ z&rC^>|G38q|5FYNk2@c65Nbar{{d=Q!u6jJ%`l+NSKs5p9F)^8BWRp?!O`u=avU+j znu+{fa1XIQ2CG2pmL7$icP8VV`lMw{nJ>tzB-Pt~4id$pAiFbbYzv>yVgv3?CjThy z1ZmTAd#!%fdLe!yqgCY+aqTXm@cXO)wxYp1PO0I#MMx@A;Cl({_n+exxs9Y^^9F)z z&IY^5WXdzf2Aup14*rfGl73AujFt}2^oZ|QZ*2~j?&@?xnt%Bd`>D4=ltTXPMUEMq zXgNXX2tbH(&`?9$BYxLb{GsX3pS=zhj&kYSc$p_}^3BuMvu3S%LZ-Szxk({0uMS-G zmFlq?sLBVS5FAp_Y!^9{M~1#6v`$Ga+MFq7%_HAL%0X;j(-AE3n2&cv#T5vl)jf4y zbE*M(nRastynBaG4*$$=!3@175%#3P54P`z?u)k}+ZA=EArnXlwmaUeb9J&|t}?sN zqUr(gX_+4$v!k{XkL!bD*}#JWE%>5FQK2E$>opa*%iMJL0n^_Jo$WyM@6FSO>A06V zbN=)T+(Yzv=tO92ok#DUqpYH-NqzPpKi%}JAg76mn)s;y_wwIEI(nBxQT7$ay{x=u z@(GfxLu+WBf|6g@uB&g(P+^#~d)i&usK!-JESz7~x1384Ysl8-7l7v{E3NHfa|XI` z7zHq$A=vzHBB3c?;Ld@w;r?CK^nGSWIOAdiI?wDvybA7%h4Pi(y+R%Yed|^NTQXOD z;Ev(S@4^KOqI(*cq2Ah<$Ue30?q}nrfSd40X4xn%%FG$ZJ*#50LVlpk2dvL?0K3;X zTphpa2u!#*#and{q7KuDBEhKr<@w1%r#P=6>Aj%7=qk4!2GRY&4aN*ad{OXN!98%h z9wJst);69zL81_o_kwNv3{G$}6H>iL)#VmcdF??TF2xszr1CeC$3Ce!H7YT)3;^-G z#6SWB3Ik?<(zk@+7y{c;kK639F4pM-fJG)ngN?rDKIP7+GVRzN0*c%sTZtd54rB%+ zmag__d}UOp_F{^9jUZ2$*{8tJgT<=|woYTwK=JH>;;l>|Wk;|-OzH-pmt5>*WkwNU z?2kT%!0bWhv$<9a8w5n2Pv7t4lE5ZW}A2P)?89JEF z$gruiKM_v7u~zYCj%p1ldym|XHm(4E(*PgnjS7voI2o{X zvZIlnNv}OJ`vFd#-?jG}>WOji7WyAIpTnJiZ06=3_dq&oC+cJ*cURwa@%4=Y4ocp$ z0Q`C`JIh0GLGrJI&SLWbVWE7dUp06P)6E$bqfh?yDI|c3M%c+EF|}RR`hgOT=Zh=+ z&#Whj<;-hgE(6;xq`5?g@UY^e{StE)#ti<|Y0Zy#cK^z8j08Df%{jd(=gq$?`QBM+zc`iL|O)Y4)_ms@`983>QdzQVUOO zmG@Q`{C{QN7+st+E8LBh7FsRWwCQl4to)Tvt_T{nGh@L-v*xd9 zTJI^qENcFEPn)}yQCz%q+sbOPgpIDWeT?GEziUe<;q(1R83IM}>UlQ(JZHS_QRb#O zF?D=N9%(#9p`AI&$;_ION0}Fb{YlO8K9Ld=PztJN7}%Wqjt#s@*VkJ_?-?YDlfNDW zl%t?VzQOe@p$%H1$x2|c5}sb~66rya?D0M*aF;Vp4XyX;C}REVBm@A!xKWV1#Eo)L zRRO5WVg}>%-?tl)!@J|Q;9-2pt%C3RvqnsjqW$_56%^*qm;+se40>E$9c{=k0`N^q z=~Q}V6c95Yv|rU9AwJ2|V}4M&W7q(4@5f0>qE8PQ&@Pmgl{!FXQw*dXHm?~4Ea{hl z)33lKyB;jRJ28K@T?uNKQa!ZRf=}KVgInlN#`q=gwLXg`@*cBt>_^6%MwymM#+YVK zuB`&IyLH+`w+-;IR2y_{xOdV)ArihE>S)Kne^RDwoSEE%OQ4s2+0VR8srA+%AD1BM zW+&u#+wfwozk6UIJBSS0Qj$32kwMuJ$v>UgZg8j}eYbL9{jFg*zJP%T%&BKChrn@+ zs^O!+=w_2C-b5BaS6EQscUv(MhFDSvHZNPEqoPX?@o2nCy<3y7eDRTqV0)2ukkA)$G9e3$bY27qNIhET7o%!t#;3SP_2>$d1~C#?fz0%+`jL zQ@b`<(+3@yg6)L5V_j5?k8vUCO9I^gl(LFr{nZa`r~;|Hh6#zqN11{vvCA#`05+)PY%kZ z#B@U>!aKrxQ!>9Hl$Kj+z4GLqv(-u<6Y$@1LLqmjDA4zNVf9~5@MjY7TLjX1G#vpt zQx`6-MrpTC*-qxY*kOm!y3_w%y_}b||0=Yg0T(YY^|R1&mc@5ok;Bn68s(RK1kYxbn>(BO~^NL zq$~0E=5qi6%xgI4nrRxaX3BY3`i7P5UTF?Q}6)_0D_DWlLP;KA$=Qi2<-iAS`H&MblkJaUCM^A}V zzjKiGF80bbmSONXR_a7A+X7X`7A>mhmI`_5J=eWcMLdh-t{uJgVBO`8)WxhlOz?3P z?6?WW1z=^TS=26i#;G@QF$6#*i+B!_I7FAM8C!-8S7y!Q8VjGx)ysnPA>ZSkhtQ?y z*xDAPBCiUwRNa{T=C`YU`5DZiYj%d@>=)+%Y<4)JrV;m5z}f{<8WNmu2k)M;%^J|x z1M`2R@dHKLOl`Psq*ba#5QS?$IZ@(yP|#4C6@_f;&mVt8ZB}?xhkeptG>OhP?vSEN zD~-@o?8I*z0MH9KSEDR9VRCOy&g6XN=b*=?_<3wa0=xzaP+HPBGYABTEuZ5 zR;6&)eLw(b@yi!CoQy1mu9H_+;072+VoISd=y7ct>+;q<26_y54%MISLfJI7q(f3vBd8UM#A}$ zJuW$qeFtVnx7mjCyW9Iy^dy+&wPgqtAC@gfn@EME{~7XaGdBgc5@zLyK)S_}{O4^x z#`Q+Bonmf9Bx$k`g%@r@gKK%_<~|&_&a13kznnwIp%n^TU;?pGklj!B!Cve%33cqg zWp(zVnq8Q9lwXL=%MXriap?WPb3<4v^yc1{@*v9YVW>cdJr?35C+`xH5js09p+$N@ zRcjKUDzZH8*4CI=dmiIS;^^`psBMDqANqz<^A;VPRVcK4E$QRrvolE32;oOYsx5jM zQdzSS&>)bmk@u957SKx8gy|B6SsJ=Azx*;gMNc#Aq4K3rY-K2*+m-Bt64`6E-vIwV z0Kl`ZG7?U@1FV#sHE3+Gxp1hjkx|jl9RamB*d`qr{BekA|m@qn?UI~s(Fq#dYXTLm)ZDwQ?TmK0JdJ8SLEily}-b$ zVlVGmXtz3C+zCjCKP7Dwz8KwYzxS(>SSs-FEuSJpBmsV;am8s%T8wDmyR@X>U}pwD z{DX3~7nd5l+$ba(n_8x86ez+v=oyW{gx@d+1T}G#IFxXaKyaSo3qp4uQSUe^_OTEG zRv9SZtuNfC+3OfLG~W;rN=m{yaAPPCCLTC7nNDFuh>z;Pce!fqPvm@%MZCLygRpEtIER=Y&Kr#XX0Vb=`V;ue|2`f4n2=PawvhA5f z3M@vaKr(k7Jz^bU`k72P-e+}3xbX#oO9>1qrKUP5DaK34jy(%%dj3W(eiU;ET zVBEhp>#w6KA-RWLlcs3$q>yv}M74a>`c4pQ?a;2YDf)Sn<;0YDfMHbQI=n>ITTGNT ztXcPUtA>d*7{gmYDVoWoHmc3bf*~!5A3ff0ZRB>~W7u^|Sa?dgj%NPcmO-!c1o_8@ zg#?h_Mdh{m4Am!8@}ux{R=y|fw>0vN;iXgyh(N8rbo4->KK??995|h0WyNR*`SC(C zQd)uV_K{n>NH9*2Z(PgL`lAdxFeTcuT@teJSIl>RCmkhjXa z5vkm*1O9C|7D_Ops^bi$`{bYCiL?sKE@a43JgCM|^h%AEmwTrM<~Jv(ekiq_J@h*%Tk!eo zMYizh8=9&LJ)uAAHI%2jD4PDrUiR_!;OpT&A$lkuvdJzY%to{pWt*ybTZA977nz3m zrffn$E7N!4S-0zUQPW)#`ZiALNPqd8`Y^4vDIEf*(`FdBe$ed_4Jz{*kK2_i*np0A zcrF0bPF2GFU+)xvNB^bW_HOdz%g++;1kBMX35Uh5Ta0VMH6J3vmkHJ5E311ZN-J`r zY*48GbLeuy&z1dpV))9Zo@Q+*+=>p1YYOS9^A2`?AGDOQUqraxq*boy9Q*k&)#;lnkx5m5ubKolJuUV*8fpQVHO2Pk#-uHUWvppyf`aussKG zfIx4CCX8iLfRTJ3XtFmQZg{)Pq58PFjATs9O%;!g^E0HTSrm>cYsl4Cdaf#)vGo{( zFPoMfv;4+?$I4a2@_R|7KgT0Tk`JJ$tW-TeA@EEA0@UI0-}M$EQR>0)bR zcI$)7hymK^EHK!?C?>ECBrn7hjve$$jZikizsmD`$}+&y5Y%xL$T*DFaV8ex#!pU3 z92lq%Q;O%0`&VhIK-$(rXB6Qlh=rafz1U`Uf2UQW1$x104IyE@JFdV8FFXW;GYEwaAMxJ7+gdU^=)3 zmfBGjS3=bX{DJs{Qt}59;pa(+Y(M>x>>57k#Rp#x3tT>nG4;vs>ZJy8;Xe4k|nnYXOA$e(Dze!zFjZ>JUy|g^=QLA3cyx zGBXB;fPzH~opa_Rslal(mO4_?!OBtv0OD^a1Bt(dTR+9imG?nm!3)EQ^mlvDgFKGB{THv+Z$?9fZ3}BcoOe8?Xd5nuPIe>zhTMx z1ndR)qAabbFyoI;(kda2C`DH=*ToGZHqxB%j};H>=t{{)`vDd(Ra2!u#TnUPd@=iD zH@?RauxQj5r}uI`L&Tp1UodHNJH;6~&A?0kYXQTHi)G`9eQfUJOp6QK2(^QKTG_iS zs0d?l=2nfm`t|Z(ogotvRkSKc!;KF%rUhOr@jB>&rVi5&OvcKR{So3kk&Ju6?2irwmCeGASrgoE{40I z%6mm0kN!FJDJg__UzDqQuKs`u!BznQdU>^tIczP#S20HGnSRI=m<$4S^@{<4Gxnjw z^payo|EP2ZvK%uc3rBOU<10keN@!&2lwK5I^chlM7QYF(D*XC z@*)$v91pSf#vs(0+J#-S8x*YhTL+;XOjs$d*Ox`cJwG2~iKwy8NL}*d4gsLJICvKb z1J^h6Q5hF7$juINM8hEUc8OsUg2Bd3Qqe6Y zTY5#ah3}8C8(fnB6LlzHRqk!^81UZ>>rwcA?mRRgniOXbBSU^|5)R$rxb+gPe-l;@ zFf2a!p97a32B=9G;fe^8E0>skD*OeT2_aE)O{<^`R_~;4K8tfTOAYEHu}KOkJZi0m zu>WcTFX=O`N)^Obgsk)!Kzl*i%x~w}bI&v4@d1pMpP$Sx0XF*nnxP<9K(E=)$=r;& zB=*f{SA{BSh%FfCTg#fdN2_bp|LuW>_L4+^OV(UXoV68}VL2O_tkVH_Vi-Ri?0`H$ zW?qzyi4PC}6H1rJ{sp+%BhZxG&16TvUz7hs9t0bbA017RQss5vPM{YUS~E>HXdzT% z1)sPh?2WrtmzzpqLv$2xhF*_rKLh5lfAb6A-JXLB%eN#_ZZ4U6k1{;(_JhQDk#DFG z?g_MITs`I=A4!}=OFRng0xXTPVT?fL3vxeB zN3NhAaaFXhke2R*H=ZgzT}`5^<_(9U#utPrHY+Gn=vLtGl-+XOf_^-5$;sau2kOxz zz(-%iI4{z0xB*%EiyKV6`11QSI{^|vVTXj%T9a(n$41>Ut>TzX%Z+Z#rfkbH+R)pa z@7jkigs>ogJ6>yB@pabkcFLBacC%EeFrtz(`Xwic4AOd1kcWx0VpfB-Xkv1!#c0bAe4N zz-bsClOhTQk33{!^T@YvLWAF~K>jGNBj+H_gvXJ6V}@@%y^NQJPgjx`&UC!^E(`kj z*Q6^Ya=*uG1uG}3esoNUS?oWmw*Fo!aUAj-0Fou8k2v#`K1!pgQ%b$V;U*1bf$K7QZw}iuwOOsa3ygXAa$LeBj11m;5ICG5nX3W3r&2h69DClLG3o@ATlQBBb*KK ztY1{+e5}7fro_&uT6m2S5S?SZCG=eyMwDkXaa4e&5Ud<>Qktt?{+2ICp~XjIp(0x9 zabjDudlCsO*Oh&!SFR!(K|_}6`9LX(RFr+RfP!;?)k<2Tx4DLYBw-T;u_j9CxcD7n zy-;ogf{yrzPr+$|F_)f9rj#@{7$Gi=G`;uFjC*nwf0a#;R5-?NP34_@^)$j=%$iL-1?0j0|0LK}DWt#?(|Ub*=8_W!y=I<&d*C2ja$g@8J^FqgJ3i4(0h-H zR2aP8?0!~2t*%85E`cY1YB(Tv1{we?mUQ5KBv!S4~-f- zLOi{mxO)`=+R(g5TOBzu2US{xa5a6zc_|N=O1o#UYJezdYA%y5IC9rp%EgXS7+ELPPBr!N4-U;RMXQA zyL@cxXpz}0@U3NHdZTAx?_$GS{;kZO&1B5*V^^b8e^9y~zdMYiEkNIiL(Xlrb}|mU z^RxAjMDY@O3=i$bZzLT)XruWIziZ56D+Dv4O4F5L`<~Uq$tSON=QC6wU(Ubu?P7@` z=%f`5z@6QVwr!0ugRX%~2}rm@!#l3~SIK>ABd@M1kd2=@u7PV0&|d^HYCKAX@N91L zp%4)HH@{^{(Y%7zvdp_*Pbz6?)WKil_*! zhGXPsXz$M}B=72uB(ahMhdi15Fo7L*(yxnJg$j2ZyQit4S1b;cHj#uH~XVK z1IF(ybPL(nukx))&A1h5TJ&8SL$BMwQMs8irNodJ-@!lpWu5l{i$8_2%^ zNuRXoiR{JMoFoz*h5^4aUm2Y;)od!jQtT6a#&SVd7js9d9K!8n5#L}dScJ~b8gEjE ziT7|j;<9J)phQ?-2Wt`8*6bTu8g`Ijy^awa)fINRsfM2- z6d;=nL|H=RN@p?EO7O6SOUsui^jf4z`|*{^Fk=8lOZ_iTjL2(#s?GlcKt~@ZZ3uy@ zxPxs*@<|Y_4&mIMS-zkre|vQ|N3JdO)721%Ey?#|-mCm;uBG(-Z`7x50CsRFC>9K`LgFI0RL%#fTz0_rAVt~<}c zP0>571f{=TxWesG@KA^%Si@Q-hI)8?k$fo2S_c8KTvh-6h&q|WD%C~fPM0-Q1tGd9 z#UjV6`-qztV4z*4c^M5{h?d;*W!H;{+1?Zm<3*mQj?8B>`)uzpn%uO;*WY`;FzG9f zKB-Z;1Kre7T{xC10S0`ytrj-h?g9L7*=^y4RvS9JK-pdIPO&PbclZ;F5F;zxTBVpj z@}A;0JtN^hE(yjYsd$1-3>XE5@f<=RVm`(E6wuH!hoG*mb|pvn+ayL2j{fUnQ4}Y0 zgaD4r!r|d(R|D0k=B!$O$a(}P@3*#sKY13^b#4_L$OLPh6QC5J_PTwdIuo?!c=35x zu7gf0UU!dltU?9MNQezDmpX=Kx!6I6QCV~s&WH-P_2=`}8n6uU3mq3Y4_S_POz67( z_`%lLV|B0pYZEKXw!I4vdIomtH9WuaYz)W7VBIv%U7CoFfcj>+M?@E@%;1pGqw_{o;?TRB0Oxbwlp6qb1Z1yd<1iUj@`&l3fk zKtAe~`aIuZwIWNCDB~7sMM)Atsaa3emcqZ|GQ6lVUjw_7TNClkxSSR# zv~dG}$!ycfJ?HD;;XRYqK#ye1yJ=e>)qWKZaEh;=eAhu@X6A|Wp-mWP$)t5CA@3s0 z2+4KeEE9J-L$c457}FSAc^IA;5_TTkuiy&Q*VaXgF@*ysoz#4RunM5t=$|I;r=`ft$Y8N1 zG+HYaYvRNw1ON=H**3?Koy<*lb%06@r53k`7&xY@i`5)p|K`Dlkm#M7yM|Y|wb5*B zS^Gw#3d07-M$^#=bI)hUa9oUb9P>m%t`0Xy@O;)Uhk~guV;xDhBT$!!%Ivl;I~QKS z@a%bXTz)<%p0?D2oorX-^_AugVG>cp8{LsDl=a%)>(2RF#$Ep6!(NriyH%JF8%lh} ztNi<1ZKot$GuQYu41wL&HPzx545qn`aV@LVfb@4`SD(v+B2`int~u&zk}tS!OV{D< z*CL$ejU<$wkKf-QO}E?&>f*#=6@qUaTa{v!ai|}qtb-Am$vRfsfxMx!xAh&XLM3%X zL5(q6kWhh9cukuGgE`j|Ny-%>`mtZ(P^uo?s%(N!(8VL57_FZ-K9s=JNL_W!pLLBS z1Cxlz1W!|ymY+-i=4 zaG}OSErf1Te`sB?pzM<*>avjji8wf*&4)5ZKGhKPhPu{Rq=9LN4Z||;uN|Q4^fhUI zV4sE0`=)pdi{+ymqM%@4Fs1FktnWR`tD*HVy|PostbFsk1iTbMDN7%pd+RaMB>uKz zISS89>^HQ|omr?eD#v!#T+e~S)IL=_TR*Hd3iEs!71LOUjp{S4)rCx&(i(gIFl3V4 zvGHiJ74;~uj!c7TDN}v3^qi9k-j2C3Dq3fsET48vDjp0wpdJ$!Z|}DPWS`)8Br-;2 z8!EAA0*fn~-2g3xkzs5EsZybok1ax)CQa&on%|HH&=#ghi`T|6Q3B0V*}*^JLS^zD z=WgpCOkSfMWLhn`lG4WwbO!4(4o%NEJ z@A=CsXjL@3QNpT~+dm?fc}D{vfH`5j-5Jq{q9RSrq+KqjsSAJyf!dS9$ z&AVZDc|ZySh8&ktI#OPcPM(cx$M}qMSVsG6F$L2|U%8M--|$Bp)(-yN7BtA#0ym~8 zp8XifacW3by!*0{KsawgZuAMG9F{3svlb4r0!$om#m-M~X2y`lw5o*-`90wEwvnra zDz>Xo-}UA)9Aq-H+-IRRaB&RO^`5?-s|43_5_No3KDfc)BYA>1$sXuEF2GE-E3ab! zaj*qF=1lGq&Q;eW7zsCw2$f9HL9*PI1yG!ZXpk-M*9>u8RpUqK!?AlQ&E$;4TNHe{ z`)GS7ji3q5rRIu7=ow1uA7`gymfe02p2x{}MYYec+cxH$MxtF!lVW}*`!*HSYi*6u zjNx-56mxUoQV{+R0_$+Cv+rmBMhu=1EH_2N1*xFOJho@0P&zU3?IMJR*Nb^)&#sGpp;vxts117St94^D2#Jx9X@Y zv}mqJ_-WnTan%4e0Z~wnTxObD=Fpn}Wi_HD`APr*B|Pku#o(+NI?^a%Il`o?yBJVy z{AEIms85B*LZbs|@Nvj?Y#DLJ3B-h zZhZTS+Swm57~l(jwPm7?${^oUw}kP;?#=z|TtB^&yO#kpWQh1y#Z%MNP6oez``Qvq zYUn@|-de4p`VjlS?QqPO;O9<)Gix5s@Nu8P|K!fnGwrH(;=UqU71GPDCx30n4cd9! zmo9X;_zV?S%mO#mqow`!Z^ZxJDy>R<(tEVDeSF_LE+F>;h9DgY2WQI}6q`s+?LV)n+ligVTSuryWq#cf+_Xftt2B=+MNx=S@ScH)5rZ-M4V{ApF z3jm0h*PB6_<|72nkq+7Iz#O~c$JNsR8akvIapGMmE;&++NjyM<<~(!$oc}>`I&u@+ zKs3P-m@p=+>Ujc%f{_B59PJ-%*md#9bk$>#w4<(8Qu%80Vz)?KcA+}=Ky8@~E4Ofe zn`vdQQw5=tR`Dpk!Zt3o1=!aV5bp5x$YfL_Awh;z=Kp3OijKN8Qd>F(!IM?fIc<42kGA#~p?y2kcE9n@ZHvAQ(F(_2{K-{w(g`LG zCTnf!d9F;9`IF|^5;EGBrY8l>M*_AJg;G};JyFOn)?-N6rU>JFG!-*-%woPk@0<_* zBa2WY)uNyNX8?3#iCNS}P5Y=Uoe1)-B=z+)*7cd3p5P5AP5RWBmZC(B01v#rl>uwL zYUd1iNVm=b-ZdDS9IP-!!4(T~M(_i+f&+B>yCXyP?|9=KSI}R{)Wc#BwHx%(&$8+a zH~tgNsU<(VS}GC{%Is4Nu((jC@}#iu+lqLK{&DF*>+A4^Nr?@1L5|+QExz>9-=UUa zaM2nW4+Pmryz|=M0Zwdp8&lM#1DA=^KJhS9Q+X6dGL~Y$FZlpJo&EVlY|Il~ghGEX z*WvWGxQb_M+2DvxuODae%2e^ZdU{DW#2$%crIdjFvxop{vP*b*M%AbkuJ?uZ=h$`y zeV+(ilPlg2++JoYb~FB!NdMkg9uD>VSR=dG`JYkcuw_=cJ2?+F5euPYDIA;iw$mAVXDK=YUT zJZv%|iFZj$p#XOGq_+*eLfwY3837d3wGjMkkCR&9)Wvjoy~Xww9L%$USsZBKdufL< zvlYpGHnN{8rjR&}_X>t1jLtt0-cz+d0OL%v2IcJ{sovE#t0Ywi2Kg?kczm`J1=5o zv^JQoVKANzs@HM;R@z_EvK!PA@g6oYW1N5UloK&X!6Ca9vIsj9p^^ zk9MYl7QsmWgXr5V*M<4o7NIT-s00hI#8Z$yYFVf`ZARBY%&0&Dphu~s}GG)v0WTdIp;!LgS6mI=Tre0#t zByPTx+_+f?(aRU>1p_{KKo^9F(TwH$uz*>P(7!a^BhZ)uVQw-5HFP37O1=fs^J_*a ziAy(zJ0f0*e$u*31OQi4|856cbSL93AmQ&1;{f={0U8Wcs^`hefk{Nbhx!5qwAR%* z@DF?POsQ4zoLXI{q(5eM9fTZ-yERKu7Qq15Q|X9^d$bb&0D2^k>$Io+Y47{yu$M!OUFz;bTKpCWlVCf3_Q_ZtBps za8{D*)b`;A>P$w!rgP^e8(gZ_b)qkb<=Y2J^mU2jIH4#h&KfIg& zTC_L%+Lw;2=0;ZRh4`rm))5^6*YpD3AT-LiGd$T)C`ryIHhg+4Q(shf^07O0GzGBJlQ^zE_Occ`MK znrDVL-6rb+yulq%>xx($f;mdiCmDS{INzvUWv{)OV9WtquOivHEve z2V8osv7a2o)+axTjv>t=ARKNlrsiX*yYVw*Odj+D|qi`ij z)r#Am9a)Y61w=+%?rpD{a1PtF*bxdmK%fRY)9S#8U*l^q;ZlqAA#)4h96hZW`BW6V zEN#ddVK6&YQV$T zWY9``*JHf(sb9mpBmc&jv8qpz1M4*$t!@1CYs#e)djAPGrueWw5ERHHpn@)+V6M?R z(v2?)I#_0OJ(i+iucgBvI?*T&gL6>}{z{+kclK(I$;yR#E=`ZPpQKdvLExmCc3R^5 z?dS3cNT27fR*ay4KRN|q%;mEDMb4CuIxh9&w;S`{?==4yp1EtD_TNu$m`kc6&g=|R zBD$%;x}Qf`Q(X7d05Rq z2&rB@OOupsbOVo)=%EeWJ^4QnsG`UgRiz~r#_ECUA6+j)fOdSbQCtL_z*$1~c68nW zmuGy#)U&L&Orl0hC0u<9sVG6S|7TUPZ(pk4(G_tGZGAWVZp)A#;`CmC6l;CDCd`aD zAarM>WGCoi@wB*?n~73@2k09`>gMz;4h&o;s%`v z@+L4Mpc}T{6u3F+7)dP7+*@job-bW@=(^b5t(%+-mViy%r{_{B=miqpSP4-7{aB% zv~(|k#bIo$1;ZGFvZVnG4&VjTb8Mxh?VuNB{Sl6F@&{NomeEH$h{B7JkbP+%Hr17n6==euW z!A{Gnb`xia;V)6zH`cQr+tuq@J<3gE22&&gCAS<)E$P`t6`?}3&^QK+?EJxp z!^*lpws21Zvz>=Ectn`@@)A5Zr!_`h~(+9b>B1*1|*C& z-mD}XScdXO-_8dM#p)wX-`ZGRy~DWG$`IqAsp&p+kY;5`7=EA($?*7^&bWES<9%pW z_1UeGay1=PYEVR_N1g*=+)gv(hczHY6RuuzLWi;xnYJ?z3U~1qd=J)VD#~Mjv zW(k=do)nqxDF!p0RS`Ys81@I?o*hqkDk5n zutHg)m2Vi7G@>!}edygd$$bx=&1+p{S&dY&j5cpOn7IQBJ2p#-Ldkp0);~!D{|@{0 z^4m#BwPi+cR^Tmn)e#8>3A%*)QCdislfBmNC>phMg8^{c}|9m|Kcw&B** zv)21rU1$>^AFj54_v2HIa3aPObCOz;CfISY9G##=BmC@e0v*mI9d z@_wzF>Sj^iE{%T(5sb51m6ns1iKe%ONdT7@UO?1wKTR2wUH!j$v?^x6<~?E~)S?>( zL@D$Y$eY;Rdp01=A$41tbP~98{51~VT_+KvXm5t~u8U0Ij9*>0j}Q`~SA80Biq(Jf zc_KD~DNhslo0N*yZ?nk`Vpu}YhQ|6Ue~Z zdX%z*EMA_>i0V@Eiq)>e7A&?H$%MqKg)Ws~^nDzz-UC>&qT=Zvqae^!sjky0Tnf2& zeZ;b%s+4felQei+)n1k4dE+*`{$JWGrDE9BhO4?L4fc1XkVs^SvzXl60H^F6K(0^t zt$t&`0ymJw*-ECl8_&%gmZ44hhLX}QN5j@|nyW#_4Mx9oh8c8EFPDWGX;{dj_B-5) zqG?tJIE2k#u{=cX|M|5WYQ_C z(8Q?t_Hg;u+*%U3ed^9kq+O}lTEVCJkY!GCcYnkYVUmCxYKGWW^U~ST&2O0+x+5Tg z5hYQrRL!+f32~U7C=Wj6dO&E4Es-tb_VCuPKQ-7h5!}K&E@D@qNe*Ar>SSeaE}Neg z<_SAZK`MqZ?RLEjtFBUe(8?&^Pez#QJ157iFkqz`4F5DW<85pqKXwkbIz^vSn+G5Pq4`XBtfDNEpT$5Wb zI=*_6)GRCGR`5nQXJf#>^jb`n@`YGOC^wiyYgFuTZN-!BrmE7Jy)NmZoQ)7`Ezt}pUN|yr)MS}q0OoXCa+njxfU71Af1YQePyDfzDn3f#| z)1jG+l%)BHHtjEMGT>PtqSN&r)zs(N+t#VP)@VQM4%Zq-?Wq~`>c;Po{+RL`UYVnp zBx~FNuOXaIu8I)b`%k#8&cgCMC?Nl4Ob{B3b5ZW zl3)lij-9`WF}lU7ZmXtNMtMCiWHLlsE!0d3Emqu;2hanR!M&<_>6tUvrA&%ro)-tO zsNfnHPvf8u^k2Gqz>(a#)suDPoLbUN1q(gFfH30AB(1NsyHBOgHv~n+3~!xMI<$8EO7( z2-247UN0VB+MH~{xxck;%RISe2|)_FgO@fGwa;Bp)~IS^^7~ewuQQztH(d-mzmkJb zc-^&%mHI4LrFqk@We{wwUiF^;LIXYX)d*DD-)Y*0x0ZG?yFD`sP*O1vt?!o3{DaDx zu**z}>kiJ@Pu>U?Pz=C(iPeN)-m#CZG7~iOEU_%>=K{n6Jf$$U*Mo?gZKpZupVV~? z(<)y4t6Z9M_^o629$I zF9nPQHI){P0^G8TG_SWFN6ndSe@Bia6lYVeShPs!8WBawM27o1Qb{Nx*n9OZ zZ;y*%vP4{nkw#?J`-#|r@kl5{RsBur(ZIt9bP>p+io31f?ygy~d{~$!HQK^9!rz#; z4!Erp5+P!nlxwkC{1ScE7!TVU$)!Xgi=dZuXpfmRZ2RTUsCu>ct+ z46BrQGb&!@frKt*f?(|i^hg^l$-~Yw+rUlX9H@L^>oxO1&*S=07KllV4bC)}_txd= zolJUg{#Mo;hdvVyK4XQ!FWhbB%)R1-+#7fz3AEs}IYG>ah*|as&ao$u8aW_vX7~K| z?&Yks&A*-vJm!TB_E7=Ld63Oj!ty}vK&-#cp%-wc=XUxH1_Ij3VMHcz)HW|wHZI8eOiLYQu6cqQV zgq0DU?A&+jQ__6eM|Kxj9{Rbg$$t>h494p2P|Z`_yTwULrhsqX2)1Ya%onEL#~B){ zQ%&e34<71K_v3i&~CV;N}snys{1IS>T{_Y#nBK7V`GTT@nJ2~n3OQzM8 zDOF(A@r<}IR|R+5?9uq!Px^xFs#ta2-Pm`ECvs;I zrnP%q!wFS!BSb;BK)=w?PiNhl@S&8;m?~Ff&9$#e#E>ImRqCk7WH;|7E__q{A=(1! zs9w&8_DR#Bkipi2Iz!R+9!0xQoLdc%RVq){rsb)kPb~Z-Js(NClEunmui%aPSg7b( zu)RNkl|$pdHw^G<{J;U+xjC*iY`_6pa?>_Clw3=)XAEAuNpp&hOqbz1m8(`9g=?2V zxwWz2G(R*u%U^ZqPyQZk;+nCQRhj@x=MdY<-Fdjr8KghEw=+Z(_I&WMs(e!@242iw zUZ1SXQNC9wIuWuAV(%(N@(F@xl*Nc;0}o-mUsm)KhwTxRZGW?Ui)@9MgwtA&n}T%*l{SfwkVZy(Y7_ z`n@`P^F<%POa6B;g3w(B9H9nGPGq38ER6=uyZO@K&+e7Qmr=zkGif+|)ojdy9OMEv zr?%fj05m7hK9-CB5J!F)76UHJv)on|e?)x2~IhQ_8H*qH`&;x>Dz(H(_|0WMt+%> z=+qg}WRTEN!v84iP{jg9lS{_v;|-zA&6X-ZW+uIW9a{&oKB<B@ zH*izbm1nBB_{RBU5Y%+4P0%nRQ7UjlFA{H?xivwFT4n7N>X;_BiiSNBjw%wz3nKSS zS-8hpfZkJ?NiZR6M~W-}#-FXSol{e``OCm{;i$4PLYg`wmYS`J$ZjoH*bvm;Dsh4lRH zmQU_wuyhja^h`SkP;E`R(0=S_j?273_-S=`#)_xn*XdPC)$;qz=)((>&>c!wN`QaaQBzA?~%eP)b^y;iHKM8v>QX1ZmjzMXF~j_fP8ex_O0_ zj8>&A31#ahjhMYW5A*~qv#t_exO#%BP|g}bWG{>4V$08(m^tvS<9S(Rz4 z%s0Z88xcrQs$~rRru0Qu{Sq#YK2C1^L-{K|22dIazrtuoAWY!*DUAXdP^qVOuL1ZnvR_(wMbXqeenzc0;q6vVW?(kG~VX34ypK-dRU!( zLat|Q>aP+Q9mj_Tk!*gwgH%mrO-1M3M#{RA-^#hncBJEkV@_ikZ^L(_*iL0kXzcWP zuYjVBjwho-DS;&@`ykpx&u?c)OxXM!KO(9+l~j;nKk^A%A@@1QjTmyVVY^daGy!Y@ z!$S1~MwxqpUILaXd;svjX9Z+O?y|9}8fwK+0_ z%W+rGt{8t~Pt$XMK;uBQ$oL2*pz;?(z>;<>T>Jgvz%V-^W6)c`@6TIq=uqY}F&glJ zibdREIWNXkOe1*0xIuDTEr{JFInn&?k21Zb-f;38n`f&2UR3@^y@ZsBBbu}qquu0! zYZ9(c&~88);$p)0wg1>`+cbR_7>fXkF`w< zKqjNRrqpug6Ey+OeAp9XRZVr`3rIqC8An*%J6aed6PahjbNA7i4#JBq;Y8n4*xL>0{)UGVdT9F_-VF;VX~C&E;2RHj0M?`X48 z>b2%+?&Rm2ABoN2E$2`67deDYsag$(oV_DM@w0Y&kGW95)z;Rk{$yC@(} z>7o{11h-a7++`~ML_SWk=1{kvm*_fob#Re@b|t`nkRE&BI)u${SrF}@{rf#PWAh7)mZf%l2Y`Z?m7FjA5USqFFDP|W13&zi*=fTe1hgg&F`6+$$W06{c9 zku{X^FEKvg+v)Sh1m1)KEQI>cf>x}8gl!GDSsVu0u8N8|g`0z-t6od6|S46No8}@ zLV++BG?oGWONdLaUas-2$!4 zQ8g%c{mijN(n@Qx`*&#Jxm0T5q#l3r+-r0>ctFvo<@jnoU*3lECa{Kc5UBg>O5=YB zRiNRLJwidy0Z4h5Jp#%i?P!DSjYgJi^Y@P??Ff}bu%v>%_A6Hrb2#6A2?-l{edNVJ zE?OM+zjR_wH>jqj*Q0Jwn8HjIG1Cr~5wtZYQvN#ELf6wx^`S8=+)nf%0A z&}^ax=zp>|TNwu$IQb#LvIW>27002ubO6eUZ6<}6L90QHwL|y1@BAKimP%8gJ^N&+ z1=q6-sCgv?seU2(g~Jmy7_{C=%`3ZUuT6s5=8$1aMLT+Tn*7w??na@k&dDN!xn0Hc zK_M~K^vPLL8LSo?p`jZB_^mT*rq!6v*sOb})FLiSf#8+g)nwj%kI-D6M6h_9p@mLY z2(JTIdP52f9e8p0Y~0&NRhCnC=8}6FrLNn<#L>M>;qs*Xnm=+#X*Mw_g~C|ovMs;Wb~j?XG{rjPnag6 zt~#ubh8SUtsiX-rXz#`O<6B)Y+SUmNVNcRj#sGCMyS3&vE`0qsmE9j4 zxm?)@IRO7Z0KjyQxJxM88UqR{h#w!=ODaMq-?VOJ(2(5}&x$A*7AQ{-+SP)fd< z<;HHaUt|SF?Ky48uZ)K#|iGC1hoa&?^wtZ`fhP+kz=)J&2DeRhg&fG(E)Tkz@!y3 z>wB~5VOmC>mw&uAU6xHUPh2RtBnQ7 zN`2$(rLlXj9Q0mNcoy=xLN$TlByKV6B(=4|_4e!^jj9+~>;Ur}UnGr|x!ZxZhtcv} zmk56tnv;_U7ADLM2aJ&UB3i&!zClLF*ufVqEabCqob|9w8%?HvKv*w#WW)quBw!L5 zLWiXNh{)wpTE|(ijdr8lmv9b4_yPrG9?r|HR=EAF@uNoVH!Z9%Jgs+bQW9ON*Cf`I z!Fu58HNk<;%J#AQL51+LQDnE_xp@n8YqM6g4xB5bw06= zLEAm7HD)qcBJ$#S!!joFM$0}}iy$1R18#?;c-|T~S@3Y8whB86%7kUq&v$93CQDQ- z+BWcdP!>K1apMFTZEZ{OOVE-t2DUK9w6PcxT7v2fqA|QS`n8SJyl!#3n?wH3;RqTi z7q$J|8pdJSZ^t@#rq(uEKUq@`{qyzTq=mmb6brvrY7T>jeQLQOasbp@U!7wGgmV8G zAz{DI>(E8=OasY?w12Mu$;0)yoCNyWdy<}QY`?X=ABvfeV^}d^#(~~IxAISG^Lcuc^Npn<+e8fXWYkH84=zj znhL<5h!Z>fssN-aDJ6bc1Cy6GV8W*ljEc7}F5%@c?GjxlXXHj#Y|SEk{K28yJppf% zmXxjLz}N4mgl7odjkZ#n$Hk?Xgh5D-Du0=(iP5IosNx_pZwx2bGfh@+jd?yS734CT zM4S5_H8AZIEQFsg$adRN9mUhFYfk^r zR-%Si!Ff!1iWlnnHy-jI5GTTt;-pC)^fpy1nr|zDoKb(q?Z`tx7<-)oO9f(qxpzQr zt;xsPx|kl30ZS7XWk%`z-1&Af^ONiMR4(cxAncgJEUQtkTq`=PxUjVoMLfpAU4;Co zzBW#XJUxhSVri>*^1p)VpSlKJ!KGg2HA9yq+S=22KPJ|+CF5yp1KN=^-46#Y$cl`W z$820#z!R^=04RNzuigq-Zl+NL+MLXOC>^G33a!7_-y_ze2Eo8lebgfA1Pa{J%rtZ&{w!ggTyfb+%0e4PtcHY+x*L&Sj`2on376Sh7c5|fV^yc$djZ8) zEYRCM$-0ozAPF&{d-Ot

X~;7{w@u+-|^8^I|qF!K=~K4xpXzXjyu$hPz&K4S{Qt zE3KrSToVvo+nR5v4m*4nU0Y_SD6k5QBokWj;Pc8W{I5047SU_;)NYL{ywBZ%ZO;G( zZ%dMxBb4`?chMUs(W1G5msplmyR*nrQ+Im90AUeygC;7Wm3S{(fpFW%Q@fWcuiQ)eI!xk zLE5QzLOHd5#={wn>70;F6BbO$`qje{Q6d(y{6hNBnzso$g;-Gz?kTJ!_w0IAD6v5J zwM?&wk5Ax(K8)$B;@n+k6xn6Or4>e~qcKLmy)%~7!>cOVzVf&Nbc1!$z2OIzSWc>S z^X{gPo~@ijgu_1=1hDypB8kl91kxXQLJqr0h8B9>G*kS_g*S@VWGm_VKVShYc3I3? zu>_VJ_m86A!>1@-J*xzJgJVLQpF3xR!PW!`xY$G|u1E@?__$rMWAHk*>r04Q3XvO! zi1^Vwgp4Xyb;u;gq(6f1^X|^LN3_b>eV1EE)=fOijKe`f(dWQuYtNaX{jT^QQsLze z<`+jzr&`lN0Mr_Y3o6^v$DHAVn{QmUH+WgR>G_5US?(6tT=-V#$9Y^9x(p>u+T}+n z{;w1LmU+zRfQ)0V=sWkUxej4tJHb!AN8gvff@aZ+i9Vo0q_;!)7nDJJ#ru}HiZLd- zGMcOAC80VNiMn*J^vw2}MlQYqA{J8z4R?|?1(l(UQtkm#gn=mSN%VvrQBsN^#v`=h zxu}h4wtB47Qz1g159-2w%+#uAbtX2#oqR@Dby`K;fuA};_#552VxoPWB}kbt@Y$j` z!NiV}^Q7M0WjwjB^@U9Pwm5k9T{EHn`9K9BURaI46+rP8KYGDb(RIsZpULj|Ayy|X zaI0_2y{gPoa>WG8zj#v;frlc3lOeerVRkGY@vp{cJfwCuH;9W%6sqvv3}8DmvN+8V zEE`)NFJ@5WhK(ACAGa;+CW|%reUcnBb1O1(?xouRH$gyz-!MH?Ea(26b~&3Hh99ue z#<^Jdt3zW=U+Ar4vU?1G6x{NykC2R^!67i*5@fDMn5(e;D07Z4u~`!?VgEhAa=+5N zT>8HpwHy7w99o0m1ek1y{kxFx#K9{y-R>32>bR|%xlee?i9ecDA8!?*Qf4zYx2j4& z>bo6qrm+=D9U0+3&>(8hisr6$m0?{4XVg8w_|VZENwZ)0Dqb3fvOqfLuD?1;AB8wH zI>f2ic(XT2u+Ug#wkOs`hL2;>{EeDGlmayAC~-b@j&@6*wk<<0af1axJ;fR|up88{m)H7-O0&|J~^f#ZmDsH7Gb#rZ1)M;sYXJ zDrQvl7I*TMu&%JzoVov{Un(H^cpQ$O8K2Oh-Qwmt&++Q$D?f#!u9xH4{A^YnfY|&M z5P2P<-220ak!$W`)xy=aARD;M6Y4TFS2=yko~PXNhFNONM*L=IT}HkBVPuM^u=_55 zgWz){8Y7&DNeDQ{<9h$5GOf#1Xz#oN>SgJ%)XR$X&sY$C_pw|jgMBlVRzIJ55Co_4 zKRV*h<=bH<<&Xq~Z@8QP$s__h5RRo@(Na=7bfc1v(TO987)=d|H5B4A z;bX|<5>msN=Sw;@6J$5oa{4cf74!2Y!-WjPgm|n(Nfi{5DQXtn0&|@Dc#lOuU6;_U zF6Yefe4L8+TxJ)#t{6D8qFCGi*)eVS)+=O&^x+Uko@8}N%)C#gLOq@O3O^`b;-uCu z`N(@_u=A_XIp}B~-bqc|KHBSmiz-6qyDR6x0?*@8D$s9;2Dx=kI>y#pVDwACp93;< zfxymugVy4FXIN@xCGu)MteE-kBHdOHOPKoo0wm@YG9zdq$Ey$V0^8J=sAC}dPAOp3 ztH2TuK4p66jZ@9z1@Xryovgb8=ZB%sDjKzmlKn}yg#W8*iBC*mTdKx_q+YMU@)TKY zNieXo>AH?=Q?F^Hixiy*{+@>m_KJ-{+u}WTRn-8@@SxQCJwg0jh!g_ytB<*1s zhl@SmCQgT9yJQ&Rq~|nd-nlESv^Y(5Hp4m&xV|n0DX(AN6>nuvrivHKI9#S>)77^f zC|Cbe%~bWp5Z1|jbA6TL;lrrz03q+h&2BICBnyoOWpri^+7`nJcG6#8hcPJkQ3>vN zd*Lut;GOCh(?S+8Ijpc5N^SBG(;6n8!Yi-C_|#XJ{D)xly^7ZxI7Zi2f^W$R%Mac% zFNU#gs3&bnPN{&xh+tF;hC1DFc>i5omg(+nrGo^*(NLcWc$fvhatWVs9FIh+>gb8b zm|U zOHx_tkq!lHzQCY?LQwH#K9Rh91DIBSSR0C%lJ}>fvS7;N4D(s+qjl$fWMSR!_XGiO zT5%l_uI9S?vOFjfC7${&{JxwC+*?V&-O`#P6HDfhn5}+Oh@`q&Yn)B}8l|96_ibq; zGYpUqpnl~`l!xAPEHc|^{bqF*Ig5>W$Wq6$K}C;-pcs59Qgq!^_G*C0m~h)Vs%dQz zdDJsa_{a&KLF+TlEyuRS1i#eC6F6pPh^uRpJ35$QQD_4>1*12Z+HM%^EowW2kRwuC z=t5LQ*v<|)FBZk8k_PhreCHxCUb=60{oQ5bR*riF35trnQqj!Z%6t9lR7Y3sYl9FY z7O8bZ`kQWc$CUcPCM#IZt+<_l=MXH5i#AV*B4a@pBvumfv<4ZP@AmqBVd5Zm;`JJx zEEHrzfL#cgr$Sd-%C#WCOWz|EQP-L~iwyeCK{%#-%_$Z2V<>#jXNBV@d6FdulypkRSXtww_|2YfA(?7glb!}4-3;hm)5yBoiL7=;-S4BZZJjo<~ zW(eP!GWECqvEe^%FFElW(9)(OoqWjp{aqQER{e8qvO54QE284B^ll4F z?wON@E|5B8pyhw1#_#$Uid>4KSo%o9#-n}(!`W(pLMmZ*r2n$)0Sl)d;>~UzO1*(7 zu9a&AZr9~(LMmvdwQOwM?VP}YE+?yjt8_Fq}}nC(~g0hR3N05qdAiQ*HgQhzzD6WRR+DLDU-H zMTIFRnh&Uz`}&Jj4ML-=uB(DHXkcB6M_+e zqd_XE>(x*J6E1S^wTud$Kz5h1RGIWW@e_kW>~4P$VFB=ucl}Lub$-cx=&ZR50a#JFG^8O9*uznJ$~90+8SoU0Hdh#rQW>Zw+qmam&y)f$)4PgYVu zoM6LQZY5?)!^OhC2RkFCe7JKAVixi=66(^@HYZqc_WE9WKD5eI+ZagNVqVM{LLWD4 z(<=4s)>XDX*Dm<64OfV$6{X9*!xvpXrNnrd*iI038T>M99`*KdTN@OvjBYF-!L^Hw zFbNIqV;kP#@(t<1UKJ}V6%$l{guVy6{D!tZ(iY^*3^NX`DyqT^#s`7hZ39$5RA`k; zr3jwiug*j88h5r*+E~guG?b*H9`0-wE=z*lsjD|@W*H46SNr4Kv|$yGR({);=TLj( zYoVxtc8Pk^5%3{9N=!p}9wSj)sd3=IF^4W|PlHFu8643)onPQDr5xNfLW6(A)RAmi z-{4XnMhJDwb8mO7PMAn~dF8dRK^Izi+m(mZ_J5g9w-aqJuTv_4`nnZ2qg8oMvmOA% zCQ^`z9gx;4l#0NKV0WoJDg(h@JnFfGAxjV}N$;F?0x->83=KIJhqU)8zi;BEl1y}O zMWfHmLYDoHh{k=9GQPv3)2#D9EGY}fPy*d%A)+tSK_29eGid6Y#BP$k>c{IQ6%*Wcrq5$}0GqMrSrvDFOO=;+o~ zf-|*jR+e_36ZhREoT8&iV@Whp0g|-@(cG9+h<+h+aUsmu$*+-CP7&b+%Aim`Ad>E2 zBz#u$cDn+8|E?U!A))X*e3PIKmocp0ME#m>Ip>r5B&lfLuj4fNhKA4$J_Mj^4mOIP zfW=BaCFM%mpVPn6dM4*!acE(u=`x8KlB9jC!fxtkZn;!#Pg9WZH?o}kQT83+i)pvys;!Gu>l)?9{g|0&yYjnVU+18J zYm%$G!SK@r3@bUM_FQOQ_WpQ_n}{3VxlcKhd|vQ6*+}}qetE-q1~>Yr2IFAA@`lrr=nyLkv{AY*;6l4 zwOY#1#rKtg*o4@(KeN1iZcwkX)-qiGxRD4!3o7jnoXQpz&u$=&J<5{2fX_4`Xn}?n zUhU}4oR&KRyjBvm;0JDahs#s7Wx>nJ1o@kI!AQOllYlRG(KlsKLB*Wp$l8u2fB96J zZGPcs;qPJVr5KHbmU(A~DLcjunFVbX&%VX1npI9k3C$N#M`7XQD$G?2L)y6br{pvF z^px%unM%Gl@-u2u0a2`JQt^LNso#grdK;$lUpFphE+9Cy7do!G=*zKl+(L1G*(OHcPkdQaQyeDgPd_Da~f%{?4nGCRI!en)#sRA;oeb>n+j-GWo0< zJbQiL2kFvQ19*6aTf@=LQTnD6S0!>;64MTPVqOr8MbQQ#s|<1dksJvI1JN|*g8a|SIw7|{Byl*ktEXt>ton6Aie2xp&e7xhvh zxFMR-d-`gr1pE8yffah)vJ@cFbYI(rryGIdp9E*Z4j|9OOj4g%9=CabJ4Y|~>-&=O zBmsLcyId1Gen5z%w2n^-m#P;I&GQ%q?gs6Cf^~``SV=^%``bly+MCw0~}mV zj&VCYD{xE!P#2|!UY~*#v<&R9Hn=5T+A^EAf0+@v%M^5mFJv_sT_|Gvay?8|+DJ!r zSDgHkLYV2DdQ=59$SD(Y_7_;dO|icTDRfFQokzBWN9bX-Es!~n*VBd$eDp=}Kqe!%j!q!hLfq7Tn=r*kPQ{&ox{^7) z%Q8bC0pw4$#8OTl`sofu+t7tq{!ZGjjB1Psmxg8lcSs zRG~_COSvT2FWFN{VE;az+m$bJICa#`4af^UxPHy$fcMlg@)d4exX-qTff8HMK?esJ z6SVX|0EN;IrJP}^?Sb4}pX1R-5&VkdG;H0=T9(fJJC!RlQB=~KSJ6SNZ01~H^&L$3 zKiGIkPY;d2aY*Xia9pnLcR&dF`ugvLc=Ls2PCcFkr2xx+k~w~<)u(&Q==D#i*oXpM zbl*R33Mjhd=L6e`Vg6Rn@6Ny&Ege0nf4nFPhM2nY37f1^;SgVJpdYM6WV&dsO7$JfVTZBC7IzV;wUMM7bSpnv%U-7j{2MJi{ji^ui1&Nai3Pofj4Z1`B}Ua(EvnS$B6tUiLx ztw<$QU`a+30mUvZzs{l24o$ESFa=vC5Tx6kK1b^7`=}Cb74cMo1jW1(dhn((LJn}f zEq+lg7$IxF2Gm*AF6HF_P?7#01QT1YH(%*&Z8yCK0e7=0%X1V=`p3wg)8;CB9D!4 zw6F=6zPGyx*o6Zg)<_y5yF=pJ@3{|RYm6d#*g=0hka3MN;gCV~09* z;!9~<7WgZLl6){-r#-lB(FVIO@m+{Z7|1R%c@@&B|L23hK^3E0jTOk7sMtPeoTpDxo9N218ke zauc0I9^K&-HI` zu9K+kfI#%>*1Hnyzuf>?|K+ERXgN zg%ADX8zbwx+$tWy;8|di+8TIf|6~(8(cW#tuc4kT>=sjtc&(Zw6o|+-?dQr&>wu@a zxnes>^I^?hBe+Kj2HebuG-}GyT1r-K4oNC2XcTQYmtk_5Jcs534|~i+-cD*3yX5Ra zgf=xf$ON10dPcN2j7qk>6>)V_V12>8Y>oO6EzBt{i0o|u2HTH9xGQx0<->EjD+Ms< zwc*#IbRnp#rl8mC)96ibNBL_ARyS&vGEk-U1-w4&<7|f}FTHNw0Lxk z$1ofIh%+DJa}74i9^^okHn2B38|vbGrQgv(i0eO3-mox{&X^)696+01qB_QT9)Ss>LBrD_1yDv_mN5-9j_i0v zY$SDjfTU9K&_j_x5di3EuE*{l`142D@jEauvw1fHIOy{OhM3to&Vom@YM>Jn!(dh! zG8gg64sa3FqY&Lil2R@>!jo;H%fC+TSR~Z)T}m}+-ivsCRr}0%5daZ+DfzC^2#+%N zx_~24%A%!@=@o6s&Xv8Ggk041T=NDk8#0rsVE*G|d%SuegO?xdtOlCw$W^SNj*vW? zucr2o!cVhgApUm$Vs?B&i$;MU)f+C&0clT#lw;i9QgP;#kIqI+d6`GVjA^u(ekD!T zKFb)FnH2$`8&-;DT$x5Ylttnb95Hp(ro9_ zum&5lX3e>s4>S#%6xr+2NUIF&N6b1t` zCPh+=G=S=Ifi2)g&?5Ne2172tq9wh5s~$!;tYl7R(r3Ngcmsh`&zcGw4$%GUvj5uO zEXR1%?%kXU8+-@~wO~!i3J3X6|0q4SItA z#xsLGHcB6kV539I#pGhUWuKXxwXR}(6T#HEmGbZI;JSA+C8JJ8x9uu(eoVaJ-|TeB zi)sv)ZqBq%&t6j8TuH41ci9eSyG#|f8yWSvKJBzr1xN%UMo?54O_!Hhhd>`HVm5C8 zK7#?DTP(1MSaMsI$+p4zs)P_gyyt%1p2i|uAOL_gb5&~5ErqUhjDUePIQ^m8M|nkh z%y6SCu%1#_X%pqCU$Sn9q)Vvz^r#gGDG(yJoUF-C+};(mspWMvMT)MLCb>PJ-~mLC zjJGx!(%&oFO5EUFPqc_l1j3-XGdIE@6 zO=3e>*)gB6>H$N?u*Dq$E%~2v=L4r@w6eaM^PmYjda68)t&Q7<4J}TCqZH z8r39&S)FRIuFVs-=}p1XsRW1-D*vJrX{kCUU>co`YDxm__{TfBd8^a=h@zm!T7l69 zIpRYyk!!x+0eZQnf54~vSikM^CP>qx0v^l*ktTbI#_kpNji4786%oYs?EI8hJberm zK|7qLPKqM;JwV0HYtd665gjOf4Z+WsU048hTK{F?KENvDqvSsKQWX5O>r#Y36$No6 zy{1wXp)H%<21L~OMHXn+YB?8f|DtMhXHW4q=*oFrHDYO6l>p_X!>x5p8j}OB>UUJ2 zGf(?En0aSr@E4@_bagaB*D6c9 zo&P@ib}{5MBJ<}G$)@iy6m)bjrrx=f4K@v<$G?Txq8I>X?DbbobnyTb$JKBr9xF(c zOgPVH>Z)TnU$cs}u(qE0ZlLb8U9|jm{uKRuZ}$q7XbO7w$Q9mS=6kpzTslRF$7LWl z`g$+8fD3Mw%D5ulcfflVql?aGsC1A>`OFRkR8i8BTG~CfBti)~6e;OE1Eu!7LtjKy zmzZ>m;zq(R!U8D%^aTJ0W?05;g;td#nUX@}Fq3;mLsh}R+xdI`ZmKM@FPp`xcm&56 z!*NeuT98KZZ_W^hm5#&%{sq~*`_eYbn~h=9Fe&Xq+@y3dYQJfto}-ber~ zJl$0pq!VkY%bsd-Mz(v!;BlkyzMSYtmR}gyi43CRV+{V~x*B5UuQ}EzzJ8(_RdwRc zny|4bNA~c%-1WWJh`H4&2(fM|+QVnSC7G*KWSd;D=d9G0S2R?82k0%#v(6Be`|Le& zb7uFe&-7y-Ia#=J`g*`Q_WRmrwsfw186}zNdYO>)0*B0!hFr=95o2D|%C^tt<`exq zH@*n18^+{}MMJ2K-6t6Lbxl#u|7W>XHP%ESJxB(k#`h<-Yc+(bFo=X|&+h0@7sHmX z=Uw|?c#2MgAGiM&IP<8ot(wsx(`lc000(fqo zqfG0Dn`$MGapRjGJr^l2c={aaaEBQ~=74OKV{cV1B+pE&kx6rf`>zZ5B`$grF%2_e z(QmsVzmH}CdbUe4>&lIJ+gD&K4P%zx9KmlzG^ne z_9XF_OZviuvtzSv=Ptn*JiT6F!JF=O3~5;N0{`svejrOQ$GiuB+v_Ow8yoO;f$?6* zcl6q0f9cdf5={e@qwnsTQ$LRMaH(Qyk^kB(MG%ru05eDRJ)OXYs6e1z2gPTJ0D7w+ z1Z?54af3=%>!s$s>B^GC5@|YIY0nGjsGL^r+IyCDF*5XgB%HMkpjo-4Rtuf4W*=TI zDZy2W?c5_U?WK$&CFma_$;CjBZlKd^OVtC3EC^$F!fN`T)V2~S#C~zCZem#I^jCj* z7q`L+{r7`JHn7wEfYY3h>uwvoN7q7&1)&5?&|5AtK7ptvbK(HsY&z_2E^6dj)| zxKx#yGnH-`@BGIccxLy@TK&uMEJfSYVbIU_$_M9@PFr9xU#c?|SE%B@xsf?)ES(_H z((HE%k2Y7cEdJT-|EQ1$AMy;iXNOJI?B&` z1^@y11(`xgb8&l<5+^<#$B^_;aUM6_?@oX5WF8X-;?L)otsj!16Se=FEG)e}o%@bN z9lOH|xGy_QIWz$Sx`0hlee1gQ_lnmHah^4wciAG-Jr`QPeeW7 zW%Lgvn?+&&!f>9r&e8{UnFy+pR=Z>w{F>$y{6W`2D(VZBdd)`>5Xv_2ECl>f=pNw^ z+{1=i^~gjzH2RTlwrftbJUU9ZkSlh~c-|p86wtST-%I!qB9jU8P!0EWkzUc5Uh@iD zoR#)`C`^x7v@XJO2(7zNBx$w=&|cLvz*e629^4kGZ>IXi$xD?o)IbJ;pVU__3~t2V zcdhK?_C@IEd4)TaD1-VxD8H078E(Nya}}OS%Wnu zMa~{1Inyx{0Kj^~MnS4AblyJDvRD}46!@lC0Mm`{^K6pU3Sl@COr~50O&87g@)(G6 zrarc5I_!~DGzaIC*wnQZ?x}y3YT})`1_}wG396rzh2A~aI?PK~Cp^&GEPp*OQ-lxV zL(8q?(fMhkSkqxx8l#J~hh|2Rao&6{ugE!%6dT7FRFdo>4@24ryG3VN0RRA4kgh`b z+R1}EQD`+F9?Cd;Gkeff-Hfc-vy}uWmC2*CQsG>r*IxizCiYlIsA1ud9wnK|f%|Z9 zc}WPi+=?8WY+kO5zKh*9L(?Yt7gPL3c&fy74MGYz*754LUk7M#4iW_4Ko4-|gY%+H zkOfya0IaMnmA(&x9?_DRAo&mOS_VfwV*Y%Im4i-~F@bFjRR3f)tLtUdZB&Iru3Kgo zB^+uZ)n@is)%K2VsA5qym?8SjbBol3>}~@{-f|!T1l1|?h2Fxk`d&T{kp2=?Vf0?G?GsKpofSV%kyZ;Kj3Qk+sYWvw7w>_aNXr?YJLK;*}J@5WnYRP~R z37r(IV{z(Vkx&>z5nvuVKt^3 zg_gdCl-K}(krh9BN46FlK;7T_afk4_Ibv!?yT@>3Vzr4)kMvJ8=~iuf4&a-kLq@gL zbW=THw!@4$~U zkK5YTicYhHNCdA#oRxBhJ!HTUL>S$TsQ=_7)B{=^|AXx;DfTfsp(Bb#9ZIiBJuKKO zn-K_aRw*ZN6IG8EMv6#|1F2-h)LEfYZJnoq`f8EV)25|Z(t?y`hTl&Pf^Tgc=A3PqDY(;U|9F+As*r5tqmm7cELAUA0dPw$ErZCqd!vqfW`87m^@1dUFopNe=bVJ_YevlSu zF_2IP%TJ3E&{Ha?UbN4jtf@3!)C=v9o5uY48`6q{(pJq&aO*%U406>+g`RAEs z17`@y3+40Od@3VSKId0w+42Jq4h2ZJav(Eo=ZVzj(C6pbqRO65JjHrx?`71|J2V+N zsE%Uf_~0H0Y!|&9j%IC|#Teo2Lr2{fW&oVMaBB-D#;R3gvr4$ys#}tN>_2j&AsUPvHt4}#U9wAOB%JuI4Jfn zI(^r|WxS~0_ev z?VMXnUyn7@7)EfdJcih==<+qCM{C_ZfTSjg{MH-(?5#*$kq{B*tTRgu8WG4{VYxiC zYu18kyhPAJfn+a8HtWnQ9SQlf6me)z=8^XDgM}%x-zGoiRGGMrO~bmSKynWwzCrL? zBzO%sVG(eSh4TkH>iyw-uy9HNlTf(36IzkPE(qSrkBbyEY5b!;9=qHp2DDs1oC1ss z+x)PAv2DJt0^HBGYKcX38bJNYNS!6ldsW!_hC}PDFD3FbZ!|h61>qz10ycDnS*m|wY7N2)_4P@5EMo~t_ajntg|Tn^XXqEKvf-wan%1OaR#_>IGLP>m$p3%FeItti z6|Iw58W#+4hedKjiZgFb#SB=@Qlg4S8)S<~w{8kC1-_r5Y(xnH>*`t*%+zT44=3Qh ziuKlB1n^c^Ufv~VBjB?EY2OQMPMY?&GRKaSVVB@2nc)4aRcTZf9+iEoB2p((N1bhf z9)-tv)Nlwj507y|gnhsM3lI^O92#&Qh}Rn=cjGe2gIT8fSCyvv>{y}QN;$EhWJe>S580Xi4@z)uv_%I>WKgQ@r2X!-F)Ox;p$-5 z`~+hrgV(O3v-iWEzvkm1flMyckuv*@; z@{20B+L4^81m{JYTy=na#v?Ia@tLv4lteJC3zEQ~!)LC-b7)<5E1MX6GT}%;i>_8)WY8?G8R^sm_b6hlicQR1^SR`(OQi0*QUA-| zazkFs`YKwiwqD%ba+GP*e#yW*8?MqhKj?9qw4awd%%fyFC+Z(GRkJeuPXXexcBr%S zbOEU0OLTu(n76adT4a>@R8)BB5w|eQ4&pmXWm@mzthJwk1FrM72U}H3a?gZYFqQe3 zOqN|JPz{PXH=u}Bu!UG`*oJ+#0_yu8YXL|1IUZgy*KxR&6~-v*cIbeyl64E&rJ@Bd zBs1z~HVUDQbr46#nH9+pNjz*Bxdtlcal)I+Ooy|Mva@b#2&)GxphjVc5~g!H z!w%Y7sN76xm+258v^)`zqedYF4;VSF{ks0`=gzdnq16Z_IvZ!tFZfPw$%w@Kl< z=JnIx}-!N2yPfew542V8s@D6h!>)e>$WGhX?v3hJvSJW z%;s&qowLlTS|BEOFZ~DIsEiT>sx zH@Fk%cMWDOy^*0$t@K*APnBd2EV2v?WFnvPEX>i-HA74i#19`&$arnqFbCO!R>6K% zTqNh}^k<*lAnzr|bT3NcbJwxXBbWKf)9;425NG4o?AyKmA6T_djA2(-MBSR8BZvq> zdt4wzh+5sx+7wNQ9s#sd@G&pI&mXA$zEBpUugTAw-t$14Du+KNSVb>SXIKkGBF}Ph z#VMGQew+}V7p$q8En<3`_#Zv=a`)6Dk6!_&OH9z0va!e-Y*d6QW3U?od49jaG&}Q> zSxNM*ajml(hXDJsjQt?X$wzp8qPVg05rG2>C1O1B+O1dGdQYWHu#EO54U(gyS#CU#j^@alNwSKfa(`K z0Vu7DmH+P;RmbeH=@VDdtJt{X%n7xVWI!v%I_`A#t7<+v;9@baUCF9cNnZV_U>4;<^IuBZ-E}A;qc93^1f=dA&44S4x#m>rRiO+R5P~ zxLy}!eg?|z2E1vWh@vUoKs(z~ndc))qzENKKdoDXuEu(~>2Q+2zllZF^mvHxs?Xda zDuyc4Fw&c>{QYJEMPm0^CIJ0Vq)OW(LDQm~KvAg=a%YSE_YB4PIilYlZABA+f$L-= zUvfp({fJMyz^HqL!YY`$^jI?KPGjyIk_%mf^jqKkh3J*~JCmN={iKlq(;d3&_LkR*ArqTWqL-JepQ|3eE*lajO3e82Yu zOc>lg>i`)cUCh&EZQ`+=+}rMVp>t>N{=V9sm4;f-ph<&u>(16p`vso9dG+6iOe7J~ zsOHWer(!PotXAlpfg=)x&w`i|A<|F0-80dcuIHf+qr?mq8xpF~os`_s@csR-s&vAQ zw9>?!tA{cYD=hV2wqL?=mzdt}c;KHBDdHFcutnkNJEys%IQh*3rv^7V679ehf4Z#ZnA z+lpW!$&JSh{pygAdrPrV5?`0^iYM+(YIoss4XF{#-ImM>4&-Ecx3cIF&pC9}$UsXV z&dnF%zcB=jg7YNcQi0pgFC1T9M`JZ1_%cJGs>BpG&9g(%4DjJ z6|4jkO8dL`RlHOc%dQpLnRO$48LB(&<&;8>-Q{s!0ifEdsxJ8`KyTIJ(0c}@6|uP1 z8%dFcR|HmM43c_RA!9^l`14=veS~IjQ2UOnXb_1W8K0DkM~W5FK<(W;CU|23`oH^3 zr28=t*iwu1;Xb$Xhi;3g`kSC~f!z`R*Ib*xc5=&=;qn|Yo0r24%G;X}z@*A4&`eiJ zZ=_gXbUKW4bPh*AK2jn!#;b7Lvv7UB2fn7zm&)D8>OMFmKEkl`?y3+3G>tGT8kvW< zbuPPfZ=UY*T(PN>iYv;Q!5L$^Pp<|EE7DKfk*~j7TVEbt_&7f_@-gB-Grcjt*WY<< zjZTY0kj~t7{cE3MCP>qpm&zAnAv8<=BrGd-dzw5@n?gVY*)wL2d11Cfn|k7~#;O&6 zJd6HF z)zk?nVmzFu&(ToXQuUDqmf6ScwH<{KnG@EP4a|=xforu^2;>1;1kV+_$^(;}kTGNQ zFB(lJL3@An$)0xj4NQ3s>Yil^h7^PqG0_|;4j{P3`JnKF&A1nw${J?f&}pB7P*YE5(vCvCW^QF${1>qQ1pKnV#TS+4a;zj)6lZmHaIl?j zYr&+BMIu7~X$k_;grH3CJ6XN|k(|6u1^3EA(RK0oL7<3yf*bG3#lc7{6wmx7ZKh(u zmZ&y5Ud6QxT(7XYO=8Q03HV5=6*?fY%w&3F4--5H!+CI z`>k81#L`V;MMjNnd@*tu+FJ&k=3>g4?fOTqUTL2ZCiGMBi)rREi zPQ0#Jk%BWi2eq$jh&=66Nwy`44X@Xv)v)#E_Bbxbv|V#~A|P&OnSWUFy4hEO#`S5S z15mn9b3M5>8{giinqKY-KPly_JTYeY6-m!XeZArx)121ELIRD*+HDjRmvb_HvrmLP zf>%ggr>J|iOPJ$VrrBT?hHw*RzSLDJiwHvQh5rMuq+4$Aq^()Q$BNsnE`^kk7lO#3 zTSNybebn*&fKXwv(HMa3-lBNT0ng@&2qSpAP0fpB-XXke88)3oz(&bUs7hW#9c%$9 zz{zVioC(75fu+D5l0Z|<&c98_&(7$^Vwj$Y1ZNB;a#az;%W!14gFbqO98L6892E{a zHjN(1e7C9DQw`dwU!`OLYez|S{#Czm6^g={vVt&f$#TpvhD5>{YZ_^xrZfd{jK5*J z$oUOG0&cgPg?eXPC?n6*4G&kqUN;HYV8qy1Zt>Sn=g4>v0FJjfrlLiKSI7;QszKri zsOEJc1o75uhNHws2GOfc_udrbP-zOR759c$c-f0=4Rb)6naix*qSi1qp05H zR$?Nmq}CxHWse91V&PE`>eqv7n#8u0h;>R8dBiNfQp6U5vDKavN6T6rs7t75hd`|p z5ee%Xo+fkb(7P&FVgK2~E>InAo4stvG{nXkui(Qk~nS>Q=%zE1qzgAtO@3@SFbx zsH+kT!L|({GC|d=iG%~$3eqSzJIOodNEuTn??t$#MOp4Wy=Y``BguxO>DPE3Ih1c( z{3Z<(tOxuY%X|)auV{WT>CqD)Lu~{eEjDB8F+@7oXD;9n2zgy(e8e-{+ zW>MxLso8v0FE4UIz78c7sX&7{Uae+7Lug>7UTIVfJ}cD{L5w(DO2UU|k0<19(!q5n zNE+F}_zXjV(^)A9vRsVV(A8(AzxUlcs(Y|EdSg0MOTFqTX_2b8AYPN@mJ8onMv_2; z`LCAbUZ`d0{M`A}v>r8aBIA*?{<6Galss^@?jnE;4re#`jj6@uFP=Z-Vh8im$M5Gi zGg9GkLTgEqg6FAEo$@xpX6@o;NWg}{^)tOw23CZYD4A7cbb}j^?SFO@TYSea@ zLpu0RQYHyvsVfG=I!Rp}tOYfcKe<-Fo^J4q;*Dr^!-a#d-rngd2%1~x7K`aWU#$cD zs*8ZZBhX(U1`j8V^UfF}=2K6JY?IRYgX_6mAh})w||4VEas> zr*c<}Y1kz5juqkSNkqqyC$%pWIG`#^TiXJ?9h=~l(%c%u6ZN%?Y)5?4ClwtfeiI?aH49MHmnIZ`7!GG0jW}O z@Q)%I)+w}kT6h!NbP+LIHq3uuP`I6a4Gpp1LmMWA`wSVAZ+(1GS>5i$LkT;`1s+ZRjHRzw?l=I00JuW(UfLxG9$ifDVQf)HU|u=b_H)8ch=o~1ScV4S2k%K4&^T42a+O{5eACa=Q7 zmQ$ldThmXaCTbnnx-gtm%&9UORc!?MCOQ}8S{UcJb^9E+D%i$iG@T>PK09(W1u~g1 ztAPrO9k~O{SmZi==DK5ll!G(Uh%$`DtdsbNyeNjpQQO7$-2tp!VuXlCOXAo!G`2-D zpVmR0OIf~yYI+%kZ3N5&p2t!Q23;}a`@~Vjg>gQ=wI`9CRayf^*GhHvA!Kpw_l{o( z5;b~KM#^;ZW4B>5Zllz_cYX{%mVEEf7xK1Zf}W%i%+431H(i4G{wo<(;3;N^I$FAtO%LJ*RO7lt&epNHU{Hb z5#u5VgCECj-Prylu|b7wyf}PIW0V}JxgmdCI9~bAwKIb*!1AM|tvE9>5ECPH9}dpf zt7e&`aj0))FpYXO=}DOn^^qD5#$&?u230`eh7lTzH6!+bl~LdE(vo3(=rKov;h7Yk zXpiyiu1cCxswQ|?gFo!gAar&d{w>9a!yf6j$rt#aL@19Bh37*OER3R}?KyiOs6rNq zOQ2_0IR)4DVz}2BPl=u8G%zDFoMcw*fyLJQ(eU4OY4F(V}ZSaVAC@4E0(Tc1|EwO8-pW9Xtu7cr= ziecq1>l5mH>%fd%@dn2~nLKj_A%D|!D(#NITdr-|K1WM#IEAQ!JdwnNl9A)90OOMx zgmy73+e&S=b_q8YuqXuxoFUadbA(6z25kNIE>VdU?H*M#g6)%g-vI*_p`O6>`p$m9 z7;FLg@@aiiICRG5xq!6EA%j#r%9Aitmn~{n4kxKp!~IOr?*((?eN8DL0*`7xfn1Bs zeH?pZ41v;Ai^Ql-2qyRyWcwW34eOjN%F^(wA)f~ogbRPQMa$0&+UUW?2EQ~1^tB9K zrJ_=%K?M>mgp}4uDxin@;X9J^H84`#RD5P@)NX|M<|9jfqKCm3L7Tb6ePv7%j-ie` z0x__(9yEwv*C!)7H)^wQlnIKdu>m9|0xDf!E7O6z5C!FcZ29-<)z|mZ+nnvLlZhtd z0IONaIWIs2wg@A3`MKo0R`ognd!N1rYJIX#$Mf-6Q=7&Zk472Y6+jL6XU~9mCyhM| zMxf4MjvR6-;*lIEXKUy)m7ZBO?BpcrNuXtACKOkZJpX^(%_Lh?|EC$6qW_b$upFfD zHq;c=r2s{Cp4%2Q5kc@|<^=#1?71^(*Fs`gP=Mu~Jrx)uo{1l8%{`sl({N+)a5N$GAK>nAnP{rgnKI-}0FK~swlk^=c!`+eeg2tAR? z)v_2BSbF@D#2usQh?N5Xgbf#_33$BuyH8+*Dv#j!EGNB($2BXQn&6AL52QP)Lurp^ zLjzk^6565pCX&i&KwG2_uEcPv7J5=Loz2r$yk(}sBVdIv@xyY{*1l|n^orW( zZ%70F66q83g2k$2f|YSlFco%ZSpy`o1gS@t+HaeO!UhGce5(mBI6(@IV5kDHqyN=*`ttPOOJ-GsnUF|&k^o^s zxCUk7DyRPMfm~60NnS*=CG`S|UtHwoQY|>+oEa!Zbl^o$DX;$@;5;%Xa|$zaoAZEp zoClGQr-?h9?xmseMN=8V#OzZX z&2v0|QJ;b@g+_Ez5Z+##7HJREDdm{ZkY6ky*y7yD-g_^1yhaZLF8oABZ?Unw0KlcT zm?!X}B~6F8^(TM`aunIs&0{R;@1qQ6ynS0a%o-A#Cq@&gll*rYYxt_pz1+Vx`r!nM>G%=96CU%Qb@gz=%Y;j&!iSry;noF{X$fwR^O; zE#kpRL8#Y{5vY z`T&agwuDU7yQPSIFw#nKW5O3_+TFVQxUmI z&H%M)rB&${ea~ZjI-GR04%JswICTyfbO8m80>(9XoVIbaIo-WhV5zZm!XVubQEvVe z(4HD9dKg3T?aiPX#T(=<6KRc~-TlwmS~}@Exs~pvysit^LaFpA<_ouSskvDH zRkWM>Bmr3US5O}qZm+_Cq^Mq@=1?{^1Ly96Ha0@^R=G=3hh140#7kss`+1?|? zKy_m9=t)oQ)f#79>PT$Gl1OlfU4_+t?TCs!W!k3%KL?lG?8rdB^@N z6X~6V>PGP|bGSx&aPU_LQAlI4dKefxzcix|jp}Z7esNpwsuYYk{CuA~PhQheIav^ZTc;#BBz#CI|Gw(0 zGI~qq6q^EfvOf`_@V(TJTsl{3;J|8}w`^zhUNHU`)(AS`V_L4#QkoOc84#!w`Si_!{L~jA z_I5Ud@Pvp_sm7Pv(h)f=(wNH@fss^S$zzdJpGa!$x7&J(Qjzc}8uaJGg|&>S2#m&7 zq>Ec|L*-fd40|IR_+li6LKulFSPqcxL9>eiETO|HTP~28SH*@!?VlXM6mxt7xwA;+ zbgJcjJD*D_2KJf;Tsw4ctRgMn+`q4L{l~jxlhU0A!K1D-;j)%{slT4-jSs!V&I_gO zaZ}rt4Eefd-sxJ*P7AfR6V-&=&r2lDEyPnOx&wu}5_pQ$tYRar@-g>}Sfof|nt^jr zH;&G7(D%WyAs9)~MgoiPZfjg{%ok+s7fg~OIFvAmVXHcp{OdTY3dLkB-U*;fl_P~)`W>#+U3(?F=}nZgBD_# z5lY4YM852ZTKZ8dz$Qt(PH(v{*v}Oh4H*ZX$>U5TUv*wRyHO)rAY22N05@%!8?PWZ zV76zBU*ST_z6bo@6w}L$#i%+B%gp49B>h;22X=4?A4(! z{RAAkk7YT)qgp6Z#qhkj z;BHV+b)hDKT#&W-TZsWBMU zXDvy~S%~k2?@}a56oT&*ap?4V31&q_sN7DWw27#b71Tc{4Y-?lZ@!9%t9%d@cno(x z;;AaAqVd%KH4ilpMeUmp6q)dWBG7v|f_g7AuOC0}k++nXRm?Ve!CiVXOIU`7Of+E# ziM(F@tbxpsB)zEco&X9_9-FQ0%}(%soCGtFPULOQqCf4eehitXK^n-u%shP|7X?6% zb}hyymxvDTa_N|R&~m9PsJw`HUIu~qZuH6dR6I(W%Vp$?P-z(s?!%^`|5Ra|6>=W3 z%g&;>-#@=NRCb$cD8fe!VVNVJT$bEb*9;WlVwh?ypr*Z02LJGBtvey(6zd!f;3WLd zooJF|*^pOFf7v!w6_AN8floa2%HI~(loPrGV9m&JS*P=F3l`2ki_Y#Ya|S_O9cz-9Na{DLCDCqzheQv3 z*^?jmK^IZc0M^-h&Z?+h4V^Y&7Iv)}HPJr2TqIDyW<){Z1>5yPIG?$VJtAI!7+Z3m zp&Zm4Rm^9qWAk3b;z(^gfQXlvvupb8CaV_4&kI+-W^!JzGCQ*!S+wLb^q{72hf}|V zLU}WXIO$$QUJC#A>!A zn_ybG!P?>@|yFtZo@((o5SdX0cGk?c2M z&aMcck3Eo^1PN&v{O-9jXB`DVDQsy1$X4xr!h9&XJMmZLd$lF?fyOF22oPQy6i;PA z;*{N2gLUkv^cu3NMb^@6VV;HPSv_H8$OkN!y#*jW|D^vtb!{j--HoErVT{7aCI+e! zds4~dn9WO06s7Z5&Ty-VFXU5c_Pn{u)+sX-{Fh0^Vc(J||K0q# zp{{Ka$XIataC?gmRajV)gz;5}up>Qj?Jy3->$QOFUl16R*&?#1M3C^d_zJmZm4%Tg zmPtw-TPE=?4=Gk)XmUv5kl-G6GddG)75WT~)G$VwaF7XY0|~~6#icHm|2XFD#($a< zMhBEVH`1A?6Mn|nW|tC9l!9$mj5OA8d_5j_^ays|AM^t_2VSFeG1uf|&yQ|Lgsp0c zC9Er$$SJqlx2Mn8`T@Dgh?^ah;Vv@H&ZkGwDEV(A4ko+A?~k5JtwmY^dGMWGR{m8j z7E89neGNDS@+A|ieiYqrf>;r2(-Px~wpVMH-h#)eiZ^z`Un&?AbE~N;)}8kOk6=rYt8*q?vegG)-~J%2SR4{E19AIh2dm7 z?Nq~4y=|JrkF#s@me%P^={f=6rGDm%0XO8Vy2!1CLr6#;7l1GMvk z2=bjg)A&Q{wm;4y;!+T+A5F*eP%Q`WDkOvMt(U7iq{Mfblmjg9x zN2w?KJ+@O0gb+-lL!5hVZ|yi@` zjJ>6ZuCnp_*jcs7;h4*We}y!o*>H*L-~H&tu@fpr5dnR6;b~>A^N4eye{hUV1+M-^=fV;MuKKGcvTA$h_=<%)BSp~1DH$Nq^yb>wo?t?%jV*R6q3f4ku2F|qv2a&Dq^Vt?G6+<@AIn0KW z8MNeDGL99yeH)*_ea^_Vbaw_DqM`?)c^M1iN9pFAB^45&AoGhArHlmA84VaW5^RO$M zmwoDdx_WZe<(LmM9REtWF7E0d+hRr3{Aah&L=epmg98CwSvho2lXRuHQ~v>6{s{*Z ze5#@+equ>N9>^k`D+K@Xq@HnA`R;J`Ex5I!;1o3$w?vfeN{hj zlKHr=)^J<@5b=GC_fxz+{-D97BX{~5<3AO9T1FTj|M3YD(jgrK9lTF$a9&h_N$7QR zk{}u-hwA8|*9we&igXFo00pnO`aIOY0IcsWNETX+Tg(+8zqzLWF3w59thBg?sRZ@X`W9{?9PANZI;0iiX0sD0)3x6Q{gclmE4_ zhdgj>N!8|@_v@cU?Ia^ZmWvu;l`2|35$0u?IryEhFVX?gC9vT2!Q1^iZTzJc{de zuE*5G3s;GLtz=w(PmBbY3J?%Cz#qBG{8AWfo2NLpWPP$SyLak1Dv|klwYnrHQeS2k z+_{F(4O^}|`;GIAxTD9aQ$_%yxKLdK10Qi2;KRL!pG1xAij9M|J9@)oVv0au5i>$! zb~8L{fWSaV4sX%}6}N}pPF^(%>1u>czbFaX^K%Pp(xuES?AyW_VLj=W8#MU9hnSPX zM|!dBd2GqX2!s{KPc#ONtyG%_WThLLLCmf!RjN@+h`#$|G0`O%MZaK-CWGEbXoiK@ zeGhS$i!8uz`}FD0n-cme-M+gS-vqm+XAeGrN>%KYGOGFC0CU(uJ~E)d0Y=)n@WlF* zWJ6ZevNz1JXH)eXGb-Pf)Z)q;0-B=TMU?6~)!!Mm&f+A(8&-$3MJiS&njG^CwiW36&v@mb(}q4pb>1!5!&XBp&N9_?l*E?R-y&* zw5?((*iOd&u%s)bT{iSPEj>HFJb#T-2^!qC#822zyM6_YAZ(=|YcHQnD-B4jYse}Q zh3kT_A5qY%nEwB^;DKuQnEp}>1SDA7k^5L&h#N#Mj~=ohK;McPG9{~QR&yF&%vAD( zz2VVOyIQQ1aDWMkKM{l3%iQSWg|9GRF~2|;{o*zVTlCqe_O0!15OUL{=Dr+T8Q7(> zc?v569QbCier#M-C^vY^I32i^kl_ak$SG``w1dhW7)moMUiIFZ)}Q%r4?#72RfvxW z?_GYi$dVQqSWRiJN6IEB?u|W@wxH;7z426hk!(8hc5}ATlKOrs)Nd=&CyrZfl}H=} zegh1;I(b4dDi*XVVzJ=u@7dyeD(f&cZdp-B&n%qr{m_Xj%M#ja`vE)J7fQ2SxIhCG z+a&&CPFa!k-T0iy#j61Yq0&2Dd^amQB^%n_Sf`-BVZ5yyfV%LSMY2t#FY`N*0On+i zUQ~{1%vNNCqIF7Pp(9?BMdg>>MRP@Wkav54bgYf9J{MGOg^iC=*SBD)ObZ`vvw8y# zZgP&ycsl2WDBIQeo$=;b_^q~N7_noS{OB7~qm<|A=G+VN@h?qTzOX<|M~ zs7Wg{dXe1WKgYv%Vo|=^6P!3n__8P#k|j9asvP(zj`pmd4>xBfZuYR`{&Z4ghkeuj1`fTP#awO7#C^U;SobAx(&mM zHA|H4FPPQltJlZ>4Sq)xr)c?VH?7Y5gcS1QGWv#e(N8>o8+>1`St(k`p9D)~fSUki ztn~0U;s^IF;WbuUH(Iyv8+rruqB8}J2ut<%o#YLM8+C zK7Xi)HCG|tJb75h&`wgf0IfKVqpr&G94~LLLH*vx3;Q$*R$rxDF*VzoU30Yb=x6~b&O(aG523lm`P9EDeiqWHSGfZod}pY9(B zAOz9d%K64=fX;}$f1HQ`t(xxc8gR))E@Zcq#D3yS0}D%nme*Tc#B%={krX6S1vvVg ztZy7(p`093e!#CDbFM;@`&`+v;A)MT{ckC8cL>ZDaFpL-N{*gw6(51e&@t7C`O8XH zn>X4$41S|UtKsbp6w;r}Y>bZ5HPq?@d~%~S8b*wieAAQP<%}G|9_Lr)KZ@1*Tbn%K z0$u3H2d|3s)vw<9rL@csCulrforI!b?_9vhpq6K=HUd)eTFq%S&qxyS`Y6B$ zdnEdFvQ~U~S(yc* zsV7nE#3GWJ`0}CsR!z&=0(V9-+p9t4&i~YXX9i-zkF>zG+MvnhJs?PpUxouWc)41TYy1m9 zS>oyj)M@EQDC(FonYGmsQeP)ZR91L|`&p;bFe_+{iJ%NZr^tI^1Wd6+i-azUSg`7o zJIQ40MwuXa1tAi8(2}}k{&8R)clDJx{>^%EWrNplT`?e2a%KUR)2iF#PO3P5&C4!Q zXbvw>3JSG=9hq(J8>AdiPGV<4V;OLyV$V@krIYqN2ApO`DIPTO|G&Ty-F)F?7l-XS zJscdLw4}evT_QYXs7DqXOgFtUJ|9@N_FK_65=GBs%hQEiu^@sKeF3o>jB-cl2<6U+ zHyrE3h-C84*FEoDgRUt-}9I`ofhs6}o*4k^-(Bp?(AioDIe^GD?dJY{* z;myTDV;^AJv*rsJ)o8fG(S_u&=b);P?_ZN1ALr3C{KuzfIPef`1zg`HQ^3^!b&_oM zXt3!7xyf<3hI{*pG{3{B7gz$jdCXbW@=lCRCx!IpbcvUigw_Ij8=Ds%rn-F@!E27% z6z{F6S#q`3A>Nfcf;emn_8B-v5a)DtGNol;>JXf;)i3VoLMO3AAxLm(H`D78I>9mP zN^5KDgwyuzf3+(NteanpZOYM*McB@4y_=hie}Lo=CGl)7o7)o!p@yzGILr5>Uu?7@ z&@Ul;{eon?uI5_{6?9+=zU^X!V{|Xgu$dM@soR;n^5g4h;O;%Hdqq>fjy8<34lO>j z>q7N#7>e;hch1 zZV>+QPH5kgw7sGCB8N)9tA>>$^N;DFkR2u)WaeEn|G=|z-LqVL$L2pZIPDd7D8)=@ zkILiHx!8JA&3TBgocb{5VGPDAGh5=eJVGBK@X5~G?lu01x5&62k#ho)F1If8_pi0# zZ#(nl7vov@uW$IW6<_#1-07}Znj6cK#liI8 zB5Xe3JiyYfu)j4jlBK}1QxIJ~Ol!v0QI>108Be1Ufi~O0wvlu+yQS*0n{m+<31#ip z!WvR>yWC{(X0^t_2Bq@*-_(``GV1>MzKL{5?i=sY4M~GPA1^C|XtyfCJEcf{1U~*N zSI6j(u^lsxx%n6jd+2&<<=n_^uy>Wct*;+*RPR z<1*7K#LqSB#+7;ccZ2Et6jHLPQZ9R-y0`U}T9B>L=t1rUzVW7}&LVfl&f8w4e8bII zP&${l(KD%10_QSY3!g#PeI=;3iZ{YjoYNO#wPvf`QmOPOla!ZHHEG{{!(chxO(y<) zPhJ3&t^|US%B%V{DX#oBy0p3v=z7^MHsp0sE!WpkHA_*vt-re<3D~N8kXsvdv;362a)pvX#022=@Rcym3EB8U9lfWjFKd8#|v!#y{vFSaZap|lO7&AFSTo;hbu@GqdVg6-qU{QD zq6kBY=!5YQJiNrZP2ivbg34*H&%+PSFBldbUJ4e71|jpX_$h$5navIke+u%*g1`Wl#VHFPpSTs;npUB&M#pLYo2!%z$9kteTBE( zVV$gNx=ULI>>1>VoZOVayBLMj%r&qK8^!u)w7_qdb8Nckrm@V4QvHGmDRPPMCxlKg z&ARC+ccN__2WsrxeaI3CPKXE%3-~kZ8-6jl`6lI`M}+u}W&*%I2>`K-D`thsulqWED$*9ID7S@@Ct z&i4k!_h8cbI!8%t&T^tZ6`z=rT0*xz{B8es<{kl%x-!8W>-2k5TR(xi2mi(UApfDQ zNavcyK)KB<)}&SRbGK!l-sf%-;ut|(YE61|Z$#%osY-0psPm}56FK%I31;O1VLqNK z?~@98wb9BvbMpek3tJ6J3#F2!)Ipaih?PJVX=(m!inRWLE;JZ+IX1q5H4&@DRqE!c$K=+)z2jp&)TuL%Fstfi^%F5Kxbz7?w)dP z|J7#}7sI|Tpvt;F$e2PiQq-a#fGHr-K8c6-3a>M10KnOv3%4pv1k9!tN7yPr`bIDu zF>fn+seqaa*(pkc56z&9n3R*mY9Qdxxa||af(8gV(W8?#ZEsQ?hOZoWfS*{yngye_N0HRR4g%(zUX6CGimMoo{oh>0R zg0S51lJvqEM~uCoM8+j{+i};2rSv#)z?)8}?6d;}KkwPErg=TMX+!XY`5b592TH|h zkSGGh*G?g^kH*KLF4~y^0l7jnOj!1Z=bMJ?Qdt}$(feV5xui@~+ko&PU^=-5Uf)Ji z1z01zv^YV;=k*XA<=<4lot{fql+r#r6=+7YLO5SOu57I`Ftqi(9GCs%?Lz{1EiV;e zLesHyO|P5TjE$OCo(_(0-($J!X7Ss5zg7=eD{ZAfPu}HTHsEjaj--LPe10Wq8_MmE ztlD77Hm36E{Q8}9gog4b*8B!|pb$tN(wD?}K=tsgKx$m;5SDHKi>)DmLlU3PXobwP zxiN2#NXwr;ydpPv!!ub0IQZ@_DM-CyU{E%dO+#i1E!FqJx@g9k4_KX8v{L0y9k#JuDFB~Eh4TquE8>O17tv@$@{AfV| z4HItDi#513E|(qCF72;y$$EoSoSIGXTz@jjtB!Hb$N zX(QL(8>+&pTyjkzQX({?qzd&JpO}PLsSt#5w2-O9CO|f4=150}U{cQ1!EFvh)B|)> zWISJ3?T9rm?Z8AmDRYnhBA|_1?rMq041V5e&jD=guqQLWk4dK%fcMZm-sFW zQp&ERaXPUB9)n)&jQZ0Bn!Z2P3hN=JgC~rN3*X6{-F1l_ zQ32A*H&0k{krS|!i#KG&JS%1Vs&dcusG!yUVP-^%PhQ>Mo`B&zZ3r5nVgi&kn>P$! zb}~5WR$z2@MdIlw+DHhbG<sH-6JT%D7t-9mW`D+2BaXqOB#2 z!5I7<3WBHr83P8S$JBt2z4bSWh1_zMkC|Q-Y=Y{>kP8mrAWE7z6E}Y%$t@bu0{oUc zYL#>wFk%l?-XhKF)G#fyzK--`UFU8QK7>8l%YFHrK){$sFCJn+ix(}*go zKV*~67^y%`i0M6bRu{^DK6fKn`4R3h@*s6k!+ng#suetMa&=zf+3 z8p91B6aVa6M|zEy_)p_7Yi3uu&8;d}Y_A1kYKHCLLa;q+9UdtPq6)U-e(k zGESNo5sdL>?)n^+Cj>ZVv+?$mG6;#*-sD9^N-Nr{o<_LHUaK6r(T(sj2LCgy`U#C9 zO3%7ttCg&G=mwnpaH|WyRMY6}oD6k-KyKk%hpZ(wGZy$My4wRbr|@U(5x&#igGx6a z(|E&yTa|my&BZ5PsHt?~rk<+8M0|KLTY%WJUQqh>4ibGSP~}lg2cx0U+_P&bpg?3& zr_znq_4U!8{>TbvEnW4@ z4Mj0W__{ff*6NnxEWS|PMhijqsS(ESVkeF}WW?0tV}J3GeH!%bPJMgKItR6z@DkXB+oBtq!Q9fl1TR-~kQ-Y}Zba8*SL=CLyUqZ{B6Xt)r@h$5 z*JoLzQ)%ow7JG@nP~3%QF-j0GyHidVCu=-l?k4v`x|U{v z%*dTkGJ46`y4%FhAyP3%Vc+rkc-B2)Az^%Ytk^d?)Uj=$QfjiJ%I-lH{3^7tLncVL z#g~SxfJV0fi?Oa?HKhu1$&y1s;2B#Q%a@qQ=IF`OamG!j*}y@^Rx7?A&2(F>4>?{& zP{bgv_Kwfzoo0zXtdVs|QXk7HnBcsf0OBr~)2PPwh;C$VzJ{1x*-711A|ic@T1f*S z#dz24ELG;Fxxti38l=W<(lY|qU2d*j!$#OQWF2|Z&2S-*SN^~mh^D|<`=>{z9uM|U4qG;2f^U9r z!MVanw4}U2!t{Q%j94WPG6I0en~7x7UD=s31M~%=*L_6!Bwm9jhAbgAR2sI_zzo9V zBEp#OihbC11CZv*g}k}^FFfLlp)Etz9@sPnIDR}W0ZYpB*fq2_`EEjIrE`YJZP|O0 zs&z=4&r?uyEA|1t<}}dtmAgY;5h>yR*lgIdex0Vl^fprSN6&s#PzS4_Fa8)U#lYRJ zMkDmaTBKj!eR1Id?2X}pqexih_u)~KKk_C6TC0oM$-LLjdwH`5BZF5qh|q$xr}<(r zzv3d-tq!+;Tm8gtgSTa;9l5O`+%G(XZ0$%uNC%u`PU`s<`)T4lzqjxLdsU%hWKC$~ zi|`O%gWt@dFLRHFG}=abP#E|P^R=cX#Xid6=az9EqQ>|=Aq8S^7ivA;Dy)m$!iuiL zsHf=LWpjjbadC;7<{AeZ)XVGU%^8AJ2&n0jma?PapEb>gyH72T(GsyIIbA$T^b*Ya zmHEylLK6kLRu%#q+V)(ggYjJF2euwWhDpK`R-t8IqdbY``Yu`}oM?u8Y=m1D*2FE^ zf794|T;NV$O}B3IGJi26+vy#+Gg848tHw$yj!1AJOb}-G(8WJ89UJ|eM2(C07K|Ha z^0-&n5dvmHhmZo%osu9}7KYtE0<0HNsp9&j;q?`5rbgCM0oJXI4n<$y%`c;zv zQlpHcv(~zb_0O@T5nKsDFTa$|dkHU+wJ4W}wU=1J+7&ps0W*IxIAd>jnJ##Gdh;8TmJ8eC46cs$U=o#w%55U)7KzpFBl!&VY57fwL((6=CW z@a%?3hSJ5LDUUigs;){{4&J3 zz?W~58F>Dxj|}NypR?se@^OQEe)$_1#8fh*q$P_t3`DbK?O=#T16<s-+DPc*C0jQHS)2&193rQ8Hj05CYzxC4rMKh>Ii8L!%MAZ0q+60(Kp=!Tn;*)gCX93I+FS&_@c%R%vscx@ zF)3d5vVkF*#b_@eGwUu7OY6f{VYHOuzS$5ZeR(=MX5&M~alIeFGJ7&+a^=j8a%m`B zq0JmT&}#l6o+E;YG`+%HR;KUSKnmgKop!t`h2j)=qQIE@@i{88^m!BxXOBZ-2r^Jd z-(-^H<-H-$4dkfH;c)@%!g_`zqXyGLmO5hts`d>n_`$CI7V@g7M5~@VlEDlNml^I; zUqL!)x9yZw{{H4@CIWe(HETr`Ijf*BKx}V{k3^?ui0B^L>{G(kZB`B$czNMw7A?k; zJCt%r#}7J)?q8t0>=S~^H>E;S5s$-3bmjQP4k`0TSM&KYj3mvYnOHo{i(v>ey)Rp3 zyF8;P?W*Z#td)^u%OOgR@}Vai z13!u&7v#%bQLKwLDX(Z=1S(|0Q@SU`8fGEw7db|C=DF17j{x33D>GTf?SA{xI|^O! z*z(^AH3$eUP&*h=jb@~N>A>BH%8{@#$Yl17 zQ@rbF-h%Rf{Lg-&=GB;R{?1r>lwRo3DWIlgd!kB>Zd+lM6mpl-rgBF5mTMGOWgQXpE6knbTgIx{F8Z&&+`gI-V z2jM2)Yiqn0#w`4HUSN#@&s7{g2&n}tYJNs*Zbz-cco`l2mEaZPw$s#_jZ=A zM5oZV>{-aWlzX#QpONskIkhNlE-tAZUt0E?K16vQa<##wn%BK;+gwlB-VH31OgI|_ zzjpnMMIi9IcPz;=0M^LfuED8vAPlW420Y^RHV6Usje7me8oHT>Z`3y1U$|$u?Q!Zb z9#zsIFNR#B3?eD>Q|V-^GUnsJ2Ml3pr@D>-P_-PaC%*Us(Kb{`_()xQl`V!)D))9cz#g-CiM4nOIx#dPN%wz^sDgl_^5*2xEEs zsp%bfjlkmQk8}h2pRr>LPYve4r_yr+_12~N#7MqVYnntfRD;)|Lf7h?mdx2Gdr4T@ zM&&f0S}bqjS2ieW2BP{!4X(;+$V3+O0zhc$lcdWtu11T5^WL;P)i%v6ibOvRfH#T- znA}?KMI<4@K8PY`sX8pMnk2jF1zgF#&1xe-eBb1lj%9b8_wa;|#_F=WAvTnM5_K6j zsWbJIc`s^-8Zn5dP)N$mo76ANv=lu4pHVD7&T3$Fd^TAFN`p`DSBK|NzS@Gs72N{41_L(^bvGov6 zrf&eX0}gp>LRRdLH{ZqhI)f&N7V{{PORw1Q>?&rzjVPBmXexd=KrB_$9kCdSoO^9Z z=u*q)6m9sD{?TA_CP0&^u4A{=sriUM$J*DsHlZ#TLlArPa*E|y#f1A(?YfTkp&F%M z2iZU^s!{5e<>@p0WwpO)njMp0rp?hhRjt3Rt#PW258#n8R3uDo;+g(|3xD$#*o!u2 z)&TwSW^&x5L(!*^yfQhh{gY`8Uhdu$wH<35x0|N(rpvx$Aifb zM`zjSuy{(qY=8`oCqZN>#wIKG`$UX0S--EXW|=1eO1ftxI1gtLsDJ6C3S&jQ^4cD+ zFA1lWdsxLz_Y=0B)C;h0p{7pKXV0lk z^%8vgGvBg)kh6W^Fr~EYMhE;df(I(%{aRl_7Mfd<VKX$4vuZ9-GF&dy;oYv?taQt>p!6LweN1>cWejF!AVHcU@A4qU+e`w{Oy zZK6475KC!*MZ~0x>RNI~rO;6*wEi*~yP7u?4-4gM8R%pF7e%AM%H8DM-Nl0Th`_Oq zhZizOxwR+J0qKgV73AW zXhZ6$T_kdDQM|6VIx{>V5%5BG%#FS54Pc-i!`9+ux%#bkd%!b;lLku6b4{l6 zr(zE3xq9iiS}W*kl0IAw?CE1`PqnP4sH8U)PRcdbRj>griqB?5@#6}LRF=f89mVQD zxO*djUU^}`e)Q3R*-kU_&1#eY59z#B^wC^H3>{d+TR|IsN!C;!t*%HZtmVu6^0X7m zE+0tr5f4#Y*~Si=TyMeH=V#aoi3>8CoEf?elV1x!5qa4to}ZL+z>Vi5RAcETdWh`P z;v<@${nt6+KsKmTnd}9S_a6`aNKri&V4k>W`d%i+OaY znEkRC+-G^&==II)9gNXtyao9}TZqA6!?+K5Ti~mN<y)#J(3ktWXT@q@coe3(SxPHDx$WYW}$ab_m&b z1$Ba4n~Hoi$w~-zwhu|uQtt;p{UR6GDO1x#|Mr7CE)$Ef#7|3LX6Fznl( zDjse$olax(%-!^Y%>*LT%qQe>*BLk*t{6a&z()?%_-QPh{f6}=kpGsOuD$aLGDB>Mz#dSrc&W#pJHRdZs2}_x8P)7;1}Chcj6LP zd!>-$TRo^+b>fq#hJtVCuDemqZ`o$(MN%=P+%&Br$aiW$g;XCZ^A!7yE+SyBp7@Ug z&EW|NLdnSjw4``4Ml4(5c*m`McoyB%_{^adfSR}Be5~R_vVaS!5UTY-onyv}fqD_U z;~ZjJ&?C6(VFSY}47|M|uOmBRHI>7f3SCeVGrswFKi3*AdoX2ESWqRazucp@I-=yxbfn8^4Ff}XfZJ`?R%I2naV z+RF_kg2Hry8d{l0WrK0#f^4)Qg2LYfP~ZMo=RXTcw{KVk==Tv?k`BHlI8F2ha7n#0 zp$iVVg1G4&zVR^{cms>|S5LMdewmjL_21B{NbeUrB?uw>a9Oyypl(9u(2!xz(6`ogh$?gB1QKHusa;ZqTqCA-ASv--m)$HRfNK8^r~F=q(+G zehTYte8Ybb12$Rcigl-pp8!q5*xbEm9hR4`J4_WVmh4gxcR%MVNax(Q;YHmnFzsAJ z{eC|~QNam_A)1+$NOnbXwrNwy+hG3^GAu5F(h;7`Xfn|?4c-lfSHk%JzPxp*ajdRo zkPK*0*UhynJ9g6nA)UR(aT)m8LRVX(kGoos0?71qOI({ILqq)RCry(hf-|;OTbhZ7 z{{HfBy(7y+AyjU-YWRp(KzwTUm^A@X;fC9D{Xof@yleln458Q8${NKg`m+I-?|O(s zANm(O5_?a_ za@!cQXhGrKu{3QKF(kiNZG?^F9RSFRcjH~Oh1P|W{w|N(@=sUc;p45mYQaPDR}(>z z55&vP*06z)jEP(CG#UJk$s&>Wz^=99(TS$E0Zw0?VBD25p0Wt9&NqWSinx}K-e0T= z6uCWt8PFovN*5M3=o_{vN$gbNgWY{f(RktSi zKKBw%x!w?{hjVM=vB9u!feWn0`g0cazi7-s^7<_s<@A## zQ`Ele35=(Tc$5}@bQxIY@u<^JKqJQVK$Uv>LmHC*oC|SzT{CQY^<4faAGMc@PhYrnm2lx(zvK)c@n-^ zvWw)*uSb37F7UDx_qU}E?F~Pty=jBX8$HkP70*k$jXnwfWpEVa&O3woTu8UL(u~EN z)PpbBcX3AcMTi;6iy4<-qt4wnZkkP7itifyRt&x<@Le%b+2swT*jlMS9kC$-g{+GbmL@% zA5T;`Fz}|zvE8rdeXOO_q=Rze+ri-e!Tp&Q7dWU~p4%nuMeH(ItrRjDbHB*OdWbtR zLD(!-SE-Yo0x>~GWWl!(BieoUWjG6(h9&O<1Y4ol9wFVJtAjQimi#eTi<68vZc&e| zg?`c*ikp%(g#t){QN7XLsyVk?(CxCKi3 zSPtpl@B@(7q4heY7K8CTnStQUmRZ{k>0&&%G$C&gnQ|g$cir0vvIy5-P{6xUq9$*!uuHcOiV8@&n za;mm~H!^?BSsP{Xj{Uc7D0i#>lkpLn@;B6 zqU7JFoPuXtq)JfKP;Bx_i7kHis4fJ?xbM3PRn2@8&W&hKw-~+%*$Hu4 zIIbBl&?lNq6zxmnRibjxcMVk9f`s-rmD^}N-objEr~X6iHivH>s^IHQ4pSdo7@MHs zo_TNeE*y=tnYvCFCm28{^tHACkSpD<|FEMDw^WrPc~Wvn&j;=duKKfAcjRZ_g^)i4 z6)-GR${jtfzB>UuGB}mnLhe(p-;r90g$gCj>`ZlC1w6_L+3JEI%3H`~>SJXbHBEc;&YU+BIlNGztj?RyCBNndgS&xYa zuT3qYXKtj)syVIE`&sKmb9Jn)ET@`}8iRE|3qbg>l1uzK8Yn8(OVlOLo}V_AA=mr( zi)x{1hvrOpN%ABtPW+*;83Av=s`JNTQ7&exaf7R}AI<0lJ8&m62oM&8=ppjpkexD7 zc(>54vuKs$gP5Lw`HKW+W-$VH?*!y_w|o9Wlc@1h@#(i8@YjhVD=<#7ZyB0+&rhBo ze*Y+aMr@4>BJw6%tPV1b(FM{PuM-urcJn4$C)be@V6xD9&Z?0xH@=upUunsjgbI?= z5EPW<LlzSy?<~L)F8y(L%P(} zj`uR8oo*8DP)M&FJ9Get^>mtej>p@mcK+RSoc&htzBoYA1r< z{3zJ&Gr0@-0;?Oi(t6wq*UW#L9>i3@OMZa9)xnQXwglfqxoEXQ{3F1dop8%ft+97N z?Zng+bc!g=N27jAz)7i{nyC=c!7~mkq7pyO0g4Q)kpKQeF`JNQCGZ2&OtL^}V`}^9 zN|YaRraM&mQM|hE8f(??@)CO3uRhpBPzr9#3j*E}ZlghDe&My8>kp_i4QKg7^p7U8 zFF^d{SW;yozzFMpkViXd%DKf}eIGBkk8MSTGjZe0^3>1=xtf@?VkUimeMG1x&e3Ocu$f9R@!5&Let630dNG3<2nDQkSb%zA8g8? zgo|MJPSvK(1r0UE<#xXFFv)^9>p4OscdVo1{RPbV9bc3+M16GH=eUXl?k|Y$>DI-< zQJa&KKkKAqIfMs1I5v#8_#gbdvZCtIPrpC{ZJ?e0?`BxAwCdlM1S=-c8W>`A0B0J$Bljnz_@YL zIsHJzGIt>?R@JHw(wd7~I%O#o6|xf)0GvoFT39)jEMMxGZ8n~b zLZa-(#8tN?!0-Uc#rCmIw-$*SsqPQoj(t7tr?tBcEQM9*a%`NkD`9`zz<~GfXfE_q z_2tfua>0j|rPdm$8Qb5#LOp0we@F-L?$FP1 zuP7=>V|8@uznE3clNy=}Sw2}`HbB$>ll!}#!Peh9i1+TiZ(LH=8Fs-qd?8%4))b5j zy@$(XPLVTBpGY_z!Z)?z!6W$;%_=LDcJknWFRxZd5(Q>D#)me3}2nII9a~A>F=TuZgT1kbWUoWwotE&30-5H*+U*Fuv+4O(kTY@ zknZRY)YjM{2PX0Aqh=|tXE&euIPU4kM@HaILaW5vL7*>hFSkUX)~uYWV8ALcqK`Gi zKqmPBHeKsb1gRWzod1u*1?ivm+TuGm3R`HQi$P`#75@m2BC}|=;6qH@8Mm$#u-jjkQpeee18?1nAV<^CDBH-Q!YXUxu)V_P&~VC%p## zO%ReKWX4P)mQb|bs|U}qRk5G;sDfl_h;x9bVrC7;y}2C{G-0dG+mwjJS)>BpE4?RR zCoKETjFZ4LZ%uad3zgS@GqmM%2LmnthNoKh1O>9hLL+zgH91k3B;KV~jZiY6cMYpL zoJV-@b|l~hSeYln*-ix_f@Y1o_7$%?bUVNVWn+i)hR3Lohlf=7cFa6#4)foKEL{*X zy!Ee3Tgm=ddQ(^n)D=UC`@4IoV4+BBVQfxk=(#*<2BzDNuzgJf9ny2syeL3zPr_oJ zIi!0Xfg?mPsIFAt)oqnCDX}c|%SenxOzQlQF37Z+BC`-F{gtI}^ad!5?@|3XGKN#*dNenM$HWV~plkcOM|=FcU;Y5o+g z#R%Tc$1J=vba~%zSY!=sl`Py^=0l9AO_k)Gbz_>n=f(SGMWop=eXS5(Fz{O52nnH? zF81q!bN|#`8Bd|sg`NZr3=~!`*Ox~Ny`@=!kDzS=I@OhrOX?I6+k+n zC;~nb6Fy2?j8zK(GdO24o*+K+4)x~!_(7GC9IU(Z_r`?ht=BMWch$AGIv)HSQe7vF z+w?M}xJ(Ecw%x(3>rIU4i|BcDzO>ceT+CcJNe$= z*Uv8K?Ktg31HPFyo_r>;G@}_5&c2SUq`tVFF{jw#R=A(m?y7UGI0ocywjTCuD%i>e z4daMvq>0pHJ$Qe17~D4Qct{Nm z@0_$=lkr5z5ybCMkdmF`c(lWxE3~|T)J-3>4ykYpHDssM*C_f6#_EA_FS5F{%3MiY z{Kl9*y=zC%-`@CR&xU>2fFrxj)MLunOv9W6q*JpWyVMYCYkwbA3qyC2v3U~o9ZT@; z9PBC3Eey32di?G|B3sD`W9Pp=#3vnY8eB+21}|%wls*P%oMj*3Kqmqp)RvPQOMY1m z9_Itq#GzXU9FT(uo@Bkiy}~+^fZL1Atu)%OYZO4R!DcbUYx(fVt}o_#UHS@bXOp@ahtma(F2E17uGaZJjo-cY-`MHkU+=jkH?_lUDT zf1rh_#~DdTM>{A#>a=f?KC*OFuB9+-;dM~+?m^g>kv5Fs>A}r?VSI;DY|TPfu&U|7yn6tmOKWx)}uOyuXZ?WaCN z11%1W%(`sf6VdcE=~-c2FF-8iw`^7`3U11)w!}tV7IkpMmsev8ke)y=m_3kABxEY> zf$GYD^eA0)j7w$!YLhAOQ=}}SCfX((5)c|$?v!+v?zbANrS2u& zs3Q7y&ywSCk>tDlnU!{_=qCv^;7SaPwwBSHsQoLehBhcZHk7ekI2mN2o3&WX!r6>a ztV|ygtyT(IMb2V-yES1XZTij(j=IUelN!YO(Rn;vd2XdM2mo7C7L%N0*y|>tRQ=IK z=yei5Rj4sU*2ry!c~K_=!v;tXAU<0yo%A_7zke3|dA$V%CEp}-Fw`*pj1`%|Fz?>6 zUrNbu4EznBg6CkE&Syc8U6SRf_V(RUbA=e@52mU5HumO`_Fdr>_eIhWbCFPh+h(gS z{UILN$9b8eAt{KY5QSmg8E(GfK(Ss<6Lyij-!2q?Ee0vOY$JiZdU%`M(kxNL$0R{9MK&Co#O$ybpFP+#6}%sc22)oG7{Mx+RL2O zU0X9`tgoetpmWsI4bX&cYaU>VsSbQJIy3HYwr);3wUDy2_f0_MqCVZM9wM3BRV|>>Ql|3walW8E9Y|q?SxaB?IG^>DC z{B845PO!v_XnS=Bo0Pejn(YesQ?Faa0|&@kHIe?@@^XWDr>!?y)17xM!>@5d)dwN4 zNr_lSGhLrFrnGD_`r2P2MwUTjShI2e7_me#tDEmX&dK+V9&6)^K{{tl)pbBOT7dr* zowhV-aBn4Gd4zVf3^4jElP#p&E@b~25@_&Rj#S1x{4q}FH$Se{CaJTB<)Q&Mg*+!5BNJY zFtvO$vGgEu?~NU9!Qo-?UexNqAUg|=*+b`vd+Oj^uF(CFRJk2#8LuGaH5g;QX&Nmd zHWMZ_Znok^)Y-o+0hJpH4-z{t!zp-gx& z&ebm~z+8Es3n!ugB^_HIt>k3*Q`gr4uar!8x8HLc zI^Sl8L3xNUjsP>UNc|ILymX@(8ofc*V1 z4C)sq@?xthDQ^aXC8#GM%8)-a7sYG3)eGE{02p)wj`*=@CI3ANMqQQx{;rJNbL@l>6up<9va3RC5FQjrMd#aU z6&6cJ%&|8#1li*czbtobt}jcrIIJH8f!>Q0SBU;Z{7&7?N%q#ChgL)Ejf|`^Brm5A zQTjv}yw!uAzVAjS4BRfL$B%*83M3Ej!RE_d(?TkK zd+P#Be)oQ{ctllV%;o9<{(`Oc5V#M8*&(=t2}@9e-5&g*eAhAEf9fs|Zboka2$!Jp zTo@h0ML&yDJ(+c($t$3hp_dvq!Hmz3K}04~vN8L%DYShoHQt-s-#j7;}HO)P93g zb1$SUI*ltUjNIh>^WKk9wTzl>3?L&gf{RY3=Lbgil;z)`WepISriYAaEMLZ;1E}K%<>_Q=cjlB*3AX%)IVqN zQlC|a6A2r8*TbBFDef|FjEir;qkt3s;u`HV_l|%jp4MyUB}G4%oBG)D-^V4zy0W%$ zrfYm_aGmh5fIe}HB^GE#ZTQhUS{zK-s4*VmLct8p#cQT6K3Bf_)EJKs($oUBSp}pU z@6I2uH!07xUCBRKiUMn?BWjL6ojQZPP*ABIv*f~Kxb7{G1ZDQTXY8mX^=O0rnr$+`Y`K~~(=gc@} zw0Y(tNtdc4CRiEV&Up`{`COcvg4ua=lZmzf8tgjOs5gf0O)YFC(?J8jArHApqUd;)l>hBtT8xeA2VfkY(* zz2IsJZKFEGH&0qtOAFG!LgJvZy}FTAFO=I_SpA=BcTbU@stY=^PjzG>Bips=)ZD^h zw&3V|v}ORM*W!f)7<*lfV_Q9L4s5DLNT}k$e=&KliaiDMBo)|2>C!oh)u`k9rBmMs zYr(ah?EpH$Qe-nQyvMKpql*mss)^TMH@I)If#4`IGma_U&FoA!9>kr<_~`p=5(4~% z6(Tov^qJmA= zTA%opfg+cq~|ZObn>5)Za&SQ+)9x%0Bv~>szbZecP?{ zoD6|Gj=*-=(xpwj#MGk;%mGKIU2k9u(Q0N6;y#kIclgYOtd5(~vG|uU5@QXu9_Z%y zq^~DcpYvLN3Vr<@s@H>ryh4^X&iXGZA=yFw(MI6XiUtu$?w3?TOgAitJ+5@W!?Le) z0j<6_lbsn$)S*@#`SNEA-wbi@R6VY9emX2&d2j$60C>Z zMxvIesg%0aL|83&8T=1b_^y;MK1&N0WTrmT#sZm$kBq<=_^!KvXZv`*X1#1gxWaI5 z6w^;jc?RWt>Jh}Y>7IWFfvjGc{4dLz%*O`)WWn$q_8mm&{~zja&iSn#o6Li*?uT7* zt{a^9f;v5AbkgLH)xklcxH6lg6c~9u&iP`Xai~sTEvpj$)6`XVye+=A)2})f< z&6jH59^nal?dFu@fSj+C=vg!sF|ySB;z?wi?_X8V;x%Eainw|TPcPwU+rwl@n2Si7 zy;eTXR^510EARXwpMu9}>rH2wDIv>!(_CKOIvtoMqq+$djiwcrDK@puD>l-S0YnVmbKCYOv zr5A$aCckCqap!TUv9DH5f&zqgmO~#MwzXmIh+&t1>jw4y047Xu=tlnYn6I<9 zkyO@7gBk+(zl{0YdU6*~)SA6OMhHQ10LJYkeESqNhO#3t!?a73+W{p>k&aF8NM z_WI|=T_qJZuT5JKfbM3-(?&HLI);8ixYOb29=2rf=IdT$qa-B%-yUZID;I`gvDMo^ zG>+V>O=co-4tvWD6!X9rRZ^2DK1|Uih?%yVP1_j{71qZ?zD-2v_x5Y&tB~eNweJ)Y zN^{tXY+R&(Br4d-b5!Hh+NfJi+h5tW)}CkX+p_RUY3=tQS)G%N7TbaFkc+k+w}cER zcwk8iY1R0Cc74*Y2V@jN_vJf1y5h|j4$%@1E1cp8`S5ID8ZcoKBhoi-AuLWzbZ2E9 z4MquZnf=f*c2>lcTOZC!M+AO^#XN3Z2ZXr>how&2ICrA0n^q6?E9 zImy0MBpZ~W?O^T&OhS97(PeTLB_0LpUkDOeGlbI4`QOtjzIRJEBnD^tscMyJdFWU~ zrF3rc_gdk$2{%&sV5#tIn4j`atFrYP5?^R?p`pV{iCtJb&pEouxg|4yH4|0!@gqO( zYaGmXaGg?GVCxZWD9Z3G-8;>(V2SfCQ2aFh*m+?P_m+14G1YDbSPB)7GMn~84UFoP zf^v)>gUzFmMc;p`yA2G-X3vmFsyha70Hg5QY&Nb}$E>7o0uWR;ZS4ESp*j%F-;vRD zd#)+dB!FL<+25NL&mnhMir|4jYfx9GyO*%LWA3?EE z{HbmKRpd5Liy|d)#yfu(jeDM6Sg*#4?m0W*9$34-JH_&@P5Pudcdmd+B!7g9ccx2plW_}yv{teY&vJ0Ucvw#} z{F=IguHcIAD(A=GAO)e%?bF|uP)|ggw zrf0=0pQauIbnvsWeKADoCvRS3Zg$fdYd%(1J+8X|P^T$<(+g6NpBpB&dY17C_+FUc zxEuPB{h&d#(W6l}PH!Ei=}Tl;X2XuIlkU<^+mrB~BcOwc0xDFdvI-Qvcfr$i;*20%Fd~DtS2hG$k&MX&Pa; zZMTNc37HB|>P@22AQf#MFcoKTtQvymmJ&ny)W7;Kc7IXP2$YYi&{SM-_q)%R%?NG1 z8txalTgTbc+Uc6285rs4=JqZ!&-*lC#0Bo7Iu#JB`H792vWt$8rmY3oLbBg3)NoL3 ztH5}ZsM+ZEcv0Lo0NYXwLW>wQt_nJ7O}vP&yk5p?du7&`hLvPX^uYg?s?CRDe672^ zu{+5?gjl+qIaZkCUNeWY_$(xZ;p#TCeyQ~Bp|kIy(FU@8&Z!oB1?Gk?_PnEDDz{^D z_&F2u$9@X7ypOzMh}P*-r_t)^ddCzopci(?6DU($ zF$u*=n#)uqvNUm*S?Gf2Vn7%w&=Z;%BP(WuzA-V5ATs72Ug*W&&YHv_)89*}toVL( z-%@hbBP_n4C~l{4DT-y7`wME3c*6uHV=r-=gqJbAdM~2uG6aBHdOHUj>HXB;KV*8K z6V{fz-o~6T)7o*}>Nii80a|F8R%**;a?@XwrsaOeuOWn*cr`@n7k;b55{#+MG)KoOn~MFGlvVe z+(@|^!a9f2uYP9X8^FqoMR%J0qnkT1PhVdbG?8~}$d4ApASqAxfr8c;6$2uT8{gcBa2s7afAg?Uv+dVUYgexZD)?M++3DEBTUBB z1~8c!B8t)vFd<91Xynu9gPXo;ClWpjAD6F%^{<#eb^2>j?S+2Y0IE;F2cfU(3Y4T% zdmS6I+b&?iwuG)?;=y#9`n*aj{MTmQFkm>talmsxf#ng4b-y z8`jPxEVH2If=XrBzI=WQ;nET(V(V|QwG$6*K}|lW4lXn~i<{HqJo|LEHu{{f53(RO zz0%q+^hUAG(w12jS{{ev^qE{;mzjL6NFhFo}{j!50Zd!U)<;TE=H+4kxT0edJh z4$1v{`8>N4y=xsayeN+z|p0LTV2{F^^=^WSrEA&vs&KrPAkeq9H?~R3NfxDR8Fpb4jLnYtfM|86RiZ zM**GWD-Mx^v*JpCR>q;UQwb6zslcppXY)f}CX8O$1*Jhf$;MShd3cPHwd7u${LW;E zK>^wm@sk#kgCEunQ84pVW_`?PNYfu|2h*CHdVi1Nqp;_B#Qz#Smd8%JJNa=xWuEF_+vi{=%RrtYUxkz6Xb6*8pl_fl$o83!SnA3IJ0r z@7FQKyyf>o{I#nf&8!K-CPcIAd2{bpPA@9bg(e3XcZm`7e0O2tsqTM-3U)`Q2#`mu zFnny8&txCDA87lRW!6azIMVb%Rysz7cUb=ABx2 zYcmJ=ogEurqDw{CjrfN$=@`hf_Bbt!Yd{Y~lPP2#YbMR6MK@n*4kBEuk+Z@CD|`4a zNG@F`VrJ2F`RTdz^G@Dox(*w<&y*5ZU_Be9W8Zpf(d6o*)|HIc5>UwBAmLLFGc_gd z`|!(#Dav0qJbSZ=S$OudSqmcqRpUuC)PMQv9(B5kT|Gks!8yW?@8B6OOo^XishPn= k&vBiq5Fz@Yjgadr`yksCK(SbA$2y^H2Y#mF!pMG}s{OcS-v9sr literal 0 HcmV?d00001 diff --git a/MikroMaster/20260527/20260527232002-Config.rsc b/MikroMaster/20260527/20260527232002-Config.rsc new file mode 100644 index 0000000..167d753 --- /dev/null +++ b/MikroMaster/20260527/20260527232002-Config.rsc @@ -0,0 +1,3462 @@ +# 2026-05-27 23:20:02 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2422/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \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\ + \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/661/8d6d2114\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 25.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address=!10.30.30.0/24 new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260527/20260527232002-Diff-Config.rsc b/MikroMaster/history/20260527/20260527232002-Diff-Config.rsc new file mode 100644 index 0000000..6c58c1f --- /dev/null +++ b/MikroMaster/history/20260527/20260527232002-Diff-Config.rsc @@ -0,0 +1,8 @@ +2448,2450c2448,2450 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ +< 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ +< persistent-keepalive=25s public-key=\ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +> endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ +> MikroVados persistent-keepalive=25s public-key=\ -- 2.52.0