From 078dc078d1ca5dfdc1e9cf984228b2dcb0ba9413 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 1 May 2026 01:20:02 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at May 01 01:20:02. --- .../20260501/20260501012001-Binary.backup | Bin 0 -> 371398 bytes MikroNUC/20260501/20260501012001-Config.rsc | 4451 +++++++++++++++++ .../20260501/20260501012001-Diff-Config.rsc | 38 + 3 files changed, 4489 insertions(+) create mode 100644 MikroNUC/20260501/20260501012001-Binary.backup create mode 100644 MikroNUC/20260501/20260501012001-Config.rsc create mode 100644 MikroNUC/history/20260501/20260501012001-Diff-Config.rsc diff --git a/MikroNUC/20260501/20260501012001-Binary.backup b/MikroNUC/20260501/20260501012001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..da2262442c4a289e87184fbaebf122d47c4c84e2 GIT binary patch literal 371398 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ǿXw&1&2 z&p=q)18~}hCF&7aVwtEME&&3@K^~U$mv;!PY%lvECd$Ke@gE@}`edZ3hpSVB;d%;D z%Brc&4t& zt8=)-H}RdPlP^dRyj4yOkt6KBrfJi*?-2U z!<9N%DWBr}vq1=8pG=v?(uF|yw2Y4XHg@yv5uouD1@0hYn)En9R;@q&$hgXDVw)eE zCg5w(AICk%KcV{aDMBoD4`uN&p=<^%7 z9K=K$4=CJ{bKDNqH&3aP#}#pOm|?%iDe+lO3gi%Ts|jJ zzj@|p*r&|R=+o1Y>9;F<)XMoCwHt1-O+G&q{7&@fNtv@86w4g4O&>&q%eyynI&ps} z+p}M{p76W4HpBdxE66&y;7}=|z_Q(E`*HMHq>8(O)*K=whDO7=qaK{PAI(im$!87= zvriOiRp2gs6S2P7Ym{|zeNKWtxsgq}Yznftx3l)|Xl~%XN$R4eSud)l)5}zBuvu}~ zl|-B^f0@Ux4TH4ysPyeHTZE`Moj&nA%#`nY@mV|462k>;_F$KR z*dl}@)NcVM;-NRZYXXreyOrM<7J$)`53S!uKfy1iT=I#8>F>8rM{HWO9RfbP;0eC< z`^Ykg?ha})17kVg=G!~C@i*r896s6>_$QN0Q2U)tZs}!gBhUD32|^T4I18HF{ooJW z6onY*>;ko1>3FUlk7K|$z$2?KH+9Q)T)qELKh#1zCKYcUWe&FvuK%p0Q~>ukv`j9A z4B4MhLk=a-$fJ=pq)s(N0hBZOHvixwO+r$sDvN$vRqFW(*)7NfQDxbrt+>a9$<6)^ zjWN@B(0aA5y79_?@dtFbjUG^+|L#J&1=}}!J{DIaLqx#jJB)h)bCmvG@&$$BbqRy2NbrX z#HiPW`TyCh4g1GcO7egRnOK0~P#SQ0Bq43|diawZtI+9@PhgL<9n$T*odET`dY{)j0GbdVE>AlUqGi%D^(N7J4)i+)>Plu9cUoBls8@7BC$geOjZtrQ%6|xgp->S8 zx|kS+r}xvDvVUrz{^YISW0|tul=Cd3*`EOAwh|u6it%HZiOKHu2|4Jy2oUuJcJG=g zAy=m{pW26(I$w7x+tknKe(a!t_zO03?N+%7jT@qG69kg1h;$S(=fyY4t~xpOoV6+^eHVfTx~qcI^NShSw4>Hbny z;L_qIU@~aZ(j@XsWI9yWDzNfk(B)NH0&Qx!07xp` zh=hAiV5N8GXq0@l5_!oxe|>cC8#Te6Ec)i3I{r?lAMrecf^=I9=pL$A2KgKfSBUVL z^YBH)wx0ScshmT2^+8D^N_)hSiBwDqqJj{dJIO`{&MZfnyk%PF*#M!Iu!S<)Z!qn&Jwf2a}R?%ak3#!LK$3RDg{l= zMly&<`h{ex8Lck_RasrE65YT1uVm%J7Q-FzgH{ei;t$!IlR%|4x z^~{eAI7!u&S^6-zo?++;C(ZVGv`98>vZ}0y?$c{Iin?l1Yo5=9iwaX^y zRWHTj?5VRZ^VyMw;YewZP%1;1rg?KG*>rZ>7QxTt+eU*IogMrsguk@ej#+bXFN(UI zIsxJ=mmjViA%Rf;h0Q9wHX+;MVkp7G;|Aw{(nPGc8nu<$x-i9OcumtNvKy~mewocP6L{Xf*vGswrKrB}%zZ=xrSL@ai?Tdur0uIFK;A<4=sM+V%glnar*t-`Nkh9)=jsSsJj&h)H?XtE8sab}i_e92NBzTM| zX#3ogTH@WpV)q@bnjs9wZ)7Pc_T1ZqhT1QZSKur*??QX)vr#QIXP~c1c2rzlv{iwB zUT@-sveBYPoUn>Y-_|u)$_iXBRJPwh18lji6Si{rERk&d%=t#M+D~E>6OId zJlIp?nXNVI_jjhzP)gJqZpr#_ms zRBF6Rd!$#aWi5px(`*b_i=v4uqEe$#iqWZg9ALc%$kdVH z6xe33*}FD8+Zc3J6jw7^H0{u>x1`;t!qzn$KX78Iv681lI6)DG-;Ue|xI*wsD=)>n z2nhDwTA=bxLZaEB^7}#)(Ch8ZlOb@XTV=Tl^dn(tN9$_Ez(k%T-qvSW40#1gVNGe` zh>8llz}H}?LQv!ZZQwS6_|&L#+1D_fV%t$L8IP~EVzyND%W=7Y*~$9zM3xbe_U*QF zLLO(6sW}D8k$OaFmrXqCay?mV{$_?mr2-DNJZrLZnXy+poCS{(++GGBjTQ?JFiIpb zt&ha6Qci)z)sP1-ofJZ&^-awED-wy2!Lr3Y%@WxD9JILL0cTi==?T9=XwJ+; z<88*0Ch$w)*FElRFL<&ibxzRmXf%u6@Zt3cCwCN3aGF27yPCdsQ&Po7hHEp+_={17 zQ12MvR@!2Ui9f}n{zx+0>Lsqvg13|aI4QYXAVr~VM(<%M%{iD_w~ROLWF89hP=SF$ z1i^+!-_t37>Y3_~-wBHc{}H}=rNd)_&5Bvvoo?yre}D4u{#kO=;#8?8$F_g$dgLhdgoe7sNf-WWkEat z_4Y)VS$}s&{DT>E**GfSyn)Vo9c#I-!FoIi+hwE#+fpi(>H4oAUuBvdx*3-K z*OyOFcAnDJUefj3Rnuven#`7P{E&+vs~&@@Y;F+l)yG|WnUaU83RHl*BAZEtobZ|4 zygwVZ8~)KROv`^7Mw-cZEsg0kP7CqvQkVRWUd$wQtiG-gc&r%B#!lylgH&+LIPcuM z-SO;8C$nU@>}#bRlwR&w#Q3kLexiKki+@6FOD}@K#=v(${c;Y>S3{X&0AZjIl6-!G zirk}U{wJw6fpk2QkG-zp4nIfIZgwr6(9pS~!vO)0zP5w(N>wITLd97zqo8nE)N>Hl z3JAmNah$3#?eZFk8WMiFy2Uu9_{>6FTWa-78%$CNzL3B-1TCQ%+c)lU(h036Ss+VY zM|E-5dK*N)A;8GN88`*b+YJ{0h4?^m1lO+7$0k;Pt(zhIeo&MeM(EN(-Zzl!3K&JD z48mcK(SXosU?w-m_Roh1i}xs$cfmOQ`J~R!u+qxAOi$sXij4#cgPhC4RW+khEs2y4 zQ>wPCbW~EjN(3&8wTbr0xa!#Md%BImBx?pV)_W@isP|{LWr@PLVxWw_bR|0J4y>e} zi@`ET0aaq?^DcyJ4rIXf>_dkW9o&i(f^v~lR4DT+c1oZgdQn0zqb^KvO0U^11393Z z-nFHfA~poHjnl|P%sJ#XQxl{thdMYyOwmuy(YEZe%a$0Gr)A|YITDKmrmy3#C74_m zG}0-Gzhe)SK8*bB2XYPSM_9!_`fC|4oRDnWQ|%N;D0;$0xnq`X_MQ%Tf^pE*PHLc( zTt@Zu1@~Y-_zqW{^f(ZNGjbKXFN(^&f``7yZ81M9MH0{r{w)|-{H49PxIsCgs>Z7E z(mo0>zxc}z#rU+y4Nf<)Wun5SqwwG&Bq6Y&_uMk}&J_4Z=4Wq;pSO61kG@_fhcwaJ z;w%UEkE#v>XKR~gv8TtsD^W~PpN)k~0GlMl0<-meusSckC+f_5*cgmT z403>@tp=f5=I>S6W0Bh-9FoMsqfjCPg4Y*^OPU2UW${g|4iUWSVIJJx37uKhw+J4emA~thvr~h- zum1U<6oFXX@B=F0iwRck&b%6dYG()MiH#ySuv;7(5u!jGUW`Zg63+iX zsuo=4Z}+gL*cX>U$oS`Lf6qtFR;z;FWwQWQj13n^YAbdZN}R$nbTmqLoB*qmdl8xt zBH}0gEB8CF$on>De2;moQbE!Jg2wmi;cKBaj3xJq@-;m46I|7XbVq4GTfJ%^M(eNQ zk8q~ZZERyUbm0@2*|<`fExkYrnit50Ludy5ychNTB$TZKR_IvJR#|(A7KW(a?LAT9 zsxdPPd|=(Xx(gH(A3P>rT-tO_E1Zpr9ENCOvR#Dq)Z^x7R!QdIu>}q7Ms<~Bfon~F z3&@9r?F!W1FA1CpImK4>6sknm{WU@}j8W(GLfOY+s~q^e=p|eXgs;l?Kt@9ySDnsH zPm7R4F#%d~8dvrj1;l_;QSrizlu3g7n~niGq*sn7K5Epnvd+S-XZgmWGz0nMFuM8* z_zTLF>1a*nm+ApS+HO-Du>+1?dN=1`IiTDH*>Hd58T{q*oyLA?1&GO>F6QqhJbq)c zZgTiZ-PUFlV|TtM_W&H08XDe#UR~xzkO*9$zYx8kM$~KM&z;PHO~UN=qQZlOJVXJQ zp?27})Y65^p&$_3dsW$G-|Ou2=40P^DF>d;i{D(fk7FsZx(*WP?L=8k_5L)~G8bdO zsyoKa45=lc=>afcdU(Kk`Dl;Ar)qqHK+KiIB97v;i+_mjkZa{_wK$qm`Tde z1(5Ue^C=2GD5Qe@Rv97s@ypYwzq3!BpR)j4^q#EgbUj|i+=W9ES%Vm0GZ`Vxqt9cf zU#rLM0VQcqgS?SY-i#$gT9^Oc2)9^e8++*ey{>l(FulRmG+h42lt>`GBwL8!Z~H!1 zyiWbqkS*1a6Uem8lAo=|AyhhA9{}LQA$3xK9+5a@px>vB8voF(g*5U|Pp5n@%m((K zao-ivqDH7`WI3=mPh0xyGzjqF{1*JUbgWc71`jW}zzS z{J-{!3tkB<3H4oGa5S83)0o3%RGBc(=M;2`DtCsgS|3Uzh4iAH--Pct8y!2q=x@EP zd^qDNCC}f_987wjygW+LA@-z z1KpIRxEQA^>Ndi7M*)>lZI|7ky#K^mfA-+hKq-ll6`&YigkK4DlRkHoWE>q}0&_$Z zUDNcUV7o6Qb>$EGg*pB^b{FDBtgVdY)~f5P%l1?ye+~2GpP~FJ$?Wu0`&&!R8BILw zpH{~1xcwFV9O|L%4rHvaly`bq70BvK|6o-4krIxM_@|=OJU8oFwHOY} zh!tdnv+Xp;1&fO;od1igMh1xRmmv>>tu4U5Ba}9D8@&tfw?SJ|@D6hI3j;Vm$l1?D z{gIbnw!)>=jX4`9iSueW5G_V*C_V`eM(H$sZg z4x8HnxQ{RhC1ux6+<&4B8q^0Vap`dHxLi7gOz4M&PZpHc!rcgY=ClD9)?Y^=-h|B* z_rJqu!COFb_}pLk3whmJj@S7ncgYbSkFW>H5&FuV=LTB^Ua9KOOdz(v}Q^4B_;500L!1h=MgXk5{+fTm|9+erUKnr7wV{s#o6V$;CMe3 zhUMh^pmgp`*Y8uoYOL1In8h6>Zo3nVw)gV$_iFQnpr(FLD{;74hyJ-+?V5~}n)7f1~EV5=ll!&5-ijygQ9?k$;R9kM7LvL7|8m``nF*bA z;xA52!>4)VwP7+JcbV!r1|)rie7!A$I1}DJ|DAmD9!S?DjRqTk`350G0@k*t)6uX8 z;rH1ugid+d`Jk4&97=&6!(yvv0b(FpZE(PV?)@cN3UQAzs&8gig|qw>5zLt*f{mEB ztshc&rIbiB`NS3bJDDGs!oy#Q4uZa8og)^3>=dT}g0?%w0Az$O}$Y}0?@OgLvPl#mx($fHF-ofiMOgDHIXiql;V zg^o9c_mM_Rv}r?W97L?ZUhAwa=F*>%~+tZkw0CnF3+-yr@Zpszt;N>wboCsme1EuZczn(fS(N`6K)SoNefy zTqIk!>r9FuBySZ1#4}JO`zD8DijNQ?hg`L<%F*0wIG2i57MCLBLZ;O)-{E2*xeie< z^un+sst}JfBSz?`Ih?Kb8c8T*l~wyzOoLRxtU~s}=HsfkQ=1dh;4Nzwolh5D=owFm zM%+iNfexi11B*O|rj>duWZS$G?9{_dD*`iHA$H>-Ce)>N z05rH6JX3vRNS3(?v5vA$ZVNWG#30R_8OL)hXlONs%f=TU9OwDdr|wd>59<$3@EhoV z+@+&wVUU;wf;!|cA`6Q>}B+MSl9NX=d+C2yE^kmylfG!mgldBj`Z9{a!i_NvO#`8k=;SW8o7^O>5l82 zD{ucNkBCFBB5#ImyUuy7e+QTv8N79DPc2oxn4497p(zY^l~}}s&4`MmryhvGIg%Yg zF2DQ_)Lb1>Bmh5gWgRWMT&K&5YFasxnD0Jq>$kkrcfC$T(yd4}gb95p3sDNB5(%3B ztwe9XtXVDeU!L_Xz?-|st!sXKBDi?E_YH>l^WK>|a7Iq5PIc=P+#VD!3mo}Bm7PcU z4gpVfnKJBu$Qe#k(0}tiV}TC;c`gul*i=Rd0iyd(jUbs@iK!pdG z`JZ-LkD@pPm&hF8gsWl)T2@)sdpMfh$F|w*X(G?kRsV@^qi5iEj*kHHfbY=8oFiwR zb>sKnJbAGa>Z(yVkgK}4c5v9Tc*hHqv~gH!=bWtp?Kgp)hGsz9#vAmszgJ-K>*_(k z5cFa>P5XQ+}?za@o# zh=&@8NGB%6sq(-sT(5bRWgh6%N;i4e(D&q%j8*psU29xwP`Y4c{B{#^MHOTN<>RWN zl*_$g8nsGaxU@q24r00@-!PSChla8MvG%&XXPu;C+0!)kqW=6UXBRR5R^w{{*BdGY zBk8k#uKmnHkSL|3tu*F2zbTGDk@h|b%AFQgULeCZF&B})WW4X3;4Q?8S^~9u9rn&6 zsR)Eof!Jlks8O=_YZuEeE}D{M7G}=8I{NIWqGvVYj-f7Jny+omi8%$9NzvUwkMKj^ z6`EWhIw(TB!O8eeZIV0w%8ushr!*0rs;0gGZG=sIpBv=?3*}|U0r=$k1ZC4KU-$Va z9*Ppp@>EdCe0?evqUb$hc;JpKkew&l#e5o{yG~|n=Hj$S%1GOi;3`H-5#CYXZ~Qjj zu?5dmaS^8lXf9qBJsfg<*g&|+?oJYFj$K6U#_f~YYEYF)DJC%_PJ_G4ROIv& zS9b45Wqhc5NB{SR9ljL-3C?7wl!qA&N^4CdiQ}W}gYJJ2a=StxM4l2UV6(ljmj6s$ zmYaAq6>cvTTiRhRl1pCf&%RtgHCQJFl3@j*es4s@NBgC;SZm?TJL+cZ= z7xsK8a=IagB7#MxIVf!7XW-AygzOMP7rVPWn7LYD1lTX8c}Q|m9M4h`b3GECFC`bL zq1WwftM8iP$rc3`vU+u&6$8O06&i?ee#KK&f!eEo9lZGGF-;3$&+re_zZ=WiHE;GBuS?6O~sDsAM&ws~oPIWc0Bj4)((ydGYE?=P} zuNQRM*HIczi&ThJ3{p@qTCrv?NV?paN?!UsG#w~gUlqWoGkQ0a{?)p%J~usY2vX zC>lm`i&qRs5EHG?+HulwX&K&*$gDm}gTxpy%60+Cr9WOx=hz^0t$+IlOEX0bEx|72 z-eDA>$fp+IygegxgoPJnhJq0ni@nU^SUzfYsTu*Xtu3cG&!WGIMfBa)TH;HrzHY%@ zhw9K=BEi zj+9J$9h}S#q)@h(Xdf{nvvSy_-d~oy=3ag znUZoEWEf?XR)NhZ?}9H*w;=!n6`ZP+0B`}wLqw9WijF2|R3#DgNEuCc%K0{^%#oHY z`|X7K!RTmw$PgH1RV`)G8@`Xgi5rZq!vzGzhARkB&IAOywOcr#ybOz#!~c(#Ev{jD zYiJYWdmv+3geRb8(idmGvDW*eFC$>b&OqtHJtbX6s6)eNw(-BzTO}K>!tG;rc31o! zZhbdq=$ofx(4_-KBi25&dxkX#UPqcPGubq9{MKBySN+$2WLu6g+jjD}`0{Ftphcnw ziFcCHQ0S<2p%ZFOo_i&2V?=3hcwxM~wykc|5FDRywx~d!hX0bz|obc6i-hNTcNhRAi^2})X%Gt!H^_!Ic-TX>H zF5|;rpco||FOhwLDe}e%1tq?C$c46}E??%1gmpzdp3KG@^m2QRh^fOw(@ch3$1;_i zmOt=Hw}QR1|A|h;gkJc2?qEj%v{(rwBh>v>;2ei%C_*mHFM`XCOXpkzCcu1PP+mBRGie?^|JH!Bw5 z!S7LF>uTAeh*7BmQNCRWanojl7!@>wnypCiK-)0U76r)%;*T=Sr>;b+It!AaQsWdI zanpEAdCrMt?;b#F@Qqte-ZWMf>`(I}2Mbb(D{nWAFZ`e^<76(oDU;Q)4 zuT1L+lf@2zo&3gOP=fSfN$A33@gK;E&D6M_cUgZm;N2!!=NtIbX7LtvqCxfG`_~<; z@#XyhKZ#4t0&#$pQWTmCXc)=xV!dy7hMYOb#8Djp$-jGkAZIvW`2SZ$l&Jl}iHtVB z*B%eGOz-pTX^v!BGGLsy@lG7>C}BwWeI}q$Sx_qC{VL@`fc#6V@7}EjOd*V3KtD%<4j)@dQ94{WMBeCszv`&3sip7e1GIc!nB8TQr{ZiNDs20`5dco0=<>xen@MQ z?BGu_!dcr)b{l=RkVZry<&QnED!`*AjKLzJE4$pPc-Bd z(vZg~92zV|#kfLAzt}gZnB!niV=lsX-dFv-N>ce+8nb{drEc-U%rJ!)*5&4Tq1+83 zQWu)HE%7b@kwAcrh`i~+9lhWIz6iL9ZI|J5GonYIDn@hdU@67L8;rf#3C`?Mj)ui$KuJ_^Y zZtbld-y$3GsuD7GPp}^6f&rA~(l+PYTPdcXA_R>p8gtwrF?)z{iRPMP0lM=Sj8+y? z6ZsF113U6b$5Qy+-lyA5dQrYkaXqMST~)Cec#F45%7HI7W4>Bxgj5BPxxtIaLmObI z-aeb3;u4@Qt|ci9Kibf(1JZe6PY~(}`oC0zGckS%wUsbkLd%bsR35HQpLyERQn9ik za##gkY%x!gt9F%tYWRwe@rFQe$NW=o z#e%>Na0($mwsxiZK2h)xWIf?Gg{3E=7Z`FCT1 zMy7%XVWIFY_p)Ac9aw>Bj{G*i{$-dOnMkp|u#-!m7!h&Non`gkJ#2O;#>eTHJ$IG; z3A}%X5-I9gfUp^qd>hbLrU7=|e{t1B_$ZZ@-9?2CvH2xv5#eyAwpE@Pfy}KjQ%7_JdAD4$?>26PPm0VL z;Y*@N(`TF#_wCwfa@lv}4rj!@@zEpZX42Ecb68R1KgU1(z$bXfFs;b6y0A0HR)0vJ z+qXxa!J{whi zjKhfJxHqU~jwhFMW3Ccy$i*03;D2|mPHryB_K7wWhACKjKlu~O(B08hiOhfzU7^0` z7h~GS|IK)%9?j8A8V=E%dQLh95#LS)ZDP@D=kvy-9?C9c+OoaOzQ?s|bh50mu4qWL z)n^jaLzZyaKL6*0IAALW)?{pNH-UoSi%~SS@|r9*?p14m3}JNV7L-TlfS|hMaVt^k zb~_>L&38Hd&>wZY**ODa^JJ!LANZ zWa0{XvaCJMe^G2yX*Y#VAa&3M{d_uz1e&@8f0p^EaU|WNra4BhsJ<8R9>Ni)Z!#?J2GEWPEsgXTN;i%Bdd6QKqMYbVnkGuW`;L8Tq!(s#4&Se8f(ps-lA4YQ=Fx-ELodVKS3S(a$*{-VeE7#t3-moD1V+ zLi&Mr-E^XD5TL7(8R+Ma{j^(a!52h#%_|~AdXfiL_#*&ulq%bcd=HdM*YiZ{0?3I% z9M>esI4>OBh1ly322Z&!@wg*=2M0KZVW_%%%W#9mXl0YICb_B8bJi7@pKydf(&jk& zbPzb=NE2&PEuxcK=Ef8jw5z6-QuebD4!hB{Ak)73lH?(F(r9p;&L5_SjC^AXx>eHG z%^euIeM6tTH&Pz#Nl9BHztn-b0b>Y3emCvwUq71<0z|tr16GHR;I=rI%hO06N=-5O zFv-$kF(rGWJTApW6J)qeFI$PO+V%#=%*^Of`JcjoXbih8s?5VW_mJlx230%CR?1-SuzEA+j zcvVVci0*VG+YIO#K$FL2uqap3xKLiyEC%Y`SHuGIo7zXjn#FkepzqsUK$NgukS@#- z^+~i2$7TLL>Jp>}ElENl6tI$<7*V)=-Q2SJKfj@@?_%5jjds!{uG0)kE_w8 zHyRL?(`lngQH;2G8xvbYWV&*xs&9&- z8HziP6{IUSZAKVSh6$(NXiEj*clJ8;wcX(0OHSz5h48E`wSg-rtSN;2+pvlBavfiz zesl=L zZU*n}8zZ@?aDPpfVM0Y1UYr*2ORGYqQT3{y0;aajkt^-y?o0VTzK8IPZF2W3mstPT)OXlFBcDga#9>~LV`e4PZ*#zirIRuJ# z2yWo64Z!K6Bl7#Z_;K3%4QbFuc9l&@)80_0&?%!OifH@+178KdHk-@5eMkBX?LU<* zfpRK^hx3fb{sRE=$C{6p4MwPmP$|ri(DDO!ZL5QQIP2 zfGeX|?doga-4B)sGJwQ#yE2nTNa+6;+jS!D0(v;oFpRuVouz%s}2 zTMb@+n!_D4LCc_$TO|Z9jpRmXybisiqX0lOS>W3esryh>NI`JZP&A+yV zRMzgBwaX-H5~H1MMuo=h0ABZb4Jkm{_x;=8yt&g(GaN;U&`s+HsEyIP_Ql+jB2|{>5^UT-s znOx#IOeIS}ur3#n)~Fo2S`ZG-ODD(n~jBhP9)`C8_%|gha%*) zE*_j+QG{4526y~)ZB_@2JBZGxMSnU{< zIszF*c7<|3qe%@}jYs-+`b)kdwV@9-p&-cpRIiP>LZDN=oT}f-J)>VJ1Z&vB$ebYV zI)gA$pB|(KkWj}aRbsOQ*X@maAze&DI12`PtnzJ-q=~PwRJ=e`UK?(44v-h}3j6r5 z0$Y+O2b|G1mbC714S*1=4T&80n*s+Ej6amle%JKU5ZNk=JlboYKH5?i9kB3l0`QgDLvYHPL030-%6Row~S6jH>v%fLzl5CHAn^08AMq<7t4`pyW2|FuAv548YxYh?LFts=FepFkP<24DhE?Zs#Fy zb*65P24}?g$3P28yN}Q)V=-lw?UZ=mKxovr+Wf=YD zYCK;THlyH*n%18@4+g=enWwAz`AvuVz`Z5u(twzOfK~Dd?@6IXrC-xEctyA@R6?kh z_B$-8%2ABJ(QgpJl@DbzOCn8SN-4UyO;dm6IsegqT1lHWeVMS%PZsKSpB8IwE2$P( znW9gADv2BN0|EN&OWWm%2{9BNdLE)rUtT$iiXZPSLln(`p!#W3wf(vr2;bY= zy=D&2e_ZYs5iaDIW9otGoj?HlFY24VmyW!=6nmTQymxO^*JcH}LV@rX~5xL25Szk?=P-Q+w2GiGS0yGu8@?WsHh8rE- z@6;C>+J5)$_f8vadWbEyDnBV0yX%KjkjIYTSSgAc4a4F9|33i01#={`agDB#uQ;W! zB#7F-)x(2BT0<_Ukce^GmXx4}Gz>!PmumjT=%{P|m1C9E0aMfVaz>sG+G-V6V>~gr zU*IX16ub~JoI|wQ-a#3ctgCQvxyw-SochjPST9&k6jflT(7vw3Nc9w8o~$}4#r}1m zbnIl_s>uK{Yu{?22Q!)i2yQ!g60yx#jD3CrGh+O}-$7ezH}?%Wq8TDjj2qta0O)i} z)^X5afmP4}=N&Fi*Ai1`ksT?T%}E&(5nt&C1(Y$I?0>st3ivV95rH$j=OfdYdk7Q9 zmx~aX9qKO)Y7qaM;tGrmD#MD86(=k%Tyr<3h%IrQ+4DpUbh?&dbD)^{@(e1a9k3cZ zZ{0X7cTdyU$2ml}EKpDASPD1R+EGM+4BB#7g}7K560yq{pSJaQ=}beM1+*W;uYpa< z^A?xIa3=Ejky$yO;$Hjzl=#u(dqBxGn%)>hv3`G6Tk58q>dctyBhl!p`R}>NKzCh> zVumPW>vEC@q|_B&3nOZW=uo?Q~hkMiH9H9oppP8sO1eAYzs-6 zxEL$5LQ)~igy3^G0^6oyg4#f~JbC(XY8W0_Ox~Z(9dPY!ndx6%q8w-_P%1=HpF;qJ zc(X>!-_v}j(MtJ!C;GX>j+PG^X->4O>7W|%t1Vdiw6d%bl0P4A3AI4*a6*|zm&`^c zeeZZ7TlSX0Gb2`R$dBn7(2%b8ndj(nTQKrr%Smdj+lvr&R0OfT*{T~rl$Z}FUN5~f z{{uK!lMJBkb%adjDNW-!uGRwMf2k;8RZyi z6%3l*J$k(2hV}=bF25*88=V0b^S%5_D4?+V^PWsV)3>)a(H`W`15@fiC7q8`frrM* z6_2V*xVOCFxMB%5;Z~MKusd97MsPb%%6r4(@<*Zm^oYZO$W%n_Vqf_aSIo z3%I7YI$TZJ{j&W&RlaeWp%H3wyQ%2R6G3l-|3Sz?2-`RXc8H&t)rEvQ&(ZRvWC;dr zQ#J-T%~wms;MZ^VmfNO^I_&ZO+qO;=e+=~vJWr1shl-uK>jP*9FTQciZrf!ug8B!L zh8k0%GXx?P`$C)|(;>D?$l6|XALZ*k%Hg}#G>qrFNriX8UX{0H5e$v*$k+a04#t#K z1LlIk0^ezpU3w*%4I+S!u)I z`n8gEb(N+)QD`BeNWykDCqXMHh0vB1W&qC;pugrH_3tp*9>m8xP2HQlpptJ9@C6&$ zils_T^b6n2eeHI&z_nIrQ3D~b&rctR<#i~_{bawpDvAu}4)SHl!MRK*qA#U!8$@O` z|2uSMZE!GmwVu(9E#B7?@F(?Yb?ay)m(*5?pSW2Lz(V?JlG&l#)7*}SF22z`oaN~s zyIrPal`6&3w!N=?1P4nw4aLZ%QJYF?5|CxuxU#3MmSe@S(X(K#q2T_@JC~pI_{)O z_G%a$`XkwWd5sLDY0sm5v@{rpx}b9q9Xvv)`9!9InA~Y#(h7^g(EAO1ZC(Gsbcv+x zPLAdh-_IsGPSvVMgE#^d=7ZGI?GSNnwx+pp{19C_IWLsV)5^y2ZLDe*eex|!AgbbQ zed(;N_s4hw;G-$VxRU(M*@V4@rCz*^-t}ky#5+3 zz#>tcKg09@5JttMy-*1|vTOR=)~GSroM?-_5II}N?J@KOV+aWBTK_K!f$vm-HO2b6 zbExhN4p{R%#-$-NwFi0ZKy=!$R4j^>trg=Uq~K-dQu}71xutWZGlx*FKqAi?$8Kjh zQ?5kbmChwojIdFN0|~CmWR}!SnOzxfG<5cA@W8IHG3Ln>7-&FyooEN^6_)?RdI*8V4p;v=Lvi&rV_+MN%oyk2m_?Raiq{|MV);t z&uG+&Qkjf(UpL=UH94*;of^N>h|0Z2t*f8Wp@l(xLp?c^VP+h*9v#!NrnOf)e zPMOw|Av^S_lbhx(4F*rNhks`J4@Ii6R)`^x_`ljZe{9Jw1Ldw<(m7*I(BEm}J0i@sKL!JzKc%lw8=JS!tei^B>u%WH3@`UxQ zl}nV)n~x&BFd@qw;CNjIcG{6NMMaW7QGriV^A0gk#J_EfM7u5GL?FsNmste)nz}Gc zSx7)4KhwghYipk!Cl~hMr19Y-afhg3+)8q~B<2~Ls`x#%MuzYCq}GB80(cmb4|)G) zDtQ(HvN}xbOe~_?O`R=;e9{P*##2~gtkiJDpjBUsKjp;^aUKu|eVlLUZ2&eAa#j~8 z!2tE77@K=HTe2w`dW~z@sB5QA<^+WJSP{Sm6wo-%g-2-Lglx4M!EK1we_AW5U8`&t zXv$Zo`ge9NMMU~0)F0RaIP=0j_IPG#GmDW4sPU1k9*hr!Uzb0xf^2$LiC{D+K?luD z+BWu3e|H8YK=>6jWW>R#Nu}Ch5GdqV*Bg2pvOVcFzCKz9x+xBvM}{q#K${yA6_NK` zz_VtTP@C~*C~q(Sj*c(-ZfNtI@Wjz$5buRKD|SndgyU4?&F$l7QsV}5RE({vRA;|$ z?Zu?7r&qw7bulD2!EHk|y9^$}vQ4^uG=b9aIXcGiPoj?1P4Muez&U-=fu!JynkJu) zk9H47Hf|=?m6kJciv99$SnH%%*~h_-(+NYXs^{qN+49@g${GH2Qv)gS6;VeD^MecJ zQ-GatyJz4P@fWzktvW!r%PM(I?rtGrqV0{YZjd6OtajZVaqQ+PVpi}&~klF6Uo)xlXrfRg7j~yvMzq=Cr}zx=te=fM#L%x z84s{4|EYL|(xjt{+$OYZOw$@hwg0y7CaqIj;`pgX^F!9s=6aTf#EN+PT3OSEG<943 z!YcKmEs!A%YaKUb@DR0Oa+kvO?g*ZB-iEy}q!wn{AgNp#h2dvDnDf!tt1+6_g)#>lHn5qblpPU(?%mjx;0Oa0kFod>R;3eLciDC6nq znRc`-PQDbcklpUW!w6$}*=zU^>1+4ah`fEhjO9kPgXbWJT64(Cg2=b>qg8u{5cV!^ z9UO?Kn=v2G`-x)ML4+^`ON-A~q#&kFSzL9c>z+qZqSuO${^ZZn*J^owT%1t0)VcRH znMnRNp5{)VuXSRECKWbpB0bEaB2bAslSL;3dwW5uv=()2b-aI}4Rz1{lNu6N)hRbY zTjvgWc*O4R>X}m$=WeA&032ju7pQ?1h}6fwJr+J`>hRtT!3x~{+`2Ndhyja26cS)# z;n!*Ks?q{i}^sE z6+47CUCQz;&&%LM=+6xp>nuSWTI({Ye&!Y@77|D;wQ9&ny{0M_S)>D zcMG;A_PGGiG5JbP>tRaFN&6syz5?sUja9Csd0Y+V8viQd>vRGtD6ZbG`7P(izj)$p zgmME*<+KF%nXv$EucV`QuhrgZnKcQ_r}IZC5{F!eAk90^ALeSV087Wd5Fr}q`vp

Cr~SPIcHH_Uu-S!M9Ze`wQnWJ7wLz&ZWB)7;xXu7a5{>g}as z#G1yIxB%6m`AwkIC@i6a_wJDD3U`FgZplXqLGVX^s}qA!uYAgBFcs00$1?!0TKa&0 z#EnqwomIY#7Y1ot2d*J-!B;+0<6jycGOMe?AlL%7 z*?uM$(W_k?t*E)7nspdpw{bqkAE#`NdBp`b66ImP8(!uby554goi#I8$$~v*rE7P) zs79_OkRSe8s?LkYscxlRN|SRjp#>w%;9=_9Yw1T_5CBA?)E({Q~SKJwAawq@0ckGPo`zv->YP^C(I>eF z;7oeeXy|({qxqr|9#ukV5(JN!vTfMsal#vB^x6LiP9opdKnyxz_y&l6_^%?45GMoL zo?`Odn_2;r4u4%oOCBcT7JYIA8^RiXLL3diANC9M^=p4i6s;D3QK8=nNGO=EU<+2m zcivuiERHb1eSC~!c1P#X-0BRo?Un8%0%{q#9BZ3qgHWEzTxoK4^KCRSIsJXexnfq8 zw-Pv3r&Dir1bu^mJ*ws!+=#Ec9mG9OQxn$llm{X%81?kA8`K zphC>0UFc*PcRoxuo~GVnH2+iQS?sZ+QLj{@nSY*9Z~qFu-PV}RY_&3(SG^=g5-6MQyvn`bi}B* ze!!C{Rq`aO*A<`=!k~ZG$jHR*DDcq~uV8G7f-I)r!)gR!hB0XbCONW0I8lZrk#-%X zotlAZ;&Ow9q*??~J6i_ZE^;+lDoCGTaoobjDEuCS1Mp4~pVjZNtnJSSP_Qz-@gcJ- zdm<}4D>Cq(v2$F+6YIncCOW3sdFaSx2>??~o%w0=RVShyD@-75_1E~7vBti(MESm4 zRe<%;0&@CWgUgg|>cef7U^zJC9q}+viR4pF`V$x}fa3sZ&`I$$a4`ely!WeoFVvbX z>EL&aX4{lP>0d&sfDe0Z!G=-ja~Ip9K&{NnuCOb}6u6f!-?N;gVWBisRsgJ6wQ{~l z9;Zl@H7jUrnHLY@Q1nc}tYyq^9_nY?c^`cPPbYsC#kmXf6UWm$VM5aA>(a8{?GLW# zs@I0d;QTGp&n;C-VDMl$(Jc>TW7wivEB;M?E2BWFgp_uVo4a3ZuY3 zk?Nv|8-OBv0`)+eW0_@7N7n(hxcK579GktU+HwPd`V2U6%R(%Lujb9BiG!LzuUhfF zNLm8En(a_hhKWLbf05U>CQ#wgZxZ)^#SVFQa|GES?xX^`R?eI^4%x%lS2|XytYJu% zK5(DwXz$z^H6HMH3(Pg~J6du^;!988IKTyOnG6f;dpwTN(q`LU3>D~hs_>KO33l~O ze+KE%586ytZ}%CGZ^+u0#RmVf6g=*TiRMZ6@D2{G-A8#u_+JOCewo3GmpO!W(Cb#G z=Jc63WG8fykK}MTW4P_t#VsAHXKo z96iu*_mx9SmBkCf&-2>S@5K0Nle#=2p;B-FGbBdth8pbScmDH78&$iEj5HUMQ+&Z5 zoao!0*2e28<3c3J(Em3_I4o(W0envC^$;)s2++@jTX#UUmC^M}VQ=JgHPf>%Gyc){ zN66xTj{%&-2n%I1?fm-BC@bg{TO?6$YyZ<)s<@kg-{TdV2ko-7O1weI`K-pkl0p!+~1T?>HXAX!+^x4SI zAPziOG^+SM^CP{U6xS8eI`Zu2Xsg7|)iH2kR5PY_Bh7}3^yq|LC8MgQ`fTi&PEcobjx@D&yQOsOb0@*FP(zIP21K z&s*mMJF~txXX>-|9wCI#nnUDC*M@D+UJ@_BPj*y;hwsB(QHtFC$V{o>;Nw9=Q)mjm|flKR|U~G zJ&+yh-^GO^jm|1?vi#TdIOiAFyoiZU9Jyr(d1Yp79;55z$;|Zk#1-?gYmUsj{)U0ihe=W8s7% zHb05+>!*=hs?!DT#-Z~W65yq#ZY=cGuO6C3!(6B@s`VwtCz2MoMeR6|Dd8YfjG)n$ z<9c;80R(ON4QH2$MQk+#oT0a*b&$wh)-K1YvVG`TTjC_Ap|u$`q+?0oUnSa~xRK#D zQFnD$>mVzrF=8>pjUUj2q4$z(E`IlY3$H1*G3Xc_MGU4EAjrrD?I!N~Xn?I#B_>DU zg98pOt_5`5@J9x8=ZgY=P$SNylWPOPFxSl?7C!V1t<1a0WBbVD_8mWxOBz<}^pvJ# zNkupH=^?u3_EZh6a3WvPz?;JR^Gap)bq!eJK*H;hSSS@Lb(9kVcL>zE2%trAHjXC& z+&6$T+40yoF9P(E8Y%|!x`Nj`74GIxBY%H6ATVyU_V_lpn0_;*Jpl)AMRjYz&$1`3RwkV$NxdD)UnIgYV{banRt6&n0~@o{-syV7&9rzm`T`XY zm7WFoxA?5+q0VVn2xw%CLs8(lajm8)+Z2)7U)+(0J@Ce8RG9d2T43s`m)Eu1ak+Fv z_Ayf!NqwY>2xr;h2F%Svq{aG8glm5dqy41M`WR9yc+T?+RFLB)%zDej?ZlT4;~Tz!)0&J{42%5RqmV0qDBss z@)>|sPe?910om2QrUm6os2YRe0=t^B(O(KFT?rp{+t;V(6F( z-=27Zj=!ZFV#3Wzo(^GDzFdPA-nme+XsMGig&!ff3$+OoKv0$k3p$s0gSk?WkvN%D zG7#zcTZ8=0yV&srrmbab>%*_K{{#X(n%E6Jm7R1}WU&j3GKM4!l=@RGPd4TmfGhJh zv?6r)F0gesDKji9X-HDx#Lr@~!4A!gl{NNXH33Pnze=ayQQA?7HvSaBQ031OXYxNF z*Vl?79|eE%T#yaIC&=f?SOdb*C#6ObB*wZyW1*7ShYsAKtvs$xm~hbvp^HZ^BP+3C za9O2(!>80d)PB8TJ!ayySe#XJvWUtD{1El&Y9fLuP>=(edc!pYUD@Wvr zLdf7VeTrZFODuuW7oc(F_0{Z=tsM^!F6~;IKB~!RD?kQ=K`h;8RaiHq@46dV7HF}5 zL9;DK7KNO^8o6Il;U>@AN~XT&QxJmTbWBOHFTk!AIeA7c($1_ey@}CDz+eI&QujD5 zi_WclXoIStW(<3Ma~34h<}vXW$kd3h(YEP_C}mK`*Gu=>RI9L6E(I&3a{Fx1N_Wl}=a6@iVXpMyDgm_d0e(4XRgDUn3Vvs*Za zDz%T43$NNX4>*pQ6Buw2Aw77J7!R~5HAu4PL=?YQUJG>sEOR|7p|RpE|Cg4ZQfyU! zLEDLrGD9Bceisb_KATBo*FL`YP&do({n3vy$t-AWa*f+)m(UKxJOEUS*N(V2BUuCh zmx5;*qvU&wKP{rk7hi^lU|0me9>g7gLi~YbcE?bO`=>U8EXA=NjB+3XQHqVakZ*XV zbWf0_mazDDBGRZ3PVm|0azF&7ZX@~6i^198))mT#{dZnqP{F;o5TfwM>WS~*7)^el zo}Ah?%d@;?e76$wW=6+q$O#=?MV3KslHu;L+DL?YCiR4{-8U9k$1XyTC62)7t&duH zS3?-HLEWAtr(33q8+BpSqB5Ov9rerJUM;_Sz=BgSZ64;fCi-jX zf(sRh&O-yNRof=+Zf+__$R!K_N0UN?0w+~AvZ*LwI2A1=w7gCS0t7fib;!$tBJJW; zx{j6dvV#N;e{R9LV>y+g(3=PYcI?6AGWDU;hjLTY#jaI)NY*R1vwDtz8s`uhmgt&I z*&KZQ;6sIVQthyDM#ZbKo9Ig}{xy|3dbS_m$;j~OmkP?XVNq>igAWKs4w>B3HjU&A z&IDc0ZIz53T?0VrcVIU(G*dGWsH7t19YJL!+gy6PVavIf#13g7sBNyFzZ&(2Vwggs z&nCsIi|qn0B)s4S&A|ZMcK8lRSsj&5jr#a=CFWv45iOss8oT+4#eExI7Z`gK6X3IR z?dtf=g6)yA+{nK?g~(1>6MKH7gCm_W<gM7a!kgJ z-|xVFA$=+~D9PbVtcTpzh3oeosF!e+21F57^tvePgv_y`@o4x$OyWE+p+dv@{Ngjz zs5x3l2@eq11jZh$!AHq2J-KL6GilGKmS)0t^Gr~?F$56v9n7usl2|SSakPZ?aIuh( zSJE7|UW@6Ttv&-rkV&7yuDM~=pe1%z-ge%YD}}$n2c>p`~d)M<00Q73gCYxrOVRZez!OG65N_M zo&I7*G@Zli+Vp2pq8+)5UR5DcuVkD@(PrY7L8#FC#~0$wQ9!$!Z@?s|%@@zKL7V3S zDf?mkYyjf=5EAQ0SS7ah#uPy|RFJrs*1e{siJxVkZLn4K*BY z&JF=pUQ{skyszcS-83ejmDvisk5_(o$#G9>?qCoyx(Ue~)V;+N=A}tcrbaLm8@0W; zyu&A|igTXZ7A{!yd!IlW(-l>1ql!StO`8jn%!0QGwldloYth4@XaR7wC(@!*{U z6*_ep3BRF9a+2-z{$m?E=>|_*J_zdNm2GU3UB&sAXO3};&UBW+F{A{H3B{MOuQcnsAUq^Dc(-iyjw}UJ4#w z$Fhci%i}c|pbPy#aM&~-abxEVKi+Nn%Uy3&GK>XS=n*P6E?Y9GzL{y44Ki1S9`nMQ z+{hYAS7ibiE(6BtPt2TguCLc9dno8>v-4`KWXE20`e5O~36XNVV4gb%IE$^Qns4vNG!QzzNZ`b*syFO)T_<8Bv5YY{j=GlW?AqOb zlj`FCn=VrjeVHJ*|D8Z(#?~E9lF428nC1H(qEei$iLT(^@+psfat%vGa(=>&1R1({ z&E+?afpx{tyArRlXb}Eq5@#vY&~#yDe#06?<)64saYL6hyrW^_c$+cK`2WoegQA zIs@hGM8_pI@Kz8qgvmYPVt(p3*{lQ%DoDC5^1p}XbOhrOmy;D=&9Yz0s9;|1I87iB zgliXs=(H`&+j`AtZdZbEgd z8kNr44$LZS?u06!-`ovDT?_l7Munms{_N-AWL1;&aayj<$*nnu!*kU7cGO}%C^Kt5g77>ujhiczp~DEN2@aO>cEftBZ~Y(Hgx#2a)|kpxar>O|V2GR)ic>!|UG zC#AUUVKu>7)ZSJAJKUp4P>3&}j#~6?8`Xt5h(~FlzPyVbAmfvrSEPZAP!iI&peK}^{z{)IZ#l22x zi?6a_Do!p)NLWRJ#r~cwks#S8o~O~mmk*HWbJhp$^mMEiLML(#9iKq=hyu``u943< z^t=)uwB4xu|J+a=tzU}T48Tc@O9Sme3NBp**bY)c>4`2T)D5&GwwJH8K>lc}_ctZU zzPPV}IY5E8Q_=M}oH93yCaoFI&^Rm^ysb6R!8^Qyeyj~}Iz$-wxROIn80$!O`C4Z2 z{df~|fLFaCUp4e-EtEd0Ok4@bGxpEzNM}s>LF^gtxGkr}M*HsVG!gKL28t@w(34e7 zeLr4ol{Ajj4F?ln>IRL3GDB;$zsLO@x^Eq8-{$>DFWh-fm6+s;kd7SBrd!*nkpOWL^>S zJO=%G7zi}=jx_J=;Q`sfIGQuoPlita%wk*n-539`Bl~A8c8goe>My<+tMV20i#3*3Q4znpx|3db#cUw0M^$m5c$PW>n&xk<)WvGbn%{Z z2izp!FPpYKBst`3hvPY#dB4QL1+8N6j1ROY<8jT(O8b|uk3B`YcU&*PZE5a#eFbwVq`^0&b|(lKznEbRs`c>%grkt{pUzt z7Fg>upLGWBcw@`;3r8{a3JNJ3RG%>3ua7PK0~koBXwbi1b}4`dcL1HsOH5&ey&+#zir40^+x`8 zX~m88*7N8{p@`_nJAW{ARl^_5E=tnQIdj}9UBpdQm94g5m)MVirHA)ZC89~bDp<&@ z?y`s-BX9B&sfYlYs#<(Na|~~=pON<8Dk9I1jg6e!wMOYr#NF>PX2N(`CO60);MOG9 z>n+4j$}MC7nqXG~M|tnjy%)Q#_+!JYfI(8mLZ0;<<|bhgq;8#}L~O>T(tEd$uWSL) zC2~e?p5b%ETGF6FTPPNZ5koZ`Cky1d0QwRcey;&3fth<20zuNZe+s!d1w@hFdA^v@ zJmNN7dAmyfYu#;2(L|bj?#rJv_g-A=^`d#U5&{U%M{u6|)o2J%3r#@;kz?Da!laC-RaiQjb8nKR zeI_g~`Wkt7gOGqK*p|{2q}tW_tIC(o;+6=d1GR)pVk0ZkAZ&&t%kHm=>gD{F9o zV#<<#m0+jp%HXS_@3TP?KwdD?5l;ZLjf{b@OztLw8i>oHEjmUSwp$Ef>`f8(DQd)B z-dtwzsJHmTHymM~)XTr@lQKgb5%uFHPWAjY$CO_y|Np zB$py_`QNSK%|aYpPxKu(MFucySIzG{#^j}T4Ww6z88|oFJr|8uRY@k3=Y0e{W$P`R z%_kXe$*JN6wl0)saH_aKDXrr8S_>Y%#p_z1Bwf1>^zR)>l~F|OsIj#%`EGmV1(06l z1dt(K6H&xkJ$y^Q^$)~-Feg=6}ev7dW^M1$BSVnOwxRf^gF*3IXPdrU) zW&v#c+jbPFNK35o3K+^_MWZz1AQ$Ri2WJeV3hFeD;~yWIisz}}n=MVG%f<}kr3Tw} z;A2~Fh(6z>fPGYYVh5+Xbp}P)>XGt3>d-_gHHs+7f^vaJJFNug+dX@NWLF0Z9$j2h zm{5zy1S_GNB#zMuPV>g*AW)e9qk{JIn)CS~{Ob{olIp$xE8Bo;f6`pH0#b*r++tUwQV__9RcPyNqicx#dm;hJ17@fee`_@*>=8cz&L0?R8bT(aZ zNU$!Uwq$$}8FKguT$wB7|u!x0N4UI1O^Qvq8A0YDJSu#LW{DKki?9`?q^sGyD8|s zR}iO=nC)B~;qC=not%HB;0|(OCIgJag+}l=Ii!=J(4Q0t9xhEw&oLS7;1cC8c>NXh zh1@fYYUC*L_Mjd8jsH3*9wo1?yX~j%Xk*G+i{Uo~CRrtC+mI~8T6`=bE=3&(Y7p}z|9?-RKkv93 z^bL?+FOuhjRs3Ota;$*))ST31-}-f%5Y*2HC1H_F)TgbyVtJi%&Rj`S5Y(3dv)X-ZS)QFDCs*}}Lr&tBE;A}*i~UkQGYZ8N-wHA(w>`P4N9H1v zv8^LhGUPx8!m>ZT3+L?A1zaR&ihnk8p5As;t>1|3@QYZ!MAQ1C*{s%RwV1nd2#7WH zLCRB#uabkBE1VW5iQ6#5a*Irg5Or!NGQeKE9E36ttN)4UMc=H`0k*$hS4MYL?eMylZs-i-bytk@EN{Cn?!FWneU+^oK)+UH zF*QUdissHP>ItD`x&lsMy#}@Z*ZQ=qO2@SZE9BM`=HirXgge_H%1<0qhKY;N0@U75 zUnO4pdK$V&r^*L^^#Svg2<7nGzoSacWj4Fg-? zwOp0*@ytrx>1BCs;TQ<1h`RI@8P5ldD82itF15KiXC35cj$Pdv7*h)AdhX%4W*0Ii zc~BnAVy@7LMagd{S>e1YB>Z6ZRDZZ(JPAqytTd$&gE0lA6uzUYOlb!JzGusdU$SaV z+(54ga8jj!F^4N=&kNB>ozKev12)=P@?giTVP4WuJK5PWuYF5p#r8JfFA)3PQb5@r zH($%xz@=F~Z_m?JyMigN>3HJXMwRI2a{$4=i`Qoj%Q87-AZdF_D;Od^K?vgX$eW85 zUfMe8gyg+%SftBzvhxJnfQs$WYMLa{Feg~&WsCrop;rp~mlX|XMN*^xyWQESgiESn z5adEBfMp$okLn7mAp0vsVm7r1?VVx1F)+tW{1IH07Sw^VO{Oub;g1DXOV-Oc*lNp^ zKcpf;mL7j|tJ?du6!2MExkCFoqjSfW_h{~jEs|Ys5_v4|$GAgs8S{;sx$WPpg>=_%HrNP;2ee9h%^eJ)Bj+5Zm~Sj;2puA{ z7057uC1WRX4F^!GRL>7nl8cV)cen`mDSEy-kuA=$!SQ}JC)BDTwnY!$N8>u^yF;uDnI z%1hw7oDx|O zVrf1sA3FE(ce5&;_5XF*^!xye{L+&6M{ITdpjFEeNUqk_76!U^Uvzgu1 zbq_;~h1Oi{(gXc|MgH|ZD6*xb=745~qay!}PpKKsvzp_B?M16uET^IyCuRwJCV8kL z4aOI{YJ>UNlxuueF@n;^NK#01%KS&Y)df51hd=CMo-{d9y2sf z8oi2f!0K*g-J169sn0|=JRc;I40l@@@q9CWWq}ZV26`yHd5T3H0YpVDE0MaEdw}%Q zI1+gGuId8xhC-8gUHP)i^n#E`yTu^dtt^JY^Q-bGZ9CCNlL{QHlWT?*& zMJf@U=?cu)7+h_Oz`e|gdPwT{56Im)ToZbfn9JNkVQOhSyVLDe+M_R`ygl1pj6PKk zKN;w>&~G`U2^LIsveWTpwfu!qUGRnX&pa=qou@nblK;PvE1{Oe^HK@s`s^v)iWVt+ zQlU|r7`PN!B6zZkna5?lzFB6rouct72Tw3ON`v>>WnX9(EPNP!C8=q-FpX1B-!Wz+ z4WEFD%RkoHxn1r3dw|Q|l&`tZztlrr2|{}762g^bc>fdvGaZ+-OW0xylG0ak<27+J ziR?prVrR_a-jp)@nQs;UG6CbHwxEe+?hy{4J^E97q=^@Yby8Gz(M=+2Dn<6Dg4mQ} zJV-9xyn~+QbFydWyJ-yu4(?nDhv1R~_fiUAmB_*OKtAAdK^5g<3}Fv7jbL~Nk zm7CK!th`-f9h$Y@xQw|0_37=oG+`(pif$doAVw%iA4gyj@V@&93+b3xuV=bKFUD>9 zMRcXH#)H-28=c z9xr;pIdN71fdiAZC8q@ePgiMS;T!Sf`G7= z(mz*U{=CO>ZYpozW}DkA6C(d2|8iFy@tmyHkpxY{L*)9A5?7DVYp6#o=wg4q1pt}2 zPbdp?U(3PgK+?O$!S&=-x&y02$)=w9S;5sGz6PLNKc2B)ltXQ`u!pmh8K&-rX&7uX zv*~yVGi`J(e3-guXGeI!Zd&Hx!W^dhv($gO<+VlYqu&$gGFAkhEB;mFCm#-A80JwysKo} zDuR{w;FoDCQyrubj;-3u^BkirxG`FmPfAxX7JtAOP3weHh^}uq@f|@5Egl-(z z_iVoj8Z9wNKXHfnu2b+_PX=#|2*;lagP!TqVkxrl4&j^I5NFvX%<8TRrS$89F{Bxy zbPj{SAp{Ye_6lCo7N5;@3s;mWQ#%#hr>B_5&dBW@py^UXcP*RRCW_J7AQB?rYEBHJ z`=#5ofAo_S`MvVGY^8)1o{>K+6wS)o2Ib-@mD(bxOz0(m-5f?Ql;bqhBPlmAINvDr z*$nronona&=Qm;Zx#~Ue5DYF;5q|xy`gGP2UQhRQmWmn1B)6_he=z#mTQgsuL0D2xC?ikNuQV|_}^ z)Ojz%JR{wq2`o6~e0G~kl61ZR?pYC|x^OMQIN!^gg~4A`ppuMmEgSf8L*}(ER$@%T z0}olyy3*@{-dLeze7!d+{Ydf=pO%(gDYus#i$!Frc9j2F zLk`XuL4bs=p$3Jx6lQf<;rh3O8FYh-E|q_SzzBCeNhWv`5~4M zV((5GNwqwp#nHklkD4ATb4YM|UD&Jr!c#8{r0HjnAMz2(lHga@Kck&fdwDOcLRBne ze?%G0wM2!2bpw1)@45j|8H!)L{Z>(>)}L7w%iCq2twD7u! z-T^+5UGsjiYwDU$9Oi#T)GS|_LunGJGRiE3{-Xc_$%#kTgjRSX4UT%{%`Dv| zZI^R0Tf_lcFi~N2pDPN3q;zMTC~s|&ncozhzo4IiVveamJHp!VKWSMneTOP@2G=pD z>Q;OltZjQWZ83U7_+W z$4uGN#3W^LUq7Me_z>L^B=W6hO6vRtbNT{^%ES(=smn&S*aWB0u;_kEl)FoOsP#$ zlO6%%e0s}F#Pccm^R-TcJeNSH+u)FMNrZdJ;WW_*3!6|jR?5y3CVs0ty9)l=ff9u< zaT!=GP~)o69&K+4)fMF?2b?(ljvKM|V7Vl0*l17jPygg8;No_Da(hC2!O<&yNwKS4 zU(GX8tHTS$_^rUUp?j!_AsarF}-FO{I|7Jfk1UmsZD$ z>8R?2LClh#nOLbtGU{RdlwF-z>_BN^i+LPEnO$O%>FH;;Si>Zry*{pA2|2Eeb;dl8 zzM2u4{GA2X#s8uyBg9D0%Qg7!mzm^l3$PArX@yf?YgV_zU0rhoqG!vZ8FnX=ENr}& zx&#ir;9l%0mcoK!G7zg9*&OIMVW!{n;b6@N`+bkNtC7D_)72yJqrs#Yip3U4QJ4{A*6bUOadv|W?SjYK zQRv;J&Nb8(3Zr$kUP^5AXmvm z*bc~=A|73K+`JEHb#FOlW{lOz%vvrpYU9%7SRq|SQLcM6bxOb_m*^I#iD+JMgX%QP z?3Ff`=CUXdyTmJr=nd~vPZ_M6rHJ6K82~Og?K|QW2?@x_gIStq5z#f<0m}5N9gq~U zIqoGJ6Ar#-EnA9vI7)kjLtL{9qX4l%ndoZL^z*{b4fkWkBv@9p8uV;a+{bwZ1aTOe z8%#d1aC#JevcX{rO@OIz?-=SEZE-k;IwmMi_a2F|zy3%%_!oVJ&sC5OjIbd}i31pm z*7BEvQ^>&rQ#?CC-_Ro~e4Rx*!fufCDjGh4+zBLUmt2lE@D`s0Bv4zLchrpfW-r*{ zl?mmhCll}&$BwC5TPdT8InCDOjWE;92D8lNVn`@nzZgnt@-f$mrdE!K{AgbA2CipK zaSJ1FS%^!T>KA!WNcU54=1#cN!ns(TrJG>rtllejMm8ozf?Nrzx=Yb3nGRz z9})#IK&`(PjIZeC{W6KRF>;8seGq6Ohkb?j13VL4*&R}iC3kPr{8YYdF-=JnFpxUod*X-^fRNh z$LG+WB_LVh#Nv}JzFL1Lrb!#3>fWp%_&d53R5<^hO45Rchj``!LF_WoS52ktY6$D6 z|5SvK6k{<5p}FW(NIs#2Jk987*C-tu{6nA@mcpMk3!R;xatf_9_nWxZTywoYH3MbG z3op*zoseQMcvH~egZ<$0hL-vVOuB>0>vVFhtD{H&+)Jmuu;h4kb%!Kh!8A<_0x=e@ zIs0X3#?m)oeI_26NkpB@L3KRl0CK`kxY7Jd=&>@x)8hZS-oCmm>WEfQ)w}7{#(7w? z3tU`C|clB_-yzV4W<4n4Je+unRqHM;H(VjN1VNJQ@nb zlY2RDc#uoUrhZkKJ8%y`!O{H%$I<3!;_Z>>^_5pAH;YZ*}J1Ppv z>JVX-!~k8Uqg{xL0sNhHnbMU2XN!=jThZEFIjtf=W8r6i&&piCz>{yMZeuHEQ?P^V zpWj#EX2G~qp@qh@=MzwhF};gezZ*>n>``~w3!7=a--}KMNf+Ir*6XIj-&+fJ=I{)Po^+X~p^O&k2Nsw?{QhJZaTfM7u!B z0zm4uw5`wJ8V3Z|+^nUI)TYoKc~EAA#u~XOn1@cY4CQ~LsdS_w@|->KA_ZEhE8GM; zjlz<(Dfnr87yMa6gnZRK@tBI8NUqja+#Z!HW26qMg0?7n^DD4eRRatsfdRLR_q z%;});M9a9!1sSUi8g1gtm5x0|CKvoao@@>(4$p+WSREskDI@`}OiC5#^1*LW$sw$D z55qeZDOEaB*-#-K_6zz;QS_JXYc2Ft(2KW>%sN+ewTvC)$t|;)%oVrY{CEJ42oLf5 z3ZHFsq=>|rdD2ZDmMPfYkmUL}MH2PK!>Tlsy$Q;J*b>i+X~cT!6T>78&D%g4;TKS= zTq+co6!<3E>$qlY^Wgu^mm}*lJ~PFq2T0leG|@usl$=03K^QAEY1o9hSPb-DP@(k- z-R6*dY)3FasS{6DPjgEKy}#hXa}UBV#?x=Cn!usp>Qc7iO=avLN!$dec$}yDgV*0? z#QH=z(zZqEL6%>%EF*-lW`5K{Wv;aPFQ|eD)n6PaY(~Y{LWJ9c(B|b!`!cK%={&g) zy7^=yf(J6BTL3@U;DA;<;?aBf^d%#6C#|#cr%6^;Hd>-!%mUp_r&t zl0XmPFIqL(_j754YcmU~wegzlc4_I&QOa*uvfo9=tM1Q&EwIT$M*5?5;Uy0BkNT-1 z00n%H(I+oKK824k{9L@FP;lQy4zFo1E)Vn(bA{Jq4^S^C+5WA|ZMs5-=H7PviwnYb z3iI!Wa7%~RT)p6~Q^@ve5nLT6!>xthF6^#@ld~TtO97S#5ff!>nHDGrZk~y=rK1tTNzs?Hmw@R7MYT65(*H`<18v z7dKz~0Q<*k*&nV^HNkKNO|>gUWj2Lg_)9=`_iZ9ue`kFDG7b|g~)z$l%kyWby!ql$z~>X#r2lUcka83xLNe9G<#>qDi@N+Ung?XMrwpXaN_iu0mQ**a3P5? zp$>wWHuGCd-8Yzv>E1oV(1^)q0sY^w{N|aByU|DCbQ?IhXFIPgpkOSuU=?eY2eB-Y zwu@5e=?C{1cFkB)iapSR+IskVqif!8dM!?O8l9q5_bxbko$?fBR)>&1=`QJKs!6Q1 zQyllbkHwm#=L?tgB>eF?kM&ib0|(mHrV$&oNe1U0mXf5G8Z6L5AE@5)ml#-oKGf|g zUR0)}6iOkNZPn*`m!mqhJVn;lQgx9y6`y#dNoV+Q} zN5#DJxq16A0}%1sP|Qg1aGwW-63m`jyE*b}Y{@S#!3_{Vh20dXmK73VQ##?D8QU%? zJ7TSxJ*?}cYgYVl0yN0UD8pF)7-7n)A{R}%nC_g)_+x+utf0JJz<3w;F&Qbj7688L ze*4m?$;Un1zQi%GmD`X$mH`+TKBb5B3Yk2xF?RI#5GKIN7nK{o~`4I4H3jW z;0B>w^6MN!l7yrtXMUJrbTSn`wTTw<5S0}!mXh*UFZ~;}FvP8iP&oFDsvD*!0%Ntb z;*`mlB17&lUT6&42o$1N+5sa0(LjETJQwK^&-3|1IlzABGd?t`O7iOYg4#)n$hRv> z;O_^R27~^aJb{ujOvL&d{C0&b7+gJ!`x6A*$B(V;P2`|u?ks$rwS0HO1;;8cjad(S z@gyItx1V;38xvNk9%=G)^s!B4>6W4&GxwcK2Z8~3-UOb|%nwSm=*QTM+by(w*4_h_ zT!+k8-JZRZnMCR=+PN$Se=Xf1&^cUo$v&8}W*PpAxxjxxv2FeimRN3DDK8!(96ofu zEXUYEC`ftpl6YM~n}q}<-}RLbrxn1Y00RUzhbaKi!`!$CHt;jffw~x|bT^7@VAiG% zvvY6|w`p-D$ZSj8)aI}aWG>Z#YSR54Bfv8NR^PPa1mkK2*22joUOLC4R{6zIKX3-{ z4B{4Jks+AR3xK*1MO{BqK^vL;3-`neb0tpIB(?0zJ_?`H?y~rLiMa$Gwd|-Kc){zb z0@9V1|6mpf{uBJtY3%2oRrs?Bei(Zz2}B(TQQ27O!*pSE>EiVbtTTENlg6cZVxB(d z`Or|;;H0)E`Kawx`<-38}u;o>Kb>iL-t+273 zxzWYMYC^Tlg4>kQw<&C`y91B0?TH|e-OJ^hnb2Lr$KWKn|lqUpv z&0iQ840*guB^;H!HFZ1sIxNp-qxv4UabPP8woL0vzkY5r0M^XdaiZN<-U31hJL(Y= zq!?@T*g&e_Dt-_qjMd9@4ezlnWcBJ#Mm7DnKM|t+Zm3Gy!&@Vj&i(YKRu6TZzWI_* z>-O!ZNCNezZ>4gdD{!s<#-75n*E$YsABR%yu|Pz^Oyyrx~*=8nuh z?}~AnnXjKDiWQp+)G(24TZD)=cy(+;HF|C=xieN@X?C5z-gI`?{X@X$v%CbCgSC6{(EJ1#K0X)nQcU{ zH6Iv;06KS5(b@?@iQNBnK=^6!)R*V+R_r zxhFraK>R?N!4iS}IfM_k!>xQ5QjPV$gk6<_f7VcgN{`amEtu#iFKVTsVzeYIc_f5X zo+^Q+``*C;K-p(x3>D8c7w+*q?^j?pG%Ug{2yU;ogD}M*hx(D9eXzMaVN9PO1N&44 z#I-4pmH$}e2$O!F%P!~HEiE4l5ZCWqN=NusfWEm0^I6gQFj33qO51cBZ&^wnAnYiB z&@m%a1lXY07A$Ic!zQdU>^}rw{X`nQ2;d#m{oZU04hTm;~#$GA9;0$bTXlq5mh3A~rIg4$155BdM_p|w3aE-b)l=q7p)MMhE#bPM#57Z=OT93|NeL+ z!Qfqcp5;jQNAHYlBa#$mN@-GC~Vpd3n)^Sz@=>wmO^8q|Df~SAvA#P z;n<#*gO!xqeC3K>1PPwUAi%J&3+__Je2;m^bs-<5*Mg;$v`yCJ!mLIn$s5Dr`YwFz zpS;)qTsy5-%_!)FBojDvmKml_-prr=O3S8^VpJ!6S%v>AZZB4$jQ+lL-a5RpBG|zq zCdq4i+1mc;gSIm%3eC}6xU)|Zit8YqegsRKoDG=FWl`IPBkBu*8@jIKip^TZkG0l#+GOV*-u9ee?v73O81c;;^~&opgE+Nq?1O$A|R7teB9}ec}5ztDkueR zSg2vBQa8M^r4R@-iVq=W7&$B|^1~%5J)Nt{5*13^^8e8lV0$9kJ{gD`_{*uvL16$7 ziHVJs&{U{>$d}@U{!$ZSIUrMX&Hy|(?pEv8aI3Sq2vlsT=7xY%I@_bVUwQ8~{z4!z zFNm>^+t5@!`m#i#CO$%|6}EsjV~Aq|m5;K1d7k6Tb_f{LsqN-9FMPeBUCS3v5o8ZE ze^fQzN;j6*;%xxh>qC^G;Tb>Cdb`$nTA+Y~I$PiG-bS1V49mj3$$LQv36fX5fv3d5?j1mBvW(A9NzP##c$&CzTmN{$c)P<mRPsgSCznM-DmMylK4lYiF2z)MiXio z|J_`bK#Q_V-i;b*t1=-7Ja}{hK1B0JQtP3<0~?>@bOr?znFAVNmk{#%s&sY3iwPh( zyc1OAYIw=U2Om9fQ2+aFhB4DIck`(^9A0CQc5ZzJepC1SiBvNMSi$D*5Na973b~V` zL)1x5-`uKOmt7ZQjmg;=aQDP9-zt7f=X)DK;1-djK}`P&(#p20*8b`^~!vRme1DmLiut*!3H$9 zK*fi@bhjQFYI1V7A6P+%xK&lxAu{|Cc~5@Wt;KteWw2C29*mv+>x7X$z_C(=!bN(h)(rbu4F%q6m(FxCBI-1FVgK?|~GnsjQyUhl_TF8>G25AO8=Qw|Hb zS`o=|#~A-en0uF8T;3}R`T{OKF0XRs_Y2X|W1-^$>38!ef7;kK{AV-~QnB-PO>k zwLlk_oGYy7*KU6F1=HyALL!LNTEe_fa9$$?00*g$Q`DaPP<+^~7cxFkR_AhrhJl1G zCi86BACL3@+@k6LU6SXbk@aH1?rB|*yzBp`I<&xoFEfY501FWteX-KMIBTBnedxlV zGYaqheL@7-FbWYmCK5K-@wTcp3mW&Ee?iUjAW6=ho#SfKWyQ-~moXHoJc7?yVZWM& ztJ&_@Grr772nI1S?6d$nW*&P-(wZAWH4vUBF^1(4dbxEu; zRIPcebk7xs>Dx8a5=#z-N=F01iL1p}^FbvrYSADYJ&kw_5~^d?Pb*p+{;}bH3u#Hp)%F^QtHisp7e*%fuk8C0u1*TWM4``79cjxc{MqX$(@@zE2GbKup0-G}`qMh5-@1$6SOe9W&oM zB3uvIW;qBeG%deXq)d%9yea>OHlRDoT|g~Um4&!5#37;lIS-M?jj!Y9`H`;9O>n=y zl<+1O#V$V*)mwN$JKS!VCZsYFRNhw|gg=TjCm+G4Gqd)@l}ML4F5XN?14i}wPA-|8 zMDOiJCD`;_>DVH^fGuiScPUY=4j{L2Qu>(|An~sY}edS|RSa7IM zrR_KpRP=0U$^5$ar7)KT9*0god-Qut7?x`PP{zYTm%xZcHWxcxJF{U>ccw>?E(*S9 zF190uTQj3-R$%uihR9`;%{Df%c!b1H(Hwcpd7QZ5y1k#bYZOvZ}o z;DXr>1$4~?{Vn}M9qJ=~(ZBBgeCw=>tle`p>4CCv`PX^ueJ72_ESH$}S6=QlT-B`Q_2o_Zn8KDN z(Z#ZnKgRlPxTA;Jm1P2+rWKEv3MGj(vmG4;fYnh|DAY~pOu!Paw`}U1Rf9Fsq_x;7 zN&$<7kgtJ?yk9Q?P)B1wyfa!Do>=wofVGiB@jg+XExTMlDy;W8?p4(Z=s=j{c*%Qa z)irVtrM%oWiPbC`Ezjc>1-;~(aA;FPUlgdg4JwYL%X}l;al{qjSkW}o5^z=iHo6bm z1UN4Y8#}X*X`RU`HPOlQ#wRVXWvZGhu<)_0`EZxn1pp@bL2;2SK z9{7!`q3=Q7XigOgafoZ?s5(h$av24eN#<(0#D~P!idVMSab4Ok@PO0qfgdvpRn%nE zQSRN_;o9WN0yw)Y9AnWx0(adyuT-)DDpz^MX+|C@#)dM`&7UDIo#)tTwTpVp7At5{ zC&yQ5_gKuLPG$vfY$>BvU666H;5p7sN*dCoU$vVqRS94H6mZ3NroZPE3rqR8TeD6D`yHM~}$?ys1DGn?x`D@8is?XsI%v){Y7d&o=V$3v? zn?B%-Har)>nIN);%J`ZQF_+@%G9w|4J_Ps|PDB10OD?jmEigA$Sa2SVO_rYH@!j|( zG1*XaGEfwV{iS677FWE#E$LsCREoQjlm-Y3PpmjJG-ejVC80o#+xE|SiphOFp{)xx z3{Kr|!vA=|T*sKbP2BW=`;s}MESVH1-yF8JzN?ocud(1iE@26PGdvIW=@0*Cgd$mf zbg|YC3-_r|qs}Wq$j%Qii-twMI;2oo3iBYNVq7MdJS+rJXxMG>qBp3T!4qtWp#36@J#crO zUIt_>=^kbP$d{yxJgEHdeL~G;S+k9QSOM43k7W?SgSjU(7Mld#r-B6T$p=iVgs4Zh z(QY-q59-)0N)fiPvgxwl!^`I=p5a(9E_OjHXy;9EXve1C(8qtp4cLWgynVXwEuOy zMn!zThy27*WUqL$59u$Z83@a#KD-)L&ZBQPqF+msk+iwJZ zlxrn*;X-Ql!*Z*SE%nWE*c2K-Lv|sQT>#n(8a2p_qR6B-!BTQCn1bj0k9$7edeND07OAeL_ zS6n<=ur_f8<+IT4Dk{#>kB$+9xcz2Woyn)0mAm2iq3(+eQ*CgVd5*`)JNV|R#<5jo zl5RR{;M<)Qzzw_~cm|8guj>G3w7X^a9ils;8(y&&!6$(eA%?9nQ#?UWU`em5OWOK_ zT|7s>G%gt-SPYV#LT|CZgyaVqz;!VyZAHtwpsWeT0FGNVkjcS2>F6#B3k_IeV@bPV zL4Va2Dp$GPsIWOBCG+IZ?omuthPf=3ATwt!Y!5O<7$?M6x#xm|WMt$qPNkR1YD6}W z!bbet-8xZQgowI$*U8jjED~B2ngp&Xtt`$ST=ynR8Be`huG+kHzYpZ5k%zg6MW%Ey z?IY)&5*9{fhb2=LUZjrg;|l#kf1PB-17PGX(5lW}+`=~QIcu%{dhurf?A2_R8Mur> znp{;UW_%$j=qx!K;R%9rMgdXqRo~|q#zJci?qL<_84gUj`y9-ZyG|BFUtJ3Lnr z#M@F!a&&Pr7)}zfd2>LU##%U!x zHFomd=%i2+$jhLX11mFI9=n62C$YoOkMai$ocU;E`x0{?!<11bsvy;ydE&EAJ4WBY ziY8XkSL#XTYZJ?cw`>A{q?Wj7j4{LJx zLCdYXCU;6tTC^Rn9sMpBXi&jYQ30xTz^0d&d%dm=pa` zx9Dj-5IED{2Y4oC05{z=N=ce>#=weH`rgv_*|Zlrj#YzRo-BcNIFr}lwBa2mLy#zP zNuXz((IUkD;pO(`$Uj6cOv-IHjAr6(P1ufJ|LmwpJ;7!wp9@B5P(imJy zj%>Teo3j-zpml(u$*)I}-;8(ZKMH^FJ(jH-vbPplCJ3nJkvi2E+;Kf2*++17f0LlJ z{99rlBkWSc9rl~nT*1P6EHZFlKxUW@)qZ^(RVDfRXK-_w%BQ5_$j72-%$qLkErk>X z4q$g9HKOHfg}tp`3GdPP=mVIX-b1U*WTJ9Ji&0F#0$;;?{;ae&5li)rMPhT2ubK>c z>e??#X4#rf(yrIL|GhRl%o*XyydPcQ?ZKD{F`!)rwg zB-OD!U+U(dc3T&5hdSv>Fdz}ch$NbGVyh=MN=a{RzU*y*L~@)NXsw6qD95Q3cG<$F z^H1Hx;X=C#8`HKgPaiJ61NPz%>LleAi1h z>+HPJlkMVz%c__RW@rD8awa*rcXVOPILnJPb28!RAbj5bjfIkhmrX0c%MLbqcc(&^ zU}N!`2IBFTl@nUdRr0$}2u}%@Q~$n6*(48_g&{Q|J-af+f4o7%^r#Mt?}OmFE78zc zW}>M?zLlUBY=gdGCl$`>-X$ zk|n}!aV{WKEtc~61@RTS3==K+#u1J#xw!vdi6K@eZL2wV=x>LR4g;Qe{joI)7QyMX zJZ$gOeniw7_nE~{7SAJIF5O%1rBjKDN771EJO(vm>RqKTRuCZc%*~L`h+&&BzF*ls z4l<7V}h$;@)ZTY@PivFVxO^p~GD|N09b>_H{#S zK)YyOH|>*k`G2(L$uEk(IaWk=yoA*H|G&iS&RPF)%1N4sdE0X281`4t37UD4py^Hn zut~dl<=>DbqAX9!kAn~}FG?Tmj4zC0gWbTKb#JIVI!B3P-7|Y5W9{E;Z*{TmtKk#Y zrR1aYXoOL8dCCc+t9+)Wt!kJwdOL>dhFhI zUuxVifg+?VA)$gHE?BvJ*e%Q+^NzGJF>!C|Op4Liw!T>uov(UjQPphZM|N!JfeoiTgtcOg8zv$kRA(T z-l);Cx0@{@^o>?Q+k&P3kAeDC~Gcnx8Vov#47F1=wW0VyzAIbyfEU=YZRZ2Z?4-ASK&(r zvVkngeq}*7yTBJyME*tzz!|D?DOi4-rHiADT=C z!UD9&X(1x7)dP!2T@B8a*_iG7(W8cfog{7eSskJ4^GH4ifqE`Hq%6jwLJU)NalX~M zw|OfK!7gw|i%Qeckw`ZqCQTpP{VKpBM}k^?EmllLHzQglg%d zoEN7}TGmkG__Qu}Pv~pV+RZL`EW)gN&U~w!SMDmJWf5LGrv>2ABc={uLn@=xIJ0~H zsmN;OnA?Mi;H~XYE>0tUg0EY7qY~m&O)h{uyta9K&c#Xxq*DVACNe?%*oQ5dG24Lw_Ad+%VNw3;6Z}hocKwXkYDSu4Y;( z#RYRSfd0>uJ>3%UKUe#qDw7V}_0+c8v#Q1h+`? z@p|EDCO=hD>mPkBV1%4Ggq3rKeCc@eEqF1)Kzo{9Gr~xeJ9C#8$Owj`ARlz zVo^Z6@`WHD2g37ubeyZDiTTh7d|VvUt1oh7^pJ>hui zr(=!+i9Is?ty8L{X##N{tt*v3FXz#W31HkCGbHE2B9omK2v)n+D91u@iv0U_I{?u+&_e7$3D8cF7MqK2E9<)>EJ$16JwA z92zogF7VLY8AD@`uGV_X{)f(pUr7W@#Mw}CqiW;&TWkOk1ZJ${@iSs6560X9Xm8UD zh%`?rh+b_fgGy}^t=w|ky#k-Gs-IuyYl*Ar^O3mYHyfbPyc(W=#U2-**g*g;6Rwe* zr^=_uVLSceI{_mCLYLo`p(~GvheHA{`~HMIed7QQO)oig6mF_CuVtB})*yQK@8F}T z8IP`hL%9z+*74~P7<|0?5#@~70u_)TgiME!=XLr~ViQFE1XmNA<#@o!!33Q(mN-#$J&LH}T3#`$4w%2(^nF0!GyXY#gkE^j=;FmT&X-cXk&CzQ*#A1 zH-`eis$kO8fM)AGia_V%1e@|*K#WRxM^~IJm{vhUs=(!)wd%YFKO{_ufeB# zq2(@I7ripSMwq1mAXd^F9u?ILj0ARDKz(|Sq97VcrcR21CbL%1YmE?-%*6Igs{5^k zA*bQcRi<2o7}l0eJ(fR$9XO+fu(#Qkm}8glDpc9lBsw(8&eXJvnxp|pB5#@{Le#=z z2199DGoztVyM5X)Qf=&{aW6mTh$`M>eMS|hL2%WGAOy1ZZ*O7<-UeaK3e{M5SR=58 zPV=*Xs?pP+`<%vw!kgQd3I~HE7b(1@YnJJqq}-SBA^^{Y6n<%f@PnUkq`gTdT*U`Y zAFjyC6K%4lzADcVm`}d{M(gZ9c#A97Zr%kso28nu|$9NTF$0-epcmTM4iMa#b2sq3otw-TrM+* zN7Bt3m{XwyF@beAV(fpRK?QA5?j-^F=&}8m3Hz)DI2p)wTDuV*WnIUlSq(=jM;qER zoV}zhQ)4r~GV=4cKH_KeuGbt!BWb4<8&7^8GX3R7Q2PP4LORE}s6G>Kz`H+L&xb+Y zN7N>u?G-VEo0#&p3AHxHH4z=pNMXQss@?L03{mw1%RM7j0<1}da9sxA%^*ad*x{TF z+2{rgKSYY!XPLzGC!ptXPtA2)o>W)2X&=|$!pcxD26%v8 ztswYWfTXQ6%Q!6N<^}qMdv2BLA`*iKPO5?*7E()tl@66n+txeR9|!jgq}~nV!QsX~ zT)?O1TdJ$BeBh!nTxLvL-mp)zYia^gwdF2>{6q&#sf^TkasS~yj| ziVa3w-rdHkt`sUACPGv-WViTCm(4O_mH8Vk-T)olkd(=(*2v*Qt=0c4p+5#ztMAIo zM*s{|9vph32hLw>kAtwp>rw8^E;*BewJL#fm*T*)L$7H*qtpYXstNn60I*1CHtp;E z+3Sna+c7R1IuNpfeoofp%APB01~cwo6?*ljJV;tsPpzc6|~_2 zLDUh&(Rd37y2Fw^Xi8w^=T4e5&hcN;YAU`xb@g2`sO=)uQBae+Tbqm(m8bO#dEbKq z@q6`N#s$)XO?u(11)iwy2_Iqn9jx3C4qDBtdA$R$z?v04dcoh^wH2c7#6r<9X|cTJ z)*7AlsXt3Yd@Qf*%Z`rozl6@Fg0ClXe5L~MfUr!$@sj7yt-tn>brdwzE>skA%?uA# zYT9nIRJBLI{O8oGQ|~a-1gwWB5tZC61xKi|z!3Jh^&-e{nkNnEChA*NqJsO_zx?{d zF=qfshZo-ykQB~#1*c4BQJD+>t!7hGY%yDHj}NhFBI{0uYO%(BJS2J`E|!U~&)tCJ)p_UW2DEYlB+W>OE&CEoyoh$p7-ypcUd_DRjXIi6BP|Wy z#;r@EqWVs^U^Fg-isLj*BiGRr6EN(O6DkIBW{sWbBGdxA8$N6;H-Tc582-1A`Mbp( zD9a2|$7TWd(bL0kUdqMp!DF>bN$dKo_-oY^XZql~)*tgk;&d9lNgXSqlPFYjWKzYWYegUq^Map7_;Em8Bp z1|}Wb)0Exu;6rSGL_QpM4)me zspV3{&viyGbq6QgFwx*$%1ncNiIV7l73oozVpM4R*&@ZV>xDS?1y{%vm(-E}sYirw zpsr^hbKGtcEJR``68>}A{Rw{E5vmqRH~v& z2*MXF>AnqNho6&S6ssM$0(Ub`<_fhVH;o4-i04@bQW@)g2Z?#$>NJ<>Pugr4lruY- z!Nk1_JW9rGs>y)MWMZ^zM(lxB7w~#5? z&ZGx=xI%k{5a=74lDdAGe#>!W&0tQwqMm9rKk)fEcD-I!obWzN(Z3z#VZV>LsQ5s> zP(>JqoT43fMdDWqQ(1KXdf_$!Mcl#p2AHDkt^&)ux{+8nN9XMu1SlM~;N8doKg53B z-Ud(bC!d466EY{LvAgUqq_9?|zo_DizU3OB!@Wr5s@Nz-ma465IN%?Gc*V6TfV<_R ziU9Wr1LyFA4t9}$+zF=f%+oVLlbvr#6CM4}kSoVR{(FAd&i(vWP8?v@eegqAqB5#| zttQ#usC6#DORo=!U*O8tjbrK3V{~_A67DsETY7bl>(2*g=Ey0TmCJq*lAdE3=aAIN zRJ1J5*Xfx?l=c{(X)$e|Oq!*$h7DY*h1%X-__Sw(qSr345ZY1JY+L3 z+{E20Ti}g7o??}Yw8N7L8@He1tLqjKO&{wLGH7jMHZf2Lpv~D?mwU{93 z#vLIe!@CQicj%Tg+B7o?Q7#(%Ez3Koz>!8gDU+6#J0xFunJ;AJiM9FYgU*%MqvwX< z5?G%p#Y}6^*35YJ@;?%=gfGB<59F|>Vn1j=1|Vp5&sZDAL$!kaZK4HB25Y~;K*l(l z!^l8AH3Nd)x``WTr_H+3pbbrvFF(4;XJi8S`f8v9Qa)omC$_TH!`IdK#ZV4S;(AQ) zD)*f0hu; zeMR_|sq3ta3DfTh<#R-YmX`61G8LFJE-CY(TNu+&!pK)w;j@}k-x-IXDr}3M)Htk& z+Mnj$31mb(QIsG7`3VbF^pQVF+6hbs zOt~cRqri6OMYxbrF6z`TSD00=P*YL@f?Je3MaNlVrMxspD$#6VwkPQxPxigf2)2p_ zz~o&iaB@{>P3;B@T~ZSiaVKwB;n#cED4>W5c5_3Yl^Dewa=N-);`@al)PPbK%p)V& zQJWZOw>khihB(C-qx8PZgFISU9TDBIrayk=q?b!Q1r2h<%Y~}ND9R@8C1e2u zq$H>()a5uEbuXoc2Y046;mfLLubO#4QDoumIUM4~O9%5LdXfW9W_mSzge)wf{C3w@o4a+Di{tyhi3_x)fRHRW?9VdEjn3HA`B|ugv9JJ z=ddjBuCJn{w(awe_P2O^l?XUwK+x*hy#)BstZE)?iLX9`{5aAkGcMQqSA~9&&FmS1 zY^aU2yM+0!zZh&{LmCN#?kW4tEFix{AO^`=LxA`LFN05qb=t_>U`38)43#0_ME#B+ z$noVdC9U4t>jK+6W?0b@ruk<+e<(%e)#o3xsi$hoE|1_na z>#PA`)U$Aqv2JhTaed_NhNUmdwRLE zst?lOvbKt zOGx6&HP=0HvC+Z}IX({RH;!N^yK6 zLzLA%*VJPY8WE`F!-ecYS?R`q-j46tn+e`8>k){)tShUF`(x?CsrLL3rY21P#$Wa% zhAZ$DbL2{om?(RYBkKY3X6X|=K(;d6!R*zlp{#Ej_B~ymmw(SNNfJZG*L*bs1|Zg5O^qumayh&-5YI@>wb*4iKyI^{|;^CJNx5b<@1X z1TRBtS|E}4S9svo)d2u+Ky`AO3SWeQF$0-*UFmEsR*+DT%h5}$F)%?|4&Xpl z=Q#3eC%G)wv+g{H9^g%*ZrYr6?0Aq~h|;1<_u^ilW1$(pnb%3W}4 zw46PfDyRtivx)*Ynt48_cHZpwO~5Hlrlh6MOET8Z6G$8-FM+&4Cjj}t+eNL$KOgj+ zxRoUbR)jIf&T8swX*b)Aer>y;b4Q3J5H1{ z^geei<^!15^Tp?Z5{I}i+F4qQjW`K9=4Am`o(*j4hTVJ)_1~@HLyb}1TacHIifVlE zb_N}?NFWuaFEBV+LvSYMRIa+5;QOiIZSQ@~y1laF#w^9Wcb&KhoWr&H=A_@oxhz%l zR85tep>eYm`)d4Ch*;`?@|h7H3!zXxE`P(;fpF8Y0f`ozcZYkZ6&#mam_Thl*@xgk zv7+}glchGKT@aAIuR?k{w^7zpQG~1x-3c`0Y$R?g=9a0yQ&jWPc6xD05a%C7(rSZ@ zfksw6m{5k@x9lw9VZ;&=nhVYy%BfAsq|z`e_-KJT8z$A%tL55y*L!FAnVbGJ>%3Zf zj)rgbK=a|PG-#jc{to+7;q4*Q)k38lyO_&$W46kA)J36XjWr<_rxuo#+!7an%Sy{- zbkX3`8>7_d9ldr3*#jan_8o4K_9&R;lqm+m zGQnUh%#Wdf?xw$ySCJ@!=^G%abij=JUnRVE>oP+57U!Js)n9`aOX9{Akknh0HWEa4 zccOSiMKbbWi>Hhx0U7;k;cC8Ybt|Z=KO5 zjTgOUJ7_KfW`L9raP7 z1qA8D3T&sA-H{2g%Ut65DGq&tbDxyRQ9I#m*t4%_X1ZGtisbs5Hd?an(!u5Zj*e5a z7)@P~?cL2y;HAjfM=NF?5NI^$4LP^WOEia{?oX;^o6wSBFV!^7D7Ov<(6V&@jbb%a zmJOa7@Fl~F#11vcl3SyCc7Cp$+3GrRY;0B@iOUxk;|_;Gd3rH@qp8wspJJ+Ws~Or_ z^}2dUHOr4=j)evcEyMa)Q}cW)qDt2$V^+wK&3F{^JMetpf<|==#j$-8`6~0y@H}}} za_jlzloXe}_ajxpPw08-QKu?;T$rDhLk_$01E_L-ZiA?f{Ti2&Cnh6zZ{&y3IJ5}I zWIo%BPLdIrZBLFja!)A&bm)zbhn(S3!FaE(^oFbm+ynTK_))(ew!c|mM8g;~REDqd z_V+{!1;;aB@H6K{^$VBA;0EG8rFmx=HOATB0Rz<20lD`M5yxKa+dNECz@WId*ATCr zeM{BC`JNPE5>7U*O`)&u{tzbNscNMbs4`kW0eq3Fq-fXjLNq4A>Ac+%u9%Ao0F@#{ zEP{-VRK!zdtAtgI=M;^fdMme%V`1}r=HFfmtdfl7lSRkj*0;ers|*>g`BFWY-_CLDV|M)Kb?J@Dtq z{jO=|)#eDt2w|z8F8MVftc+c+tdFeCI85b044NQ3d@Ee<_ej@6rDA$&jeOpB{}H<= zE3katpp5Fij4otzG#PuK2N}XO$`&oM)xF1~o62$y)$wD#|8bVlQ2xUpVF~0zFCiy* z1)|tAohs%l=y*%~Efc^m%y!;L$M`2)qW8g^M9ghSc5U zcM0*+MRm0Nq)uEVeAL2osP8dR?-cX4N95!Ji5xX8b}btF8VQMc2fi4Oz316_f~XqC zhYml)FNDhw+V)bSBkVQcs|g7CDtl?85sp#|JTh;cP+=N#4K^g)xnY`F%K~Mv{z3XV zY>;n9QXu_BB^D>+zQQ3;AK+(ko!2c5ts@@bH53)`WOUtW$OZ|Xhg8Fq#kNqC*W3_; zFcpv`Y?uigGu1V5T67 zrcDA#YsENbv!jg>8?+RD>#SaeSw#Rs2;YUb647I<=F z&4N?l)UQZIB1Wy#enF$Bl=a&=DL%rd38+)a-psrFrKxZf&(w&@u3 zC7sM3Nugw1O7qS;31&owFAWc!L$E%A{1xplxz(?3+ftsbR20CkCr~~w%hw36@kAL$vhffxh=lY*~Stm zhJ$i(=t_#WPh#{8<{avVaro@%ORyjz{>d!BK>T!X%^^&@l1=h|7th3vC7N_`CQk?| zz0(G@oG??jf(&o8Qzt~g|JD&=fJA?hmdd@x(n{_e-H$}Mu+U?DVSWZM;zOI?&v?5$ zA!RH553&Uc=xjbr`xaQ-`DSPLClTAqI2Ggqgy!~HB~ z(GMd+^3no%ts5fAiaA9D8o{O-t4kq=ck_f4rT<`bf)aKBO% z=8a!$cjoMY-;F8`yeT(^^aJJ{;5fyCYaWmMGrlQ%j9AU5iLGryOd(1bb^SsU9#H5; z?h-Le+iNTBaC-|o+fXB8emIIb+b#i(DOV2fh9Ls@5t&`HP>lYrhtxNXy3^*0#~d!lsJMC0=bHE`tOjhPwlW{w4nOE~-TAt;OL=h5Q}9o!zet^0}Dtyjz$ z(%4HE$e?@EU%f&)_J^k4$suL&4}!=M1%lt1-p(nggB-spC`^A65Ib@&C&Q=4%m4#C z#?*T!!QR6WCwVW4`o-Hskhl@7e1F}#p#8NGKPQe@$wU=-&sGnW6|PB6a1wLR1bA%W z$DUMy5qX-SMq~rNfnC25FE4Mj$2>J{jl!{90}J-YWZN5ApB^H0l*VPBn8v65O! ze)735u#>yoK4Qu?1U%Mx0<5d}r3L=j$6A%vmlg`6s)fh&g#Tm7W#$NAvc7%zsPgCV z4OD6af3`GIJyOJakSCN`@yTMhv(X~f}8_;A(@#J4AKHsvC6mU#pb!Lm^ zW{Y`nOK@6W5_wHD^J@>hFb&dtKK=_^PaUhv~@^LXkV+i{oW=`yp zV_dr3fv^bCSF?Xr>MkX@KM9^UtDU9Izl?^u$t2#h(`RfZSXFl6<;Oi7h5^OrhC8ZHpvANXU6cKtzRD? zVF&IpXan~0kA9G!%n`z7zFSlP6T-w;(y6`;UNaj@lk_dVnXzek3CF9z%ZTlv5RfUv z{~T~~={Ic^rJ|eB$p`%pYg4fkI7(|-s-Q!V=bJdc8XBuEM|fj6(vd!Pv{@GIJ=XFK z)rA_Lbxr+kJYTk~96+a$o_cV3w_pJkj*~%kLsz~-I2H!;F z_9o!haoVE#Wb&TE`k3nFMlNLr1IgNVCLH~I*or{|&Af4K*4w?X=NFKVRJcy}j2YHA zCz31ax+8Vju7(n-*_$%0;fYiO`PblQ<{pYCF7%ntgakj)y-}tTgu0b3OY4?m>|FN4 z4_*SO7vGyg2ga3*D$<7W)M}v?SYQ#A=^l<%>#QTXn*wu_+W-Pao zt2~=PtHX(FX+Qg6$cAuneYMY+jYpMeJ+R-rpj(RGQVUnxFmYb0Kx99SUQ1i>oB>sL z?W!-afs9YgZz?d^CViK5d63z+Br|nZxPNBcsEpMKFglD{3)d_`#HCa-4E(Q=OD8H-^TsyHY=~E zGwdOn%0YC z%+77V;{*KMw@n{!s|Z2md4(FI$--vc3b`=w@Blw*uPSN%WRv}3Da3ii)Ln|CPC0KtVc(Y^-cfE_nPZ}dv+m9aWC&SP+In@xem|CQ+ zK4Y`mO&+OWdb`ubF5&TowH>>so>H_9;gzR1z4W`@b+1zxh?s2T*xAGDJZ9Bdgx#sj zlP4^)+HY>Eo^8}5FxpUt5~wMdV$|JMa`Djj-wIrfCLcaefI z?!tD90<|*hLGl642NOStN9?O3Ct9y%}u!D`FH^)VAZgKplBp+ZqW+!%midzkqPzfn8Ws`{S#JCyfp%NN-LEW6iq*0@5rAFTIL~$(k zPdz@7pGfS{^)cWs2)D3P2zZ+;yFI~r1Op_x`L#9NmBQ2K2Klci#{;!Y0SIV-xKtxTVb7i10G3t;UkvK;@02m@S$^E zXI9}<1!K0f*6h@mo{}tM2Y$#JDSEOZtcri@S0uvN+%_LM~s0*UGW8T)VchdD@ zu=&h6Dwj5>gR991Ps~be!zn>=-Hf(3<8B5UZ21)+O%0ClwcNYEJJnS<(9yTAkm&rMn~?n>I^x ze98(U2cD$=n>B`r;i}@4Op!<(?|Fn3Cvv1nUKHs?h9AGrviyiOBmm($VavbdS$SBK zsbnXE-2v<~q@Ni^8@L!$D&>>e>V3I`NwC`Rub{e$EUc9w>5qXg{?FQ00N=)X{jRQq8 zcNsYNCkxg>vt01sI+6YPj3PYj>*F&jw%YZ=(zxIwSmO=WLwy7|J2@Ns0dafnA7Gj0ul3gXEDgk9eR#W<;m|n>!6+iWG)$w_hr~y zbTwp`4XXJ3;WxquTE)Tfm^xhloEPr)0cBrNrULn3-wF9_g9Rt?^;-+FKswtQVj^%E zI1BgyxSlNtNt6teD8TMfhXOU~b_eTl2zt9e?h}j1gpjL2l;5wR?5yOc^P#17d2*yu zx&!2_dOzxyjS!M>we(!Td+QW_jw@jb#Kz+Ub%bKDxEOo&f_~)GP62y4q&*#h=O^AY z57ayna5FnjIQyS5ddxv*Eju2^=^{9cWsb|iZJ$)xNob{-rDH(+_3iu!L(3^fTv~8J zylE~dK%#ZmL}xn(v$I*?rL0SR^J$$a>Vj%?;enO&jp zOe>w-$f}`qJLs{EAHd`f^B26Ibtc%&5bln4C17~OzKQW8f4YJoz{@PVT>bW1RsolD`N~iYav_BJcB}XoKtYDqU~> z#q5Sv%x0$9vtqT?$S&V(J@>&*)o1D&(2QYhtW;9Zb}D&cqfFOK(o>T)J0Uo*0xyCf zhr*sASlFhMeR1YY{N|<_2$&}C@_l|ziUm(>-VB31Ej9@SM+`qtsCVt>2$r~1+Q_9q z-VPss!gS`i4v2Bo0|;YuWglI&$jy!j+xqL}d#nv_O9!GYReboqIvbtM$0$gc3G4FG z>`m)dXIXQEio;y5vepG9_EP$}Wc&{`Gw07@wl|t^@a$yAi)0S)Od|!wOO#cW{chm$ zSY!WI*lgMPAwXR3^%lB$1+5TSOane1L;=LdhC@H8$v~XuayrLo@eu9tzZOi>F=N) zIsZdm{G@dE1(?3P*(l?+0Wb?ge%HWw`LL#IX$_qVA>tznN(q=@>{zW_Q24d)$lH&N zn?i%C*D-N*I}p2k1mh$!dI#A+g>_P`Jmd4#$u`T{{xY0jOb04h(d6!MLjNO{ElqL@ zZaY%$;#`LVu6V+!i9DP77UpAJqmUtQ|0LiFw1lV zZepG`of!1}$K$#Dp}rU(l%;jiC7#xP7ewVO^TAOQXcSHd`g$?FVO< z)&QROff7J1*hv%Jx4^CRI#Cb)?MRE9NEx_!0e`L_Dws(&181?eiE za&}av$h}oDf^M7W$Mz{%7385^42_q$EkdStywFeQ9JOjYSKmQP(iK@TDg*AI4&}hN zTuP^`bq;(f95J~VkUs=$;~>kYfoc-EqPzk^A0(DQ9yS}%@11wpt53oWDEBTKdCj@s zg*x1e6jQaoGvXv4XcNppgGcb#D3Cqj-P6u0^SZ{n^P$*av7j;_0-@}NeK2dRA2zp- z9@9da=nK_Bw3|7%<19b(n6getJ8u_NQccyfrnpV{`gXs`@JEL}ygM^8oLSds5dx0&d27c{oWs%I^pr`w z2ff08V_xTm5o)RrE2xU$Y~L&+br5iYeo5JV4N5)s#W52&Rqtw4ohf!b%NVIP3kbh@ zchp{B`6_VKGojO4(z3CSI^YJwlx^>U$*o8YE@*5m9-yQt-uS;fQLh1)gmbpOK?v^7 zQ^q}1=w$UZD^~##^RT$lGq`o`Di)FG&0pn%2^G2>WJrC~(za#avT>Dda7)Q-B@|On^ zhQlo9NE`XX`i(b4()|+&gqT0%_K$CsM|GW`Vl#RouG>-17$~xp_lb$Mvv@R6qO<(0 zXdkYvqE+ZkcwQ*(d*w=L0MNg!cv-Fu_y`G*J`;Q_L&Ij#rK^B5gE;ulBw! z+Wdc2ndtr|n;s%a6yW_iIh<>e@8OjMlpU6rqDA=7N+lb_=B+UnPG<@}GI>$*3h}`I zdBf`?igTrH>11OhtmntJD<}0|6sz^U876JOAM`QHU3801iTpr9hT*Q}2f;@0YEp&h z(N7KWB74*P#Gl}4HkpDw=D+A>1tlp5)GDT|OvWjHgYzR1)KJc)72H#>wwpY7lHUx^6+}~3G1=~p-35PP$tM%jvP$T_%KTN|d zU9mpR)7cR0;2c`XiW?Fr01`YQz(J8_19G(+{J<)L;+&>{8||kbEJgWD;$V2b-9J3u zNCTmj2JlZH;~8wM1HX&9zDeGc4{{83`+2dlC73S_q)tsA&{{XPBm>DN9?QYcPWhj` zxvGgL3OOwh@f-qv~g}7Dw!YIqcmO0WlcfNsZFeM6lk0N_LJwbF4C)~6oT%7YI!4xxNslKnPJw7 zcBaJ^b$YEAzzrQtAYQyqme{9-c$gYEEZ~}Ud@7nZp`rZSGc+&~KvnezY&2DQIN%*= zH`iC-tydJN90HJacunLIUZmTr@in9sFSmaT*r;>;{{mT)T$(@Ri!E(MxTF_U|5oHS z(kfx*$wORe!UL&dlC}FCb8)5<7LawrRF-NsOf2cc3*WNbgJ}HY0uIx(0L^o<-NNV2 z<^E9t$9mvTH%9(@)%L-&z{zH`N_fXTN4ruCdl&Rh#^8Y& z*>HbPJb#v$7{Sh|yF$=`sILcc0IN)tb(|e6wo<5+*Scpabte%?r~JJjCx)|aR5!$& z&_4SSOh`oYKAaQDs8ko%E^J_)lpAwWBE)X9)rY8uT@#R3qo93JGCtg#!UVQh+;Ikf zHn!|$5%^$xr%g|?B~krW<}s2AIwDW~0HGYFylIz_by5)kjMOWoEM!Wl{kQ(s8PJZa zX(Z$juYTLD2A*u?h8=g>ghMGAbo=oh`SN+55+*kP6z&I=02jc@C8FC>L)W{m@opHe z4Jb<*jizoE^XLdl_+&xcV7MWmsjEwi|Flp$z}r+_r9tFp!ad3w-ql0WUdt!ihMYh* zzA4%wB3A}nyFgK(9N*eG67|CZl(9QnhU}H0srT>6JIM&LGXvLzmn`IsBtnzp;6#3{ z;Ll|#(MS?jpV$2WzkkdQx&iLX)9dFVL!_uq8l&7|reB` z$=hRim-{r|9d;|D>3*7WhExbR13^1(4!Hh;9l5c zQ!Z{R`dstP!!%I1(U*QPecjY^* zzC=;CL-JTIYF!pqzZHzh(&Hd3tPy;?x{6L>FhB>L@v*1DU#7!JXad0i;3pFHB?slc=;>#0A{AFG z@osj=-I<==h3sG(0lraq4pu{Y_;k~aZT|hx75yItpl<@GE(ZWH@atQ95a!nOiRd%rQfUtOWcXEJY9LF zBm)*>ZmMC0y9*Ofkz$82EIz_x^w_Hc#Zpr~&gq>`8C|H(wNpW6m$u`G!ehM#^o>tC zSXL_>WwK#Ubu07om+-a;IyBIv)`Rg(W%fdo5&d}tybRX{uv=&Bt3M7o;Id6qYoDlx zFTclPO_Du=kiA{owtBDafbzLmBP}i)5yd1J>`qvox(s|L`Jc==p464@w`e-RL?{%$u7WOpD(??l;i->9UMWn)Ja*5m`1j7({7_v5CGHMMKb#q`&a zXX*DSoS(YnZZnShuC+v*F2w!|)2lKbDdbm;F15GsRNl*0cZ%#`IrMa;|8E(>SIJ%^ zACvwa8xpmpTy-`wzOc*Obhd`YtjR=#;+!AP3OZi#34kwmIh5qDao^{^z8dHBr^d#b&%+kO|Ejt5B zi&PWBwfvXLS(PeQ5tWa*hfs~8_fR`6757se_QHUXoiHKPvr!McKl~neBiA_H{+R<_ zMfZ$Bz-k3()3m2b4VN;sh%#87xNht^dP1@`*onw;MOL- zW5`WJnz>E>#F0S!sAVoc$BuNT{PG~1ocLVAeb=0!3A;6wz%QwW+lQO=oAhr7@SU(M z6h;jY1q&JL&dIiI1D{%Zq9aA&MFK`M7a~dl7EO@O#gB71)e?M2&@z8F*^2~p1t({V z_7IrZeB^bk7~h6V@Gr9Fdn&)#LtTkyY)b#X0u$g@(Fl#I z7eMM}7}>>mSuSk`ajI`e2{@c3BGA!8#ZUgLgwFpLa=-olmc;-8+BCGLkkAAcO)uun zn$yNfL1*GV!LPfS4lQRlSM1=4BkWEp7X=||4g*j{^#;_aiF`mRkSbG#Yj5mC&Zx$Y zM(!(m`E~l7nF|E(eGf%E;_^~VlIy;d$F_KYrq`>D1P2+21#f=D0;p`PU-RQ$WONne zf!M+Id#W}$6y1q_N2cKCaCf=$u)?nmti8_!zDE@}I2ny0%kCQDUYOagaVIMV?U*ru zB2bUF8AWCg^r_?gb&U%${qi;!DL4`BC=$rFRuIod==r84L3t9l@fk*^3a~k8ITMy8 zL(2A?rUiO;N#@uRi`}h;OM>kE3pXx@YY|y!CvB5NlJ@w*Syfg*gi*;72c2^FT9bR@ zxeKp`^&jB&Mr*{cPr+9R^bJ^G?sm^{9SG0`<%pzG~Btnl~26$}8cHZ*hfH|R; zd@VT&t}FF{nU92=7K*zcX-g;HASzyB;O4IsLg73zxb2fli{Ju3w$BBuIijs151t#r zEy!w?{eyr#+3p^w^xA_kT(ws%-oM6n?L5GteJS+1D+|7u&YS^^M=H6rx_>*2rc~ic z{A60T@{AW6^Z^*JDBKK+;ls-*XQiBAtqo^|&*6aA0>zxpRGB?SA453$-SNW0yKvZU zi=WC(S8hB$n6TaP*DTfI zF6Lp0k&ne?w-Z_I_x(-hh^QpN%4Xx)sTQImBA|59$R}^of$~xtemnrh0#ePoKukB# zf~%eWI`rQr)hD;kj!*8sIZ3p%9E+&z+_9CVs&IL)pUF+QH* z0=Q}NJAHEBp_HZV)M)v2pWspkHCX`+qr3A+msMBlrmIRDL8%#r*V@N6;R)@0hCw`q z65r!DUym%AWlWAt-!Jht-c^e75G(T@9d`soGnGiNza6Wonb80o+v#@65T`Wfj5_T! zWJJpYbr)>YHIwh0o<=YUfEPVbI6qe6t#{0E(!K4{v|JmfP)O-6Wtai$@gW(}RP9K} zPr$@n6;Th!EA_^<{=Cm)C33^WS8#9jczvkVhU*%4^s=Zhl#W8K{s68aF_H7I2v1@W^4qBU2_`Oj+17#y-&NVNWd ztC)3A@vB;^CSxW0STlr4Duf_^B2u|49lIC!rc(C5{LMq1S#Zp+HTI20q;(UPjY{sj z6$gab+8IBjULzoWd?3P!qN4&u6H0F48lI8&xnSpfC5jb`*aPr|fS&w6`D^VuF1V>=BayeZiazzH)gk=*q}&AT*$}+5vzHURxVToO*;G2NIjr(VB#Q zomyG3ezu{$$}3*AmD7Nqkfg%P)(xdu+o>*DVNhhuH&}`|`+ z7Xno**LM{&+|L|&-5s{F2A88p{$s!I5UBQzQJ!e`Q8n((olcqB+6z4I?Xq$f&S?0# z2j@M+KSqF6rkPiCgsDj};p>No?nN77U*YR~-{HHIuxL?*0!Czd6N419J<q)>rpxF( z_>2N$(pe}3V(IkYWcK6h@yUuM&K%>1V(GdKX&ag@CF7#D$_WdY2*3Iy}n_0IIl zuo0F)u52`{3mOr=CG9!hKt)0qJM(D-1#>oOhGyMp%45WE;f=yC&4-cR_uii}1;Gpr=o^i!& zu7e=_?sTNm|CwG2Oi>LH!hVoYh8|80-_-|Kj_@W$_Ks&mcwO;_KDYe8oS#%X#%P+_ zYid=swTm4?&Xx`SJ~TG-TF@h$nVORWlg?a1C-)YWL^6hpAwQj+w8BI3=|5r$)vGjr_4CA>GM>at=a44%=Bk7m^FNLx{7Hg4Iw!J7)P(M zsLXuxR0{5WO$HuT`iPO(<~7BCCRKgse!NxOS9fMIo>)MacP4%MM~hSLld`4n36tM| zWx~yVc`Lw?U5#a>E2iXZMKm_Rdc> zN{BJ}tKGFgIy4;rC62WZoN6)o_t}qi>vFkRZ%MZTt^qbD1*Urm2EF#fx z4qV`%@zxVj?}Qw8bjz5iuLnaYl9o{OIWRMC4*Q{|UUE7oRv6aM1Bj_%2)&Ayr-+Km zN$~)e|Cx;KeaMHUvoQ=N7M(b18-34}rl1kn3|C*>6cw6-PaIs^9i*x!DP{?zLm{ll z-!Tx?Ih2Ig_qBI^Sx9){NM1xLiV^ze^J=;wPRkVJR(!+-eFl}=BHbB`RO|B&-%Jqw zM_4@Np&x-}tX=*1vOzcJrQ5TP;F4f(kQ1p4%hNX2m|dYM%^A=B`~ci2*6Z;{3Y6)anR10#Vab#KGRctT9F_XRfnVC+>~;W!i29_MjG=k~)BVkB2Vz zpR8&Wth{(bn7KuE`11lC{^@d4ZX1pYsQ(!I6$K8M^ePt-j zg8$dojK%2a{EuhTvtkcvju%%9Ia34TB@}kT25|2;)uU*nr2|^;4@IFOOWW1*zjRo+ zcB<wJJ`wR0^Choq;rTlA#EVNCj>v#l* z=HMk;2Vzpkmvjaq_vkP8%VPBly`s!Qq^X;|GMSA-@GChxU>%@6Qm{Tz%J>sDu|%T2 zO}N#^9F;+bV?kDk%J1aLK`Mk#nH_nGE5Z7s2T7Ibz8N-sgQ1;+2uX$}>ZgWsj{~ci z|23Vf&`7NPy81voC&zIAP~BX7Pf*NV!2xW11+)@XLs{*XKt z+0|)&!v{m*HnFBgWWH)HYhUv3^)35VV8<(rWVpit69Zz1k|`)I7r*H@C_5-Q z0I{cJ_Ys&@e<7a!elhuNoNMw7xRf8;)$Sgt=|cC#bP&)A_HyuA>=yTEUUxRH;WuI9 zJ3FAXIgKDl!&5Ra(Cg%JeMSe-MifAs&?y(5i8QzHBdq)o+-l7&xI6rGoA)pB1B<&3 zTi9dJ>(KhSoFZM(0f{Kk9j5{G%Ie=yTFW>=HDZh#*bEc zM3dFE)8wwA)Xgwl?0Et->t83XRnSmsucC>b$X#=@w6{uQU}6QoE(|^zA-g0vn?axy zIq5QB;Y`2Jab$FZFf5V3+Mok{M6@D#EBBg#FJyvbn@c>kuDb zU9XS;C~~0@00Xw#BIU2K42J3tv-2a?aAFmvX$^$abg&9=fg=c@JINVud$qydqHg`Ac|DNW)honYgb?OX$x# zqhrwt*S`4n4P#2JYhAW~hTmUn|1AH_7pZ}~CWN$6V)x)!^_(yu@$J>A(K+1ES%7Ke zq%~?rKs7@}i_XDv%$-_*uMW^%mUBb&G4t@(E71A*T=Y(35a?S7R>VFcC~W`i1-wmt zNLQxjE<)riXd!vZ{0;^gl%4w?X?&m1&MB1aY2GXH-gLHdgk@>Q^uU_yMp9-_rX#X& zxSfkKmUtBALb2q?7Kd;>JM!GjAU%`_5ra)41(-Db`&P%c(T996F{x}`N&T2-Q849X zi+HO9iLzTt+OTd1C-k{lisv*xzLb{@&Lxb@y{5HqCzf%y50P2ZAB=}SWb-pqv?+BP zQWdIa@4w>~(w51QbH8^pGM8v0HM1m;ifhXq3K1}NE5d&yzyBfZi4YJtz4%tvT4)lw zYd=z|(j+^#Gxwy?$KHgCrm_8>=TWfD16-P;|}vwbIA1+yVTsR5M1`{}bmiPEE0q3Kmaz?D6kLB{kg3wTnyZ4LO9Y(qy`}>`BZA0F`rK zN3Ee~bB5U;@208vJjEWENzY^Wz_sef)D`t|9KO4c0cZx^;qoFr1IJSyO`~l+wKWyj z6>;3&0p`FCp`yat@=8e;SrKa1OIPq1hPtR01E{3w%4nz-gBU`_8Nmm$hgKAJ(_ery z__OXGorX0E5QKZTo^+cKkJ-y(TJOlvo}b<;;45s6-l0ox%$2)xAlX?o`qV>EqD#&m zo+rrI>?|)j{mA2|TAhHIs{_CEUUNyGd8q!%!D;x(*iVekus7o-$Mqz+dR40?7Dg?S zmC0Q<-gA`9^pa!gZhf8_E$8z03yxCdnZG@=zhanMgqdMSivM?3rkegY-J5Bg&KKaT z{nCtsQv`{Zu(VA(1DLScYL1ZdM$>vzn8gv+b2#3(4REhin@A`6UZA`EGk;c@{LO1t zpp<<2@59(iZhYvvGA{Z9JV_i2FU{HJ38(H9@3jHyKMWNWQa!saRu%_cM@{1cGM|Ng zg^BTCCY>wH9#i{fF#iF!yyVLvEH685 zBiRmS>mKW^sZ>{fS{u8C6mtWNMXbcozupFPHGHS>t4FI;h^IaIypl)NFgmSUc^qd4 zEPS!|NqiVt(h92wSt*srOg-(nY62hWle^H^4Sbd^E-aLHy;Jq8``~0HE(COQf^3sD zpMx|NZ(j0%6bzLqVsE9U)4~2co0xChI{b4%T(#uh4STGD9>3%${762f*lDVBk(V?1 zcRRLKaSTkDr+5lBF5UE3&<0lww9v$LoP@E~Q;mxKa;1xuD=SeEwbya()lr;4!&RUK zQ1)VW5PQH_Si?3t3pu7AS}=@jGWQDsuk+zn#w#FJb#{m}`+@6_!s22=W1;l2WCb|1 z23ou#)GWKMqP>A8oQ@V#n?&!h1y#gl2j@y&KSL@4Nn zu%8Kv4NYfI;+^Kr?|^MIKC@j2I&V>;^xX9-g%M>mrd+J@n^3s?@g;AgYkgc9CKQLS z%b=sc3bku792ZhN?)TVh+%Am_D?{S;i9`o#x4BCMLsck|0nZ518G!vG(JyDRxdwx! zeF#usH+LNm*QpHf->5C~KxWO?AzWUsViljV9!h(&_L|`wED!ikgy!I(H|e zlC|s*!Y7g1=;rp%Y!&FZJbYCiQ)?M1xNSBJ)Mu`odM0I zBF9_Vc+)4ikpX}{cbCNQaIi7J3= z5uTJ)^n?~p1~+*yv5Q=U1n?k@bI0OdIZ}dhn>a?*w(5mFJlg!R9eIEz9k|{v4?)Do z)|ZZ^Tz!N+lOj^BRRTBzdwiGq-ehYMFv*jQT*rY?XzA-g66qZsYHJ>;g+jUzeJLYI z6H1LcjFH~cXQckoH6Di{R850t=RFX%OrO&}#~C>atDnH2t8QXom{Xgw(H;JgZ#iOE zzq?QZ#E8te0XhOUWXC^kmF0~B$y0My1OR_$=L*@dH@Gs}9fJ#Hi~}>m*r*UR&ZL8m zFFOPG)DaD4?sSFs zgT&>af+^Te9Kk>M7m43#P%d747y%M)IOuwrxoSHIL8&kAj)9|}yHrRG@xxM-3k`K- zre5oB53b_Av19=0!%-{k?gP7zk~OaAe*7Xbf10Kj3L_Jm=~oe6ZCOb%Vh1d~UCr^?Lm|C>N59gE=AEY5_O z7SbPhASw3whe&>0(_yqpdi~xWb3A05G03~8CJgKDXZ6}S``xAa zF3@_|=5CE^)#4<%7_0~Z$F@vx&UU;-^fqM z;}dNcI&ZV&6$~Uf3-(cUO&?f}uBf~&70J*tEDZeP;KFICb_;)bSe)mpz#&P9fxNz5 zz5(5!%IFb(GR|Q8{}ed#F5j*RUf1MJib8PTY$<6<&7uqxgFfJD0Q5&n3?{pPE3HZD zJHYmQL<6X+TcthS&IqvPN&oFCht%xaqR-Dgo0EaVHy(I|{Ic9XoAV$Y7u!fNnXt-d zVGqP-+Wx=*+toOq3@E)Vc`bAV#SvGaw83N{^KDMmI;Ne^(}2=({w_|FXj*lzaox4~4_g zQnU91DUMo;^B4XWolEXNZyBaoIYkuDZ&zbxaTxCEmnukY*Q9*vd$ENMjOI)vJrA-{ zTnc3rZZKpmc(%h3bMs_?$zLzRFx+25i&8gQy{lrmoLT@AfU^~Bw|^}zx1FPUsuNgz%I5lrdxK*oI&+| zjjRFQ;9e2cjNI%ARolUj7@AQTkeQO{f8ECRl_32EI$#J4Gb)`Rrd`gu8EEbq4|g2v zI&L=}MOhSOS$r=_@e#ccec+|@RHF;iC8HHV3M?we{e`gPE`w=6t^esChz6*#favE< zX{s5Fmz9bQuD8-0XoMTxluq-Ak;%C;V7WxvgSq^Z$PM|Hb#kz7ig*}at&)n!e-qK(syP}thc73qT$ny z;2}Rqy3w6I1xv;iv!;U#KX{puDP0=z8WIyB;36u_xyK9u&7noaA@%Yvg4nF zdgJb3a7fACFxiI;F?=EGJXMffkCf@ zBVz8D2m&?9;f(f~w#KAy@t;ubwJ!aQ4FuBQsRLSh%$g8*{QX>8Roy8&<$OWjh**a) zfrUdj54stZw0taMcUziFLc=mY8~LNbpc2T^gB0$?ktM($D>hH;Lg{hnOa!`pwiZbjB!6#?af^d{So(21PQ^4Pm}po! zWRF>+Vi?{9Lb|;SNRog;zM#Iq;gl8nW1%0{oz4pd(ry|mJ@DJ%9J=eU6}a5wb>201 z*j3}xJ@93xC#ir<-Tm5&%n-*u)xI!NmJ#Atzo+rF8w+9MIKSUURZMQm27ib zqdM`^Zdy~;pKM6!cin%(m;S6f5!n#=eV!eSG*BZBL%vZ?%F!^emLAeq6q2Lv=#Aa3 zKXt&C8itUiCI%{mYZ8Bd5dCCXyS6hH9gjHxkM(M%AVmuo)GGYGO%aqhNhVr)<8 z?x1}*;Vy9GsBB%g2IX6E+AJ}Y&@x-mlGnITu=glCPeBq!+vSL_|S=B_jM8(()ppD3~-jgh0CnzGmKp<%HFD@z~f|g@E-1UROaoGDd@%!Gmwa{YBloGuo+8S-+notm6 zNz8Cua>c6ftCeH)G^)5$L<_Fj{fX_r={4TQ)at&37f5z15c&8bTV><>6}J!mgN-tM zHc#tv``4j4D(mrUdtUEVPR8c-%Ux*GBri&6aLfCDxMb8;(Dco}Sky!??8Pu0LjNy~ zrk(qx5Lp_CMG!=&<2hP~elZjK_71>&Gm+SnJhOo{5xBHyNg)?4#rO@WhvrAMwnbzO z_PrBI{qo0>;fcXvFY=V$4jN)pfqC8196N>ICvf0W6I|!ZnCQ~+$=b?uTC+NQ|J7{q03EtK`e1CuKfuSGVR zr?8afhJs-hhFLuV)+93vZe%rg9>`Q&@k{t;=tX;nLY!X|&|El!tV5^bXTJ*pKUNkv z9_{T=BrO=TYy3ud`F1V-d^<&ru+lJ_=I>xHYx3?ujne2CMPVljx<`99kYxi8;4Yw0 zbl^?b795V%XO};j>^R1rN@EdLBzPNr<83wn1>~t?xUX#68R6)>D+E{%l5pf@$O>!W z9lyK0lu%#ZQfWXDm{gPrPrV%jsU@tHgF)wt5?6H6HtAy^4#uJ-X$j77+b@Pxo_2i$ znt5cgSM)k0m>~nnEe*$_xOLl7a69~}M1usY86ZpcmEXdd`@7(Q`17qz^M)-hp1cd}c`WW~vCe9W(L^_Cxfka;q^?wL<)brmM zrSA(?vzOspsVmqLEN<0X+!onG*oARU^kh~IuE%o(CKVvC6N~LQu%W|z_BfqgwUr8JpVJDT` z#K?Q&p5vC+uFfu6h@h*OWZVL%s4dQmxdjU#1=xv_ zMT82UK()W1o^IRrRs0`)OlGA362vOqW`?bu)(1MSt6*evE|RsnguyJ|Q^b()&kWj+ z>{72t=4_ir6vjmo1o2ebKh- zu>fZYgk2p@PEL}j_Y|I$4X;|B4jD`Rb3Hwfm0v*6<`1Fn$)jpU)Q3+v}ulPX#jR>HYFiGT^be4P`v9 zl1|_h8MBz9Jvo1TICVhs$%j?CBH$8%sB**#Ifu! zP&y+D3;^$b+JHcQgqx##R^!*m5Z8&$JN+Q6d$F)-W6hjL|KpI7^yVn7-r7NU8X$nb z#Hi&is5^El5CWSMC7cBhYEU-bYAY%$IFRNrgK~`D><6NI+ura=ZEL?&Gf@Ji(g1Cm z|1I{utc1sWr&U5Hph&nt-;07hWxp(`;NDH9wXb3z+w{kD`-AHp(gc})co}+mMxDzXZ3L>n3>hd`0u>Xe__+Y1>tu3r3+bA14EyA2nz~|{GU_r23rD~DJR05(!!v_9+bB(l5@=_z#7PAx zupL}7t@1>FdOsF^uKXMok_V54MrK(hVC&$nvZD5oRC`sh@N+0`-K9L+lam;L}l*!dBIX=p%&k|7>o?0UV2h#HZGdjrqe6(v-0Kw)+e20gS41MUm z;E0DBwtYNgc^5DISB;_1x18#al@HenlbxY*>~cUT+#QlAN8iafy}KHNw)fKr>8Yyq zN!eeU2TxfWP}h!WatskF2`p6Z<#q>sgY(@ed5fIg)bL3=7uH%t?8`+ECrjvgLXDh* zyTq&cGwH)20BLZ<#h1kq`#-&nMKUYPol{k^o}GwI_R?B+BG9$T2_w807$o{6bf@0I znoCNg7P8-HlS_>7evN4e(7dwZTq0 z^icj3O*FQRA*N$c1`~C)DZ(q(i0x8JZ!V%)R7kBGbijTlJ6EBriq2?|*K`K;ogGgv zX~;a@b^7{Ng8)_x2<_X-_rK3mrhWvNkt?!QBxUH@TeLpYoMK|ctd)sE zoZmaOmIAe}(qqy8u`sb3uugW1!ugM;Nty#<%N;j$tq@qj8|id1;-BAKotX+Fe2=S^ zpxWRQIu-*!O4DNMKHm+WDtM~RNa{3ysg0qga_1kCZg=5hD9uq*wj?)>rE8hjxFJ=X z17U4Zq*$M={%OrFAZenfE+^FM7T^`ye2NJGx}Y-uf~A|$mNWB>&Yw}74}jihtuTe^Lox0l80qRaQkz2 zKtn!(O~j5NkaEQ9M#qH0S^ezMh-Cq;HmEpNwQGx=070plK7HC`{#wy`Ax z2`~Tt=E{azu+1RS$_mVS^c()$9-U7nczisLYWB-v0K92#T){Y*1rfE(F?; ztY|CJy5^tolrD3wo}fKx@1Z6}wk&^@C;BYDru`odQXlQV0eD6g@HLu|i`a^buZFz0r~E#f*iilBtO2*&lhiaQ52(e+Kt@e3aa(l zbg1Z+_FXpmVRcqyI^tr#EOFG6EAR>-al}{Tn;a#-`oDbCN*>Qf$pqJ#Fj^L;M7JsU z6*pN~GH=saD2I6%+UXy!@fGDNJ9IiK`qrXm4_Yccv&&Zgnz3MnB}d2L*yi;kIbFsmbGMP~iBtMfg7eQY-|qkM$9j0G4THme zBHfsD7pG?5W}Kw-%G!gEN_JrhRhSW7XtA0}T^jA9Ir75VqT!Y>h0>$xLCTmeH%BDh9wyVUw&iL}r(2F_@bZo;YP9p- zS>A$y*?h;E&gN47DPUevdhMr6c^7hTm-Ki3YWTHAIySy{l?az@9T*m`xjg;haTTqh zZ_61=R45OjlO$SkcYbNbB+Tan)nmYt8I(+{#XQtH;G{oTK^~&ULAF<+U3SbMPzK&u zs)j@IXI8nO`NfFy_9lHYH)Bx5)i!L+Mb`rOr%1~%1w}7f&Nxa!u94U~dt{AZ@v|)n z`I&>%506c_4R>Civ^`LhQqJbWP8JXZb%aUk{Vv%Ma+%jL49BRkyNjuorGXA2Zt(J7A67 zqXE)JeX?r+X@hyYtde;XM|q&o*u%7FZo>r?d3=IqLd)7nyj>yN)s7!`w``}h9Di*b zgy0EbCnsBmHtED?dFcCG%ZmWKG4eMxP9IXT4K%ORKEJ~F48Q{Rdm@<*8nn?iMms-I z&N~M9sJ$G3+QE$ZZDRB^kxBZ+_7IuuF$0d#lzYug*Yi;++yHIFQXycGfj!-g(G3RX zD~S2&$56rH@N#MkFrpcpDyS_q>dj=jxr3PDCcCX;a7%CeKw$j%uA+rjpyoe!1$wga z+>PHGq3?Lx;|r#~Df3wq{A7uUuhu2pgT)S!0TFdmk2iw1Bd~O-zGPW*Ge>KCd87i8 zpaizmgJM8;=go3bM!EiBx0*7SMjzjysk)xjzJ7Q*slhY$n|GX5s z4oGMyyi{p}`BPq^%vK~>JvtyjcN%(A@l+Yn+<> zv>_<%```-{PoD6wCx5l9)e-PeoKc2-r;q5EPlmfD=h(c2UO#!V5tG|MPe0t(Zo)dS zAhtGzhRiF#Oyd*4CV-zF{s_$$tlnM8q6nNpoqDz%p9o({9adn$0MuCEItgAh`fr~S zGmEa)oiOwC>6(({)~*)r&^KXlBCTDAh@;dG_`LBd5g?7Q+pTvF$K=%4 z1SpteYe(|jWJ_!&%7#XajI9y*L#h?6fvGfXe}Xd3o-<1-Leuql1=^tBIY^Ra>RE_W zEN!a0J=wr@EcKFPYUWu0Eayo%pbU3MTi$WZl-0r-H2RVc;N>XpCR8SIh$B-JIP3!i z5otKru68lxTyNZB_zW^n8SA8Te-peO7gk?8L(l7*#`pesRpJ|cch7$POVVQbR|-8u zfz>mqe^&HVxNH89b|j%Z^%KVK&l@CyayhzA#0YkJbkO1_6MV11YWnRkvR##(3# zQ@Eq_c=RjO81LXQxG{wRV|z9%C@*U|DS3|C$5PRN(&#`bspwwHF+blSdmei_iqwRNM;?a9AkUEV>H650K zoa2VX>Mtdvyi>4rRil$zEZn?{CL7u)UREG>!u(aNX%eNF@k6>K_MHAoSY$I45 zj1SX%KP<*Mee-C9BravQB~{@ILEh4a^{P_!%j_7<6=WrvuzDrGU@%RgD#mp$DaWFi zThBg{9pz27$}v&pfwGpWUM?sxNE(zbZYyfwR8e;U#c<^rY>(E3CjD1QH*@E!#&@tv zVUDnorNkKDYwUXQ{Ct~y{V$VJywSsyh$M$0P$3Rgt1U zB&?K8vY|KB&rZW&=nH9CuS}^fUE2Kk+<>onTEX~|3oB~q=pgpE?hfE~O?=6}hj{(J z_wFE1%2J5gk>yvJjB~-~?%C1b6|{yAXP!eOBzl zLOw(@e`pYrHI1V?B$I~J#=<(8O=P>tt6+y-4Vgx!?Wx9x&`%T9cA`y94iXR> zF6pwRVw4US*SW^=sVW6>T`fFumHc2Z9|Lhwl)Vu7S!nJ#o3IuhGTi9lFmiu8h;o2z zoXj`!W0OaT$C=Sffkq^2@jx@EZoy;JeU@qxQ6KKoTwc{(y4knjt5b_qi@)K$#=ms* zS4QHL3{-=nwe|;RZ_Bg914IhX3zai?d$b8g+NdWcFbBXweU8ZlMZuO!M-7AT$*g-O-6?3bKZrYuuzEk-e&#ay!`IY}F27JbI1k z)MsGo(49)^2`EpbovQl7AERqFb=MQAZCLJzuj<0on7SlHMcP;wTZ+qR`O#WozGe`s z@AaWB(4D{{TCR*x{PnEr!m_`MkmsFm zxEhu0A^xRa-QWLr1$(5*=o)N!Lz0@BG7o{-2uAb5K)JRJEdD#$8C7q=*q4)l$x12M-R>|kCQ|Brf3i8mZz(2xR*(=oGRfh@I( z*?I~Z1D{DwKT!``^P395`p4Z~-S2l0GSHDDbK}8Q`c{9zux!!WKt|k_4wNh)rn7yTD+VmmqK z5O-9y7sGSeJ}>AkVBImK3x#^Sk+@q&GwrZxmy&A2d{4XjjVrtQ>p02L_{RPZ4C&=b04dqge~`6G1X3oE{kfVUunTl zM}hPYOTl*EMgrp%*0;Z41E>uG9} zdp^;7Pd4Yg5!p9zVmvTq5K~hAVf;ZEjf)PI{ zBxB&XQ~E#EWc{!b0wM(g<6bgG1{_Hhzjn&ZaCOJd>J5*Rd(#VjSj$ql^$(Rkpkhj5 z$Wh^lgggx0q03bi1??3bmqooLJ^2g}!;~Ft?Kb(8HLB?oO&=T-uf; zHH)%5J{;@1_akfiSJKT~ahctlrxCjv%zSbb2K1NQishlqDbt1RqFZrmA%c@nmvjT{ zqRy>kL0tF+bFG%J1THDR=WNMhOyi8@9-h%e zO?kxMAG$^|#QKNHt=?a?RjL%AIkU^o@#2~Y#9zyPaH(W(JEKBtzV!rUCJ}? zIYs4#Vcb*9Tz_9X)0mE`m`AvK= zJ?F?c6uYq@9 zt&S-!zTaZM>(_wItW;I#S# zQkgmyt$q@E<`jrkckv0EZ>D`M{h+kDCWA>>Xd^Uyan;-1>|=P=DOY_QZ+?R^DI7bd;=g!DUN{&&kp@(?1vpV0HcxT%}baulJ}>W zIZhA4z*@pe{10WweG~D574p`i;|S*|6+hgPB2;$7n)3w7jZ*l-473k6oDr)x3)qhz zPB3~F4-T4axQAqn#LB3!vQ2GEsPOxUR#I!>e+8u&*X7nF( zePTh??~7|f`iCtN%T?^Ua^aHAR~Xo8T?G1mD18w{p636uFcSB=%)5B`|*R#J?RL_qOtlGtHF#cWCAwmv7)|SmK07A6^8+$P=;Svus{N5hTkantK#xu=`A+zJ z|8N3O-`VK}(xusL`Lx3r>~}Xdi)@7=zBW8Fje8g(%;m-po2Orj@M6I+Oxg|kxX+-$3$0{JUfZOK#@Rel9zKNBl!(F3iL%uDir88 zEwyTbLb3F*&pw!`JAP-;aSMbNmR(?Bj-78TUUTt;EqhZUPsA0Do7|m|HamWS-UpXV zB+(TIJo8!cUcB;Xp_HP&N~lhhos1A(q(*_nP6fT;o#K3@MoNGblrf){7^At05WhYE z4Z*u2>A-wumPxodHzAn{jb8HK9m&X@d6t9NYfHA7o5%6prDT$Zhn(b$1_A{q2BKtV z;AI@^N(vM5Q49>O5`2lh|iO||4 z>>@!hxclf!_9^dbdKd zwXQu!;OH}Bnp`m5+x$K>D+`VG)qizzb-=?GXY1qGYbu^PVf0R&PC zw}~fkk7Q8Iwfcjn1ZW9Sc6X9A7*6MwEMW-2X#Jpemsk*H>Y%M$K{9H%a4X;=%&6N_ zu{%sbQ^F(_WC4DBS)SRHtU*@XmRQf5?L zH&v8#V^Gol#u1?4z00R1{;(k3i(e+uh!QCOs=BFY zlf|%wwM0jG4Buq4Koc6Odv8#9eSTHzp>Qx{dxPj8E3b|a3}4&@<20G`G8S-yIXX-W zrgB?YgOb7W3yI&9ng#EEck8!iscB2TyxIh`ZVn?5z=UqRTutTYfN#+A*;9NF{|?WD zupFr!_HFds5cQz|$fi$%8M81-sahW@?L`K#t0YdTjODq_m6tchfk~0yk)z(3%J2(D z*g}cE1T9EYq`&U|BY9kmBbf+jgw8_O%Zt^E1}Q+kBw8p0cAN-LuU2omR{w?`)#oA% zT}fp(BXkp=zwiJjJ+`7XK)Db$fHfz$lJNf1_<8S69esDb+R)MRqSvxu{EdkCXABRA z`wVOihGM2CE`S5MYFmF|gqs^5vW?ugE`( z8dY7AeDrR}Ts0PLYZ3M=!5v2OtA}3!=2mU}B#@PX@Zj;vF7-LA!#N#`^dj2~D`oZs z^9)pBZseYuk6ki+BPEaO&cz8Hunt?>OIYUGFywhIg3gNKQEe#prl?V(312=YGXYkn zY^6f@hHv_#Q;CY__+>9grWdJSIqNqxhMwob8UrtfNt7hDFdHfU)gkLLLbSe29wiM4 z$u>wwbvyR^q}7uft|{ji|HBQ+xy<(jT~Y~s+*N!sOo9RuaGG$nVCDZy)l+ty(W%Iv zf(<->1h?y1lQ6QWuAdCQ2zP_yum|KYOx*f%?7C#x&j=mNA0#@70^^+gxa@Rh!L)tM z=V0YdJ9e0?CeAuvLZ4ec*`&lo!bM0v14^ir{fA1mKNi+F8!AJtc^qL>B*Qtk?f?a` zqcu-afwv~Fx4MJ7bOL0?ibT0EBn|Ydr|HDkeW_yUWzB9FSUiQoCn(bKknTM$jiPaG zuFy}ft9U%QowUZ7e+jwYh_UHTf-SgJhJQ)mPO*}MZTtB<_D%e%e}ndLqec2(iW)1) zC!VOZcT?^5`Sj}b6_AXu^9}nD2VVw zfL9ok8UX4>XRCS^aAIs{mQrK87i|r}(cfO@zf%~*w+f?z-jKkSFEsskF9@$%- zt&>5h8%O*C+Lb7m?KnWh6CZjyJ^fihDax5FpC6@gkDis-^8m}_s$Z4Q%F^MfI!nsd zi03=7DcmxuR;dW(T!h>72qb;d`F@&(|gUz(Kv%4hZid?&Uqy4=hW31p-Fb~i(e z;rl>iS>=Np@6xD_-K>)esix-aCriX%%}($ zr41d6M!308H!~E>u_DQQ$DxW#$wA1ppK!0WdO&>{zKJ_bCop>gk3?h?900NeV(-5Z ziCsa7T2@=_2>|2oi>#=;KKa-@+Y@OsV(Ua)X~`5(i7Q_Yb6Xc@BvUwODE~{y;wtCa zKyVVdjBiXL6=w51vcSJg#Un09;aB3d)i%@vmrCz#G+tnCIi?t+cvv_ocRn3 zXC68%7e-=me&i>1X<0v-Rb(>CRy-?BbTeN^?rrRxMtsfJc4|gH z44S6m0Hmv>A_~23S9t%>H~cISN#o$E*I$uKl8*-{Fxl=)uQkut9aCPXZ^|$)?si>P zsOs-{ce^#yyG8&D1&NLfiP|`_ZA(lGPMQ07jhhz9o!McHxJ?wW^d>nXzv}H8zFE-u zBKf10th9Uhd6N&3MApS}@PzdwqLDoNPd2nonhfOIeaFJ8sydyJjQg}w<>cZ!%I9^G zFMOvwx34~3!BTZrh_=z|kaz73-G}?f`rusEAWxSQf=jt9#W-lUBB?E-K<M6~+cVXhTRW!Z~ z%oierWE~QWxL+M+Zvjxr?ajDfm~|nzSECKarfpPOkG9fqOuRja1MwOCd#^C|-3Uub zFad)-b3mw|(f!aqDrxTFk~Gy6UMsc>#t#L_MXNe6J`y@t5xDY-VHTT(2!SW;krwq{ zG5Ev1l%1P-!rK7q%Yd*u0&<@M65p|hGd4ELB_PzXr&7r0sYI?kXs=0`4TxgnnnweQ zA`^#~JE@Y>tVCImtsdR2*CgdxG-BavTHX7qgx#<>j@iJSTF1myRr(IF?`5~cG3#Y4 z()@EwC5mzfHFE^$(4V=5ivc`emju&GZNH)jg$N(?06YuPjz*#%A*B>r5fU2{x^E|U z7K1y=I&qAG-~E`lOu2cn+A6^l^-a%BB5-B-R=BqGsJtcdIz7-3Ir`ZW_4Ssk<&?g( ztFu%WmI{xOKyu5CD6M5Q$=Up5A1Li$D3Ly)8cT<8x+|WBF5d5yf}j18gS)#C`B0ZI ztU}YVd7y{%xzO_%wzZ%az-=?`(Tk?`1arm-t<=D2NRw_i9ObI#m_Mh|;$v}bG--F! zK!17z8@M7S#BAu5d*lIdft+H?%_euZ(A2KL0Va?@*&t#z?0gcBkO4Y%n|4T?c&q#c ze7|5hK5NyOMsYR-*DSdy8mn}IyIW6-vh+#14Sz)2xAIyB8Op~biYno>MbTg13>pb6 z<3_X@A5VL1E){!yMM^vPf?qP*74nc&zmL#QyM-^7 zB!LA9%fX`+p6q7FFbeyYRq-Q$tB01}X4fG*6+{0E%+{=7Kxc5cqpjZL7CwkbcseDdJ>1IH)bgo8et}7?puar7&-@VYDw+h)XZb^$oNbA)wmAzEC%y zBxeD=JY_%z2}yeGMt|wrQ`uJh6hO+N*JqBe*IhST9Ji>g!LT@sBPVw32IQCxCx*A8 z;4|g>N9iy~Hpg<0c$%iMO*~1%W`Kk{FZcgfe%2pJM zVicE*rpmpC8xwBf)s?4EqBo}Yl2ANDm9`9bZ7pzLJlKDlAzP44dkTVMD%gXiQ}``i zRI9XLx0toIr=_?WYExK1hd$1!Te+VZph)XyvU`PL#-1`0+fmeQRg0?ZVw|*|$fr8> zDYU%9Va3pjqK8`$1E#MtCaum;#i5k9Tyy zsh7@XN7ABhC&mYa=(iFfrH-YastS69yW=(Um#)|L9V<#PpMi?^2Ddy^nV*!%QZ;~~ z1nOM;g&5F>0;%EdeT?CwO)_!;XTOw4^iVIpca1ZH<9N$`gxT^D{HY4H@n-bzGYGK_ zZTz?J^Toj(_bH9I|4eW#R}wx^QecVRT7y^Ex zFQfQN$+alR&wN!lUQ(y<81&~#9C+NoYKS>u16yv#vC4Jx!+5TOMc5vY8^Zs~(+5nt z^fY#)xg9n}VkDV)Nvr{CL8nz@tV$utg*f4K{#a zBZOt@HV@5bYQ*pOBe~oJevyC8{T^2Pv`7=<2f?vm7VefTKX?#e?btyEo0Spy#MiPk zpnoxeG{jX#VyrM+cJdu^{_2^~ zO>S^Kj^+Luxfib3f-dV;#;;SgEc2}78LEog1M8U2L|}0ixK4WVGQNlpySwTb;C|l~ zV>KFjyxiclqyKvFicUz%2@j>mvc-u_)e?g1&SM!s&-VWxBN&g6QEv5!udiR~;j2+> zmOKx=a>;&*TVQ$C?hk53Uc#Cq4;7sDBMK4<5QRJGR5= zP;tnt71B)-Ezc^N7f*C1YVzu9zI!{Z-`=AyaHutChF7Wg?*P^6jn~gKJwqa zFNOOajKm8-Lq=yG_yNw%(#7kf}d~rqnPj&Pr29#1x*NaF5Gi#IerFEilEG+}9 z2B97a#K?5naS1{`xv}GgkjyTt7|{J%KSx7xu6F>3?frHGMR~_@0$5S%_IZUx^0wxt z9I>j7c4}-TnTf^43R>z?o$42(ujQ|^=q$6{SP6Y0C5&iA)AnV$7VUx*U!O*LkCBGH zM|&8~3U}Ol@48-{IqBOMZh;eIqZV@Ze+Rz@Y4PR(WVd`i)EeMhVjyatx15DU9MTAU zVj`xus}7E8ov0qa`X)VlXp<~|OYIZDn3}C9)yX;&8|w3c)c|L!s%?L8XS(Fb?04LO z-B%*>@Q^Z4tCd@LM6cA7QAFY;vb6sPJ$MA>1Mrf3Q?UptL=9AW$5(PucOCLi=j9H` zl@nx0=lyRgzT%(Sr&q`yVBm9@9~k^+fhGs}#*)LoANxGsHE&r4%Lbo0NPf$X1cyrl zI!1MoPgE4fn$yv#FOL>PA4}~4k$}XzOjQD(w3K&^Oh47TgL&QWfPBvaU8I669VP-3&SI0FK#^g(RwC9%2aX8TTC=Yo-Cm9G z2$%!{v8J+TptW4UECI%?4~TCZOHSBy&oN!P696u~kCis62*-Zvb)AIzcJIi6(OyQx z^-zdxZ4t>8o!}gw7JZsjtpsoSFXDI(OXaLo5GVMrGeUJxhXotNO&;vXP4jvcZ|o7E zhQtK$a!ECax2?Q)R~1m??+94RA^hajbi9CoKUF^F3>wS5z{We5xB>|i*- z1Rc!0G`Ay`KRgcsjWm%8CT##2$K!E|RKye(d~j1au1KF?&~nyu)htyDq}EgQ?RtM< zfQH9JD+^}sPlhnHPsi3NT8EzKF-W**OQ6xQ8OuLFb{mVe#{H_RlD}FxLx;54`R|Rd zoQH2X%<>fZu4;bn0{$`_LV;f}Lb;d2J>$nq+85FH6cD_9DwLdR!YoX!dcf+Vnap2( zXnF`S({@aM>j=TSo{^6#an}u3{6hAa^HVBSIvgIW$~+JXKLO?JoSqNU1Ir)Z7AvDl z2UtGn%}2H;>R~hs@2pC8iec6ZWpAYcnJ35!If6~9&af508%pW~VZCd)+ILYZdRy;U z?1;I$E3){*;8T0FgR(XCNUoV-1;w>~*2J^BtGj*4CVrtHMk8zkpK#&+v6AV^06bYQ z`=PAlXtRxM9M z#`x+W>{!zsQOUj0FzFf@6OoOu`pm_Wtvy;lu|xlFtHh$}9O3c++7&bhR;OXGE}({r zAB^R#Cqc|4$!!+13yV7Xh9;gKa{X z7K@HG{y?D7JjGcR7xh`o!9}AQg6ZT(zCr9|r2 zo@<7=A|hS#Xgv%eaRB|~*8!i8^=T9?7}<>{fZBFMlOd4Q#7w~rj47nOG=usW5SMxy z6KLOy-%=A_QB&%M>MX46;!MhR!nr3{{Xtv9L3SDAbK$}JFy9b=YGKR2pw!oZCmA{6 z|Kb@2wY!J6X?6G1sLQsQ5M|u59(_&(rt=8q|G5=`=LCcm!A+Nt=5G#{%e>+@&UCHu z&8tpyRUqTPH~|AD_=od^1SaTdk_!SNlYwFqhK$1rhjy{K$yT>L)`KigZWyz&+1uRa z^M`DKfM*^8+4Eu&;D6OG^DgI#NTn(~uCs z-2r#t5vWSkWkDjnNY;+f+Hfz_ek2Y#4vERr4)d39aH;2kIYsw3AVXe!hLAwCT9yt`{XV!=RU_=tf4hM9nk9n1(XUyoWmdCp$HeD}wB-8c&m@ zDbOT}37dsCf;^OQAV=W|;pw(Qi;rImD-<&-%F|mFffhBh$7wTo-%d>ZkFlzN$C+rN zg}f)B%Y9YM^-c*~2e8V99-^_mt$U#dx;UZIwg)KkHIT<5e^at8n)LNlAGf{a89<_xl#E|3*TN>VD(B1`97VjTlxAj;hGfUPZ5xw4PwR$;__)v3B z>_8w$!3ZVI(1lw#rjevX;54LMH%RXsvtDIVz1(Jr{X1P^s*j<{fSMu*o1!ugicQQzTr_1Gh!F2ZD1Kwm$V!L>40=v(U@ z^0S9JrOL9ud8`Ob_P%2Aw>|msu(C>>YjU)vAM7Fa({nw@On?G<6rz!eyqnJ2HrYLqf?LG;_^H@Ge;7gwD@~R>Z#|K`@$spqxO74c=pZIm7@LkevAM zA6-kN6HA`2a>#-Vt*C+O9##ZAtV^ZaVq9%B4BDyb73x|X-y^XViess4c8lXMpFuHC zC^!u#d^p+prtj0DcbAun=xrGgnz-hrk?Vt#zuf2Yf?!|8)1}5_vp%AGbS5?McFKDe%xX20bqW!RG$! zysPC>^Rk403QO4m<3BSRH>p|xSr%3}rC*vo(ie6;CV5?a9BGVxDG|$Igh{tOI3NJ9 zZa&LBz`)97sBp0WJ+I;9MbckejS@!E@)|Fr79N7QEJ(Sn?^fO!B2@~}oj-u6V}B3r z2=Vtvdt>P5y&#UmFsnVV*^K$p8wIB69?KS5HgkcqK-%JpC^S}gY7EpWk}T%9LPAdN zRbfsi+%?N=fAhp_H*~f6%#j8^6dC1Bgg-=wV5y6z3-%_AV~qbEG-jqZ33orMfH4ZdMY78y&Kh|2JxbTwQTb7|knq(BZHN_#8KA*ha8~mA zn_Nx0*&Tx6wW2c}iZd|Val3bP$~@voFY*onaj#S=s|b6kskfwphXh_>yKslmbZ+iC zHD*#WDjBEfI0D90BRzeGSLU&V{HPg&j|M)l;!Ze81kP1L^S#b2z>qQARVShdB6D}C z;W0l1CJC@Gl=~>3IkpBwcZw+rUcVr_q0KzMU>d^D!L0AjCeKUC<3VBc1Ckhdp2f+a z8&tZauxA?#Uzc7o6r$_o~CmiLJ!$^PL1_>Mxwa+^amIxyeUR zgN1*P&a6yIN2!(Dm;9SLZ4H+U$jh?F`Te3pFAN|XOjU=&&BXbjX{*4ny(R{*%HImy zV@Pc#?t!^xT}DmHo&!vhd-zR-de!KP^c)G`pF;P^vq}lR_czfW8C1ii4kM~*ROiuC z7I)>pD{_Y`>NA)9wkj%Cj=Lf<>CfOEOeRWlMN3k}rK5P1>eY$pM;eALvf6tgMR*r@ zKdG@S%2zF?Gv8kl4AsK(Y8)sci|?|@a+Fl;$@T`6P zqJ_xyf!kNth5?8r0%2V?D;P$R@G|$UzOe&wgoeSD&x?V zcy?!Rr0lIW%znU2#q=L=M|(d*y+jkh7a3E=`T%zxe&R-(GCl`*JEYRyo#-4qWMoR5 zPZRAGHy)qF_94Ng*Qt>-GfhexH3K^+sq0NkCzP?06e8DP(UeL4kKiS!!6J$sq%SBC*;62Qd##!SE)tFDcG**L>wTaE!BC^hO z2ZHtN`iiyMq}XPDa&`(Ek;GT7vq2^+-PwyXwd>^$i^0}Qur$4F?H+)!qI?Es#H)kB z*(7g^`ExY><-_N}Zg!#2&-LEpRUl{{hotcm?%Z*gsX^ z6;_b|(*hj;1`IrnQt)4z0JBmN=ho;EZSL?)q$SOPwG`la6|o5*+%V_mW2Fm4TWRxI z(!8SpCS&`P_$El1?R6;a$UW%;E^PwyiXoYAi^#P2#C^k7>!l3@Oc&eN{B6%FHC3Cj zc*Vm*W~&5W7t`!mXB$W{xMHwd_n|l{MviV}xc_fcr@l}4T2CU zLw}>ySRSgEWTxj7ntH-EMblm|<&si`s=gR0r8@mQ<4Ej{E%8-GDKf;-ChT64i{Jy+ zMjjfPCV|=ZWpQi?i>f{E3SaJ=VfatHV43s8e%VGs=>j=gWH+{t=v6qe8@Hi5Dm&M` zv=fw){|*RXyV2yyduFba!*v;Yamx=$2PV)5N9E}L5U-%Ac}--ktRJi?+DT_kqtfGE zI%ac^edI4EgY--M?Iv;>326a_W|L9vxETZv;eK|++5<_mF$I--?IU-Hu5?yOL&amy z$vpmWeH9_nQ^wLTc}SO7CmPT(X#>kYsV$8CQ{sWxSqTwyN2>I$@CnfYlkH5`(dtLt za!`$e4501#D*F1|_|J3cpeV$H*Ix7o7p1PdNT|S*7?BfMUCfeNPIcayRgleT`Ru81 zXdXCbsxq^UsEZP{o|Vc!xHiI+CEt}sDM2FvqDUF|06PUdbs+09RNV*U)pofZRpBZY zaWwZ%(t~*FrA;g1uX6sUPE%cRYSV1FFkCX!*9o>}05cuG7cVeatDA?M7ifz!J~=Y! z#^_%kC8k4|Q^L3$k{+3U=qcIeuFV-{toD*aG_VY{a{>Vk?d3?l;S&WpIX-W6bUm7+ zdFe2@Qk@_HUZcBf5hi-#gJ;T3rw4B`Y9Og1&Qm#+r*b4x+c;G4VQ*+kI4{LGY}%yO zpl8=UN{zwU(mHUYYCt@Bb@eqp47_5y8F>9sJ>t}fWM7>)>j34G&@S=N1Hl27d+J6e zjxCmB6jiV9aK10Kz9i$JtWNvUgvIySaJ*8J`>)H~oMkaed6(IiM-UFtlTnnoxpH~P z?ZmK{oJ@#fc>$`>=>>_pgpOtYcDSuuLxs`oM?gR)gifJUl(_+U8!8)PWJ-hUqwc@` zdaVo!Qf|Xl&NcJB|CTIW5^;^=6K7`rdWO7seS@ZHZOsp{9Ov|53JUL7fgMMDRxG`otaVyvU9R8i>SpB1DUS+kHY(|On&>O zKj%IW;SmtQzh?nF0=J{|GM}Gl%OhMVpu7=ek-AMi3CN{gt>w4}!KnxaA)9!Lo#Af`3{|rehr!hl(*K=>^0vA)$fjE3D&7Lt zD*a29@@2|v%Yj~dpVX0;G6~!3Zi;C`r>kwX ziIgQ6;~0;-3`QRA?i$s}7e!OJuLlG*eoByckC@>C^TWQC89dR-{N=}n)UH}6_;=7V z4%g%my%=C|l+86(%7gCktIiHAU9O~YtuU4b1ULBwv8{%WgPB@1r52OYOhv_$)55oA zfPTj~4v}Rp70yovR?aF&UBU(U!sAKN8Ij_dV#3gfojZ2a-yE=F2eP?Hxzk=pFgR1l ze-^3JsJ4#_rJvWp1wgH5xB`Uyo=dPG%qU>=JsmyCN?MsB-8+ngyA+tnb~Ty6CdQ?cXc9~VL3R=Mb%Kj-&QK<2@L=lNviF*`h_b$fV!wXlRidM zss&s2IagG9VQC71Uc`|Ld$(5HsA5?P|17;KT7x@g@6^`v847~&sHDnT0mEw>gRKeR zy3KV!v?1n2orv0xoqt&LX9P)fjHTV7C1ck|-w0;R|23&;n4W_yORJ&-Mpr)Haq6h2c*%J`-{%iTG{VJk zG`*K8lq{M|kj`ktelD{yPdxyHc-`oo%pP~#HSJ+NYIaZ2G~n8b*I%`otr*qb8hODz zd8Gjy3|0H;xfLh~vpEp(h7PB0{f7k4j-P|}b&r{=e&kJuT>-6`kJ&@;;TPRm5C!Bf zPzOa#IqV0b&fl0Uy%`lGJq;oE(Gx6CTNFe_sJ;|=B!$N^EE6<^T~}J_Gk1awx?Ro+ z9sY${&EK&z``*?Rkr%%^iS6CWQo?=jsg?|OL1z~e^*&vzsH#zHkFo$Q5<*|o_yUsMQ zQD7ms(gXO3fXBPe0PCD2OoLRp0W&2}(`QZ@LOl@6`i_g)O}pikfa(r5)DIB0cSV49 zc1qTdu{eHK3){QM%}>z33)tuxp|vHAQw0b}?7xOS+|7$Ec|?&rKVs!jA#NZzy%BMk zK=|-W$P0s0#L(Et;`VVPi%QVmN&hG*hBFFi-O3PqF}9;5B0XBz$zofaBlpUBIxh8G zdlKNfi1Oi3Oxd-CJ6iaTplNYSTi+efgCM(UZZGVX-t6sAnUuhRcH22>ab}aE>vM~<2ad*T1<#~@KR@FPt)+Xzz{ZUm&O01#~3AYyI|L+QIU-sSp2V`B(`8643 zN-fV~Yc2n4oAVYLllJvgg;5v4Rnp)jt?K{tYJHES98egUTK|+mRd7BiI)N@)>J*c* zp~NWDUZCQa+k5d%u~&RxJ;g*t?jNFkZOHEsdWFGeqfEk|u^Vvswk}r$buGk7J{d#V z6NVaER59dsOp&_Z24bWpFz%)R4k8~R&2Cp@x-u$(_fL$?CcOSoFjS8=uFAJlI8931Q-p5%hT zEtRFhi3!{}dut%aY_AQH2@jmbqPSh_ABukfk6n7Ppx?|Zd8g!rJV*RWNPh@b{x<2^ z`meAFX5pX|%bNOP9%sOsrv-SfljrW5FT|@Pzs%KMRKQNs&NcK^n5c`i;gTXXqbkK5 zmcEux4;c*MHwVVc+o#=Rnq1{p4~U1cy0s1eStB?Khu1I&w`%lbWvbVMw2iS_My;M2 z2rH`HEv=4lMCNAWcy-;9bI;30qA%SounVkx95FtAOPWNuj>`uzvYUB`7{kCWBp< zwggfb0gt=7k&VybtgKvLc9lxQSDL=m2~Y%;C<&%JbsuutDaDqzEoz@oy!NP-`|akKw%7{T!{InGfdo3rgKY5aa&BSZFvxk)n(*zSgXGnL_CQ9XHbS z)Xy1acf68(v9=0SNjQCQg#1|j)HtBh7h_9*2-)DbKfisY=h+{Nl$dzRyKeQf76tf zzuYm>cBaijx`+Gf=yLyK>|=21=!o2M-Y~dI<(5uMQ@b9V0o-urA3`NjCTu&xpj>E6 zQe1d?VWqFP7bGiK?g63mYQ57nOTaKum4cqiv|aD(Df6LptEH7KBoH9qPKrT*Is8Et zx!aLfj`+Wbo33w`veG*iRO$?R8eYWjW6IX>*};^t*K71^yB|~ z&vBc@2J3wiA^MRMISd9JmJ>u7&@SkAc$z>KZstr{opV~})+^TlKywq=Cq22XVPAh# z?w`9f^!qTbh)f$0Gr~3X-tedl*8cDYN1qIMy z1B7&gEIQaO0E4)iCDT1~la~wK5(;Ks=!!i4kia;d&$SkCcC>)WSaLOs{_s6F;Hovw zAfS7gGy$XC6f$mnJTZRX8zUUYZrbtu*JdSXQBJi0iY4Wrx0fa1SfVZi8S`+6e7JE~ zQ4y%Cq%feksej=-96$ILA$58;w9qyW7HR}%T=;$2+cXmC= zj0D6BS_7C=z%Dvjn4_rgr9vK|X?Gn+;;8J3C9Yz(7u9e6OF1v)SegOeFER4!_Zi0JD%o~^ChZjwoWRDGhCeg3 ztq+4J+-J8HIFXEzqoPFlHgE<}%b$zErg5?W6zU@`d(<~4^k{+EZr#k3Ck=0O5B>3X zGtCcbwQspU&#(4vC|b?W0iI`hnDoPhU>qQ*nXXYPr75kc#1S#{7}X(RU*TK5VBLBc ztKV~5Hc9)lg4LT$4^Kf2SIOwu48UYqA=pdrz?XHf07T7ir`qgPkA|2_9Bu{g&_us{ z;UE)XH`OQQk#O9lARL49fbjzBal4s5y!2e&r}Q|@6%W{Rw`>s98E!!F7_6qC6RY)* zt=EQ4VZFW+{5@M@U_BEks4OgQo6hGz5iKBD;=q=gk-o_B?;E^tPOZ4@;^WbROAFgn zutsRx)eKO+!|S_`!v5pS&@|>=5iROe8GQK}0gI0p^uYuEt!;&T!NP~i_*Lsl2JbE- zUD|mOqht{ZxIJ5aY#|6xLjb;*eg>!^J z)}sJ_E2bF#!Mz_G2#{&t1*}uYcP*AQ4<>bnP2rhc^yKbo=RF3cCCqVnFd!N(JhYg% zLpFR&2-_IOp8{MFO&#a1qRK=ewfZ599Fu#5Y%j6It;u9+MnO~bA&gX8 z@IRwHG_F)e&DUhVCA+FD*;l|)O^#Rqa?sd<|27ciZR#TtSLG9~uJ-b#tV}6zz@uMf zR?raa$*~^>LnI#(DsPd$xUR)5wR4gyoQt8}N+hBSr>|ol?k*uq3?&pE$^l)I=ae%T z?1MZ^opm%liGTM!%qtMekGh6JX#9XOzRsM_p#WA9`kH84?*{l*_oQr12mZ$574S@z z2^u*kFBv^UZbYLWzt@S;W+;3REoRF5tK0-Vv#MD*;l-}P zgAJ(qTvw)H%DBVq@HBj|YomsS7bjY}bm{^mWz{xGD5;K6c{j?p!u8cmc9F*Pdz3$} zbh38cOO^^pxrzuR04+i(Hd7<$)sd-8q`vwU7X?SH?dKMN{UG^RiKG3vsl1vSWD;-H zE$E@>xwR3KiG%i!t+ewAPkUk)us&LAf&_`P`BJF0Vn5{ZDo2O9{lq%viGF5)<7z%8Y+z^#;xI$xk&yiV8 zX)%)B(F0HY!`nJsF|Skn$8&9l9k?KB*5KNLYd}5XG*-~WM3C@WS!54{QD>+$d^tOn z-|X_|X60QklFd@v^Z=xd6SiFWmu^h(Ha}D311mnMs?PJ7&5h!kufQA-@`a(})L~=O z5t=z~_yv6F?#z0W!>-IMam=}L6*f6*S1|#})x)mqWgE<h^#Aj5*@7in-F@k7iA?S^z9G$gFzTFd}eVYcPvcuq-e+K%6X zaT=j~k}2h8Oebro;{SYw$V?pl_gA&jFbNemjB{JOHwJn$W`VxbBp? z77Ee{GrVGqscpL}8$*BsNwHUim5Vg@GBIha;Wa#0e5Lk=dJIEeJ3_nnmsJ&61XN(2=%I0YHQjlKURQzR;fkvO->ESAU5Xwo{t*Ph-iie?3P@(I;c`v}W|m86 z%RDcj%^#dR@ABNwjobN3xT})9B-fVfclGDx%MPo+oytT(WD50te^w|S@QOZ~{#RiZ zYyQa@C`-yWQ2kzU$W%-ZESK}*faQ>mNZ+@ALgkAvY}ZsTYB7Ap3n1A`zBtt~Kv_X> za95Md3sS*JJ%m^=Rb~G_R#-v*uITo{FY)_l!4cd~n<48fruW;|3-p&9Fv!%Jp`-5h zB6b#O#|YM9S~8wSNIR}pdiu{W+!~+Y+ZicRs1*X}E_kl|Uf+D?k^1o5k2<|+i%|ru z-DLekizHg5G~v}ishFYs*9$*puh!|E#lx1qJS_tNuhg~PzQ~+?>Ie%7QZTLh3zImz zJ1OXkEHd-kej|omPwpwB_Z^%044q2>k{_>0^3T}ET0Mr4=J_7w!yz$AmkC~Spt@HQ zLX83Q(=0+0=Vw)Zw}*~4heed#VsF}q-DXuARA9UP#lk%_soH3PLA^B(mX4_~*fLI{~!Dr>cnxv3-eHX%EN zd29hQqZY~lY?2|fE;eqoncp6kX6ctqe>-W+(o{@}cm3KZZZnS$GI|IPp8kC>*NpuWwL3m}&F87)_4uGSsovPW|S*i>{ zV?lm{8<@ejC@r!g-?2x$=%8I2bw|XsyV5TKW_4Z}r9g2b#|4C1v>66h61ULb>MApCsBvn7rl@{X!I&sa~r__Yth78IS&_3i}lZ zaYQR_MDGA&OT@w~Te_?;4&bMeLZaW8t5ME=EMATmA`_g(l>OE*QG{ftTa_J1H^diy z%0`A9UUOX1)I;}WAgqr0jpMBNxb{PUt;q(gx;Y?hHFv6Iccodvzo-Kdevr)Z=m<9d zVrvqig6PD1On4b}fsEs%0H~uLS7CXeU({TBm=*QoIS#X0 zFhbxDnj701(T{{#STVCl31$JbMobn?p-7_LyU8fPH;sb-34Bdtnbs{GmkX@FpIyG= zbPI>jpa>d%6f#iY53#1n)Q;*m;SjH_dXcBt=2kxhz5=IW)$d0*QMr!5$KsJKrK2*1u1o2#pQ(L=oXICQ4mL zhq?Vc)fN>zXvFq;MF`XfFtR&1Rr>f2yWC!_v8DV>xU=9M=#3P-a_^nzlR5FUwQwj5 ze5ZUzAo6Yd()M`P9thHnoGe48W>#?7!^D_;Eq@|NSxcGtc(epRxQnRh$5aN(Wt3>z&!Hkm-B#KpsOI8~@iG&Z+8^xX1i zn0H{p&Cy4)x#i0lxA{0-nOH3fN}a(U$qpreiNZL>&j>$tkCV9}7UI8Np4(!;pT1eJ zk@nwkfBV1AMOX>i^=i1(f}xX{MMZS^K-ZaIr+Ed$gY*Wg*LFe7r7a3KhPk3O8Y*Jn zc_l}{)a)B00X9*z!hYL?=!_Dnk~!(L+cLgX9@JO=rj10)0|(%NgB7Rj!_5DkJ}@1h z;74ZuIxh>Hz6KiI<|nTu*KjO8j4aDj%UYOUo|;I!k9%w)FvUAFNo&?XF~U5y?h{Ux z2i|EdVFt$8*o-H11HdDq2`GfQN$)x&qktO?NPWZ^`-}ls^1t_5$&+{9y*ei=>IwO(vHu##

g;@e!iRr57)vdwLKULxtzz(ZERB2$^)Y8vV-hLOT zM$6;XI%cimbZ6=QKY0l~6X_ia`u?6(06zEDay0;eqH7csm)~fe!Xaq@P)5nz z2iU86`9F%51EnaGl%1sp1NvX+vt6|ut|Z&cS|01W_POFs*dKpwfktS2nWKYYHS|&w zx}-g<6`xR&SVx<9?c?gdG!DfVy!T#Rs&LAic(5!rp?T1?u?^07pv3o4ar(jSlR;kv z)o@0n-M?7xZhg9XlqMo;)H#c4ty01X=%{^5^aRP5NuPSeZyGxT&QBhodh|}aCAXyY zl@phlp|;p!dy#DE!NXH)X<8X2NM1;u*p#jHX(Fd;y>!H_q})fH%y1%Q96jZ0Oa+=@ z9esPYsr3I$FE(=!Jlgf*k^Pky4c{~LjM4@1usmDge_Cp-)V}NRlEaWyi`I53qTU(X z0-PZMyE}-6@4NWkcULzXO1apo4C8qRM2t@ofmh|l-A7qFVF%hax~Og}BW@(N)LmA` z-iA22uw!JhSlqm_?5+e3zzhjfAX(NF-s*Ucir>cP>H>H?T$zEpLQ6tMhA32Y1*~S9 z6zxPAnK~sXeR9)sq3)+ps6YxMUQKVhi5OrIqoJ=fABnV#H||bc)gV@S87WdbCGyAu zs9vjwJiHRvl$UtHZ?3e#VXf3PH_@#^;nvy^TnMHdJx^+p>aHS#?ibh+YldyfCnM|* zcBa&%(5vO2vMXO0PxRObqvw}YQ{E=vrGCeUj!gVybE8hvJ&QssT_2Jol!%ya$uF$e z@slWw{RHzp*YZ5StRdZ-YQ_1_ZTJKuSJF%ybc=I(JO#&L-J!>Rtj3vdf9)j-0k2es z@b7{-HeaL*4-Ql2r>MKms&jnCu8xZ-3;hu6ZFz!5R#rfn*=quH9$Rv3bYW}=^G3OKzJJTE&Ia&>d6+)##^C5aK}e|q(H(;t zuX|Y+V~(|!uC!__vT&8eR}g!^0tHm~uzgr=sE94{)aivkUkIec31j{7i-LDh5SbY+ z@=)u_s)Dj9Nq8?Qe4mRLD2Zk4Lj~q zjw~Q7LrrFugsPRPoSax3H6t6DBU??O#l2Q^;X|o7QnX*JH!-e~xpzR*LV~^2{zeQ9 z5mif7+wduhaDJvej?2~w`3LjL$fsdQJtC2t*ZU?|X6SHZN4tAo^jxd(x2|`VklL<6 zU`Lb7)-0^A!XNPH415P=xs=;0hO?%WYb{ewY6*UZYLHZ!qUX{H;EuGEqlxr4(aE{3-QX-d3#CL=SlCt z?IaqGiR%$C)OKdk!FG>Sw0Irc#7u-<$HGoE&e_43?wbIL4)1qMIE6GGQ{0bL(-ZLP zyDSsVk9M|!AfdM7IZ9wYbp-(klZQdjG(oHUf)lp@h6~h42c^#kcT|ZPFeJM!;}xmr z3D`sWNg95G8ZL{dj!SYhTdbiiKSV591VQqZ?aUrB48g{0GKaatiDL zJt<}rQkchKaagTMkvYoIJ`xEP5Og4K=#%QOKq%g}83Lq7Xz*pEd185#Xy$Rk39u*p zbdCk%sGJ$gGibFFZ(9o^N_GHgIjsGbTt4`3N z(^qaq#*XAnF`Tw{H&mGR5;O45M1bL!Sq?5mvUgzfxVApx&RFg1qppRF-?IckHtg_JG z+z1Bp^-(=jVcsi(dT#Dh!3n@)-D(`g7iv5YbLNpB3s9ogbcJ3W2OPC@rfjpWtq(Y9 ztE?DdIPR^G@PzQ^49M`aVs&qNFa;?Fi4Qjg9Q~w8j4m!*v@j)#ITM3?H|kMADa=_i zGvlr|1H0iW4b+$WNN-VIXlhit+*M0u>I{Sn)xv3lVqwXFf%E7r(@rbnm=^k)HZ0d{ zJj3vyX}`-B{=Srj5B?Xc-;QmCI$H}t}hhe18WXHsMZ`dv`>coG111 zg)bFzk3C{q?G)*@P97p9FUK6UWK;FYoc0Dw3cNSMTTd(OT`tv+%*6$138NxuElP!w zp0WZR#}O6W*BRV(UaXiak;*_^XD`AR%<+tp&vZozsX5-_qp}e~OsLm~Q&)(!pQOz#2E?5}w zT->{ziOPG>oX*=Vy!rodruhGsyTiKK*wiH2U@{D-iKoHPOdazn=PZcw(RW6CY7dl1 zFy&L$ozYQLS!Vo8+EPH`5ULf>L(~i7ClX$erdc-tkJfw>`Xa~i-~WG?#9o%ac+lBR zr!fKo!s7FClpe!JhwGnPh54Dn>Sbk!s2$0Yd0Jn!GW#Ag)9{v7fB`G{YI)?}n&Y0y z?mihgLhKs*Vfg@P(D@v2MslC6xwJSER4F5F-ga&;;?WXs38~Ldt#-_=^c$y};DS}O z;O5_lxL1L)jON~>Nf+JLLYS_zJu<}`D-duw1-}Id{( zdBBh&&wF2KK#><~U9IlZ|mL{aIPfAG9Bhe}71)$V|-e}i8YKZ5T(hBs_dz#p0!A-cOLVw7H#anAq|h*0DD52=PNb$0%3FKo9Qxl zn6U3cBioVdXt2z(!<2(|`l ztmVo#cAC!r=aaRlT~C!y?K!Kz@*Tl@*AUZ84d*qgC7Qy26BF&B5S`Yq@a)SLhX_BL zFFr8Wj>2aNC$z0GQr5bU`Xa`_bTEE=i3B^sbOvd!4D;IT5KDu`ej&_@M(ds9&$T$~ zyj*ZDm0PVw_ep;4>jxbLu0AfKPubMw=0A1HO~R+I+jvtNu9n|?oBfw%(XhE&r>ovf zl8xmtZ1KTLe{*!)$R9>>#3*E}pyuU9Z{Je}la;&3_XM7h ze%}Q-e{EY-(G3efebA?K0JC__PS5_;j5SDpJimt~JT!ElkK$R@dZ&WGQb)^e3 z42u-+YPHP30=)RWK4wU9vKBYQ;X$#`J<+=OaqR6kfAimm_S-@1Hng#SR`z&_AB z8Y-FfK0)9q9D@j&#PUb)`SzGiD;qM$fsIcyWISdpb9BN%*?d3%)vms>UdC% zm8oDUYJI60^KETg^{HYA__ak^z+Ij%z@(zk0NlBf0=&vUuX^X=JrQ`APzW92Pv5Pt zil8+ikn-Vn1GWK{1{?l*f_bvV85vXqPQc2Qz76YJu^^egrVgIs+J&4g{)t}Jyuc6< zR&E|N0)YyNH@Bp|a9Lo`lhvS>#>yXA^nujZGSjJEB0YtC?)tVv73Uh>_=aU;9wcMq zoNv0E|IV+xQ7h9!h(N$aPN>7ng54~94P+t`>s8eeOP*hzVDkVgQn!*AP;ui`j+v8F z7nGiP&cGmvca%8dvm;(YdbEYQ@}3_8x6wMdH#-FxuN5UxylZfe`4O% zt`VS68ldHTd~kG9%5rgF$1?5m__Lq?Wnl z&^>B4v!NcnBcrH)Ngd+bK583vqO-<&u#P0?)(%MOxa6(P1FmKt3vt;12a$)5#;&-w zBOF4C2isZcok;cbceJciQ0_TeyKHhsZ-*}Jb*nmQrX>#sbD_-@b7FzUpk&ARRtlA< zog}znn;N}gqDB}?96HA*5r7G<2+z}q4oFQn!=D!$vBK1suMCjhtFp{Y$9)>uxvGJ$ zr~LT3A$d_IO`9bZjK0k2Rn|79FG-E6>0pV=sTUZpAo8feEZE>gH8>6}c7la&_SCji zHvOzVGW(?*)dr^b(*R6byi;IeRiKPwr}9W^v}nfnn?j{a#Xe6xm%j^TL7ubLr_3`t z79t$-_v7~zgIo3@A%|%hiv%&*-bTtgr>5*H2-)~8+Qt4GKl$&TI5okLg8#T3EryP@ z(mD5xE(@)ER*zrVZY8MUD2S%1N4xcNI=KXsRLJR*7tA{ulL!`OgTCjIA!mDneDY&- z&@dP28j)4S8W4{$Wr%)x^>zo-Libv6g9HT!l<#t zy#_t5shxDsL%-k4^xyaARDBs(p>yw!i-dE#W%hiK7}M}57+UOkfaSa_@3myicQuNy%I&X4TCos8ZAz z-4jXi+L*|S1iwxA#xB%}Y7q4mdi;o#mR?#94bd?F3eg#rIREmx^-Ml!5VamhAI8@- zrzwKCbJ$vU3*99ei;5ti6;lR$$CigPm67F0l#T)VMOM7XJ3ZViVTV80Gb8J zBzL;aB){1bD;+dk1}*rPTH^=*pjk5n_~8M9aqjXw)flrm{-ixwA{Dos*|$Xy3se1& z{)fgqn6q4ZV=3w@C6YK`+zJnZ;gtIkJnAs9%;1O+Tt_!uAd?N@xrqeCqhWViaCxYr zYbG1R-1E@{%4X4cs9sqBSMyCX?5hU9ib#m{)TJuf83S4@W&RR_ah7WpEyB{kmq0;z zrP#%U3LiPUo^Or3a4A0o_Ge+-Q4@k-$ z6ZmDHkk+>z3{MF6MI}klIMvRQ^$_M%XyOBabB`kIhNoa8)3&|D5^Wc40S7Q5-ul)c z^KWwuxKSwzin~6;VD{3>cZn)~;RNoq>kgzDpW(N2FeplqRV_#LOh~=q!t)v+Hlo+< zNz=v+(T1bUYM0I$8g~EN%BU*&M~o%eS31N;JoL%fzM9ba=0y@Nuxs3KdfwjXN*-$} zo1#Fkk#9YXRGs=kzvsNNbN;JDHCmN+7Eh;l5`cXZcW5;%TfjqA93xMV%zZ4tNA_%T zpB#a&6y*19eE&uNRgQ#(19?~`3XH&l4xy6JI0te3NPQ^)Yq16|c<`+uRY$C}Ny=XA zeUS0mQwEnaCyCqS$v@#&0Frqj1I^yU$08S+3~V64FrIJ*{!x%J0yEPEbC}Ryboroo zHgWOWfq362t}M?dgy;0Lc|li3-%%AYxqay40z~0t+UQ%hXEB=on4NyWrLzg~ZXFBsiGbc-B9u4p@FA$~eHXCZ@*fus^OsoaeuU?Y8{@$^2>7*Mn^ z8kLT`t<~LOhbK#m?x-ggRu`I^1rtSSozVya_jjKGY2A*0Kesd>Fd08ib=9cug_a#x z>+k9(Y?v4v+|&8chQ881@841=ejk@zKf^XXq0Rfk%%T^+O*rW>@7esk^<^bRom**5sJgElxSg`K& zCJ1FVE2>awFIrPZ{YKcuDe-XIAK8z+A|lQ7N767<+Spqy)Z9zwC!LcQz2flAL(rjf_&KL7+ss>eG8bhwZ)>imV~07K9WcRAlS8Iqu;1tz>1m@iBbT0f z4k$aLDT7N=cvb><4g!diU~J*=3F&NydUE6aA1r4A*PlRLH0aN(B~!d6RzXZ)Z{o?v z##wt$q6FSU!$b=HD-M$pLvI`O4#rWi6fyWiLVtZ*6chc6hD-HWlks%sVQA{JTuRKY zWSITke_<|r@|B27s8`wMfYLLlaXgh9rXPg#D`Db-?6V^kq^3%TDd4Qp7l#Yh1A_r0#35>6xrxiZecp5_=F@>V_}&wM9m~R>><6yij~1=d$~KGc ztWF0u%n1V_nG<_)6g%wYt8b#tya)<54JSD^^Sd4z~4X59DC)Ir0u)R6>#4gVbJViW}A z5-~tl2^{MEVH)8=E@)HiLoV;lGl)$CNQhyu-9#B*f~(?M>p8xc;O`od89R1hOChyx zh^*{+;WWoR31iSSGYE7{H)4#>D~qq-?|EMghQa;+%HbKp+r;NN7}sN-()s5cQjufo zt*|xJfGuIda?8z$eNLUo4?#o%SQPh%0=$2YdI(pL`SUAKYf@qQTqNwYKs6_)F(D)> z`E8d;1lMO@iuxi>hZ`5)l9g{RO6QVTbZksj<|dnm@OWQV1?F6AnOM*712OH| zpDF~{Tij2ggkiP_!_v|Py2`#2r0c@eOgyt9Fv;MPaOG9p^`p@ww6O)hsx z!5-bAP|k6icDhEre|Q7L#s&~USLq?E3l`^)^peV&juqr4HZ@)$}TH*^d~ z9~TB~pVWpB7S2&um98GtJ=L+IV`M6K@E_N7adxqLHoi_;qv|V7IzUWp!;<2Dt@`sX z>n#(CRa*rBrQrksG>iME4EoRj<<)W-YB{xYZ+7^zQio*UAKbzLztnc~#&f%oBPwmLF!lqT?ayH;tYi2rT=SQRB$;t`!Ecb>M5R>c;)OxV zGujQW=%uSmVT-&pVNk~eP6J?>Rk}a~FxwI{O$$JHoLY;bm20)ypOx8Ut6-StQcXpK47w3s1Lyrn_piDH3j z_}r&w`fVr%nM`n!^g?t_JL2>34Ty^L&#+FX6fI%Sg{0Q*P4xOGvUR!hi&NH-bE`>@ zDCVR+6~dVo{ozCl1t)iOggF1H8IqMqPOJ*V79UU7TS{dUTHJUTxp}eLUl_v|7^zO? z^2Z`w|4N%RZlvU_C_#io(4}xSp#+-Y`v5O=#-h2$&eu6Z?yH#_XP2Wz#svX7)Hw{g z_tmUN)`E$8&EQSR8x)}&!V6Wm9R$B^?%*Hy%@aTm6~?6GTGEANFM{&rvkkdTTff<8 z1L)P?GrHf7_La2c?LAsLXNvT=XEk)W2EDk7+3e^U+8+2|`A8_dekjcv`xwsI4@DE% zcs$ZvU&6XBaI{;wH+7KRpW8+!u!~-__?Wt$0FYB49ct7ichB-@*Fe~u(ZEV=~E)xu(p@RUI!_G@Xv{Hh|vkwfXi1}IU(OskU z1{5S;F5ZnkP)q^saLnP2w={VU2}XZYl4a6{bmFzAr*uqwUbacx9mgk5X-%h6EMxX7 z0)bN?X849t2`Zbj53Xl8LWy7e31hH74f8#Iqhw6|vTz>1JK*83z9t55bq%Yh>VnCdckDN!W`rPY2RnpaJ*AF?B814+apb5Tqq}thr#XSMyyGl78;usL?0?{`

rKk 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ǟF-v#uU)$$_NZ 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 e2o#-bz~^Q?lUgZa=m$Adr+nTqUEGbNtj)|\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\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\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:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe;\r\ + \n:global RunOnce;\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs true;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (!(((\$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=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n \r\ + \n /tool/fetch (\$GlobalScriptsUrl . \"certs/\" . \$CertFileName) dst-p\ + ath=\$CertFileName as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint \ + ] ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n :delay 1s;\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\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 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\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 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 \"\";\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/\");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass {\r\ + \n \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass {\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/324/d193fd99\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 01:00:02 01.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 138;\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 GlobalEnvRemove;\r\ + \n:global MiniDateTimeStamp;\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 ExitError;\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 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 WaitDNSResolving;\r\ + \n:global WaitFullyConnected;\r\ + \n:global WaitTimeSync;\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 FetchLargeFiles;\r\ + \n:global FetchUserAgentStr;\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 LogPrint;\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$0 (\"Set updates channel to: \$updateChannel\");\ + \r\ + \n }\r\ + \n\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n \$LogPrint debug \$0 (\"Update Channel: \" . \$Channel . \".\");\r\ + \n\r\ + \n\r\ + \n :local StatusPkg \"undefined\";\r\ + \n \$LogPrint debug \$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 \$LogPrint debug \$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 \$LogPrint debug \$0 (\"\\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n \$LogPrint debug \$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\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\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\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\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\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: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: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# !!! The function is not ready !!!\r\ + \n:global FetchHttpInfo do={\r\ + \n :local Mac [ :tostr \$1 ];\r\ + \n :global CertificateAvailable;\r\ + \n :global IsMacLocallyAdministered;\r\ + \n :global LogPrint;\r\ + \n :local Url \"https://api.macvendors.com/\";\r\ + \n :if ([ \$IsMacLocallyAdministered \$Mac ] = true) do={:return \"locall\ + y administered\";}\r\ + \n :do {\r\ + \n :if ([ \$CertificateAvailable \"GTS Root R4\" \"fetch\" ] = false) d\ + o={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Vendor ([ /tool/fetch \r\ + \n (\$Url . [ :pick \$Mac 0 8 ]) output=user as-value ]->\"data\");\r\ + \n :return \$Vendor;\r\ + \n } on-error={\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=yes-without-crl (\$Url) output=none \ + as-value;\r\ + \n \$LogPrint debug \$0 (\"The mac vendor is not known in database.\"\ + );\r\ + \n } do={ \$LogPrint warning \$0 (\"Failed getting mac vendor: \" . \$E\ + rr); }\r\ + \n :return \"unknown vendor\";\r\ + \n }\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 :global CertificateDownload;\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :set UseFor [ \$EitherOr \$UseFor \"undefined\" ];\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 \$LogPrint 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 \$LogPrint 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 \$LogPrint info \$0 (\"Certificate with CommonName '\" . \$CommonNam\ + e . \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={:return fal\ + se}\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n \$LogPrint 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 \$LogPrint info \$0 (\"Certificate chain for '\" . \$CommonName . \ + \"' is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={:return fal\ + se}\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 GlobalScriptsUrl;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global LogPrint;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n \r\ + \n \$LogPrint info \$0 (\"Downloading and importing certificate with Comm\ + onName '\" . \$CommonName . \"'.\");\r\ + \n \r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({ [\ + \_\$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$GlobalScriptsUrl . \"certs/\" . \$FileName . \$GlobalScriptsUrl\ + Suffix) dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n \$LogPrint warning \$0 (\"Failed downloading certificate with Common\ + Name '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"Required certificate is not available.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl http-header-field=({\ + \_[ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n \"https://mkcert.org/generate/\" http-data=[ :serialize to=json \ + ({ \$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 \$LogPrint warning \$0 (\"Failed downloading certificate with Comm\ + onName '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n \$LogPrint warning \$0 (\"Certificate with CommonName '\" . \$Common\ + Name . \"' 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 :global LogPrint;\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 \$LogPrint 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 FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\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 (https://amster.vados.ru/; main/3419/3ee\ + 19780)\");\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 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 GetRandomNumber do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndnum from=0 to=[ \$EitherOr [ :tonum \$1 ] 4294967295 ] ]\ + \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 MiniDateTimeStamp do={\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 :return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\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={:return false}\r\ + \n :local FileVal false;\r\ + \n :do {: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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\$LogPrint debug \$0 (\"... which does not \ + exist.\"); :return true};\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\$LogPrint error \$0 (\"\ + Directory '\" . \$DirName . \"' is not a directory.\"); :return false};\r\ + \n :onerror Err {/file/remove \$DirName} do={\$LogPrint error \$0 (\"Remo\ + ving directory '\" . \$DirName . \"' failed: \" . \$Err); :return false};\ + \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 :global LogPrint;\r\ + \n \$LogPrint debug \$0 (\"Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\$LogPrint debug \$0 (\"... which does not\ + \_exist.\"); :return true}\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n \$LogPrint error \$0 (\"File '\" . \$FileName . \"' is not a file.\"\ + ); :return false}\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\$LogPrint error \$0 (\"Removing file '\" . \$FileName . \"' fai\ + led: \" . \$Err); :return false}\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 :global LogPrint;\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 \$LogPrint info \$0 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n \$LogPrint 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 \$LogPrint 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 \$LogPrint debug \$0 (\"Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n \$LogPrint 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 \$LogPrint 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 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 [ :len\ + \_\$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 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 LogPrint;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n \$LogPrint 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 \$LogPrint warning \$0 (\"This \" . [ \$IfThenElse ([ :pick \$Call\ + er 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: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: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 LogPrint;\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 \$LogPrint error \$0 (\"A script named '\" . \$Script . \"' does not\ + \_exist!\");\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 \$LogPrint error \$0 (\"More tickets than running scripts '\" . \$Sc\ + ript . \"', 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: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: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:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global LogPrint;\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 \$LogPrint 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: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: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: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:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\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: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# read parts of a large file\r\ + \n:set FetchLargeFiles do={\r\ + \n :local ScriptName [:tostr \$1];\r\ + \n :local fetchUrl [:tostr \$2];\r\ + \n :local CheckCert [:tostr \$3];\r\ + \n :local fetchMode [:tostr \$4];\r\ + \n :local fetchMethod [:tostr \$5];\r\ + \n :local FetchString \"undefined\";\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 #:set fetchMode [ \$IfThenElse (\$fetchMode != \"false\") [:tostr (\"m\ + ode=\" . \$fetchMode)] ];\r\ + \n #:set fetchMethod [\$IfThenElse (\$fetchMethod != \"false\") [:tostr (\ + \"http-method=\\\"\" . \$fetchMethod . \"\\\"\") ]];\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 :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n #/tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName h\ + ttp-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-value;\r\ + \n #:log warning (\"\\\$fUrl =\" . \$2 . ({[ \$fMode ]}));\r\ + \n :onerror Err {\r\ + \n :set FetchString (\"/tool/fetch \" . \\\r\ + \n [\$IfThenElse ([\$fetchMethod] != \"false\") (\"http-method=\\\"\"\ + \_. \$fetchMethod . \"\\\" \")] . \\\r\ + \n \"check-certificate=\" . \$CheckCert . \" url=(\\\"\" . \$fetchUrl\ + \_. \"\\\") \" . \\\r\ + \n [\$IfThenElse ([\$fetchMode] != \"false\") (\"mode=\" . \$fetchMod\ + e . \" \")] . \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue);\r\ + \n :log warning (\"\\\$FetchSring = \" . \$FetchString);\r\ + \n :put [\$FetchString];\r\ + \n #:put [/tool/fetch \$fetchMode check-certificate=\$CheckCert url=(\$\ + fetchUrl) dst-path=(\$FileName) http-header-field=({ [ \$FetchUserAgentStr\ + \_\$ScriptName ] }) as-value];\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 \" . \$fetchUrl . \"\ + \_- \" . \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$fetchUrl . \ + \" did not show up.\");\r\ + \n :return false;\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 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={:set NotificationMessage (\$NotificationMessage . \"\\n\\nNe\ + ws and changes are not available.\")}\r\ + \n\r\ + \n :set GlobalConfChanges;\r\ + \n :set GlobalConfMigration;\r\ + \n }\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n# Global Environment clear. Use: \"\$GlobalEnvRemove True;\".\r\ + \n:set GlobalEnvRemove do={\r\ + \n :local doRmEnv [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ScriptsUrl;\r\ + \n :global LogPrint;\r\ + \n :if (\$doRmEnv != \"True\") do={\r\ + \n \$LogPrint error \"GlobalEnvRemove\" (\"This script is needed \\\"T\ + rue\\\" for confirm to remove global environment variables!\");\r\ + \n :return [];\r\ + \n :error true; \r\ + \n } else={\r\ + \n :set ScriptsUrl \$GlobalScriptsUrl;\r\ + \n :delay 5;\r\ + \n :foreach var in=[/system/script/environment print as-value] do={/sy\ + stem/script/environment remove (\$var->\".id\")}\r\ + \n :delay 5;\r\ + \n :global GlobalScriptsUrl \$ScriptsUrl;\r\ + \n \$LogPrint warning \"GlobalEnvRemove\" (\"Done!\");\r\ + \n :return [];\r\ + \n :error false;\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 \"Setup Global Environment for scripts\";\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#:local Resource [ /system/resource/get ];\r\ + \n#:log info (\$ScriptName . \" Loaded on \" . \$Resource->\"board-name\" \ + . \" with RouterOS \" . \$Resource->\"version\" . \" and Architecture \" .\ + \".\");\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# signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\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} do={:global ExitOnError; \$ExitOnError \$0 \$Err;}\r\ + \n\r\ + \n#} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n# log the successful load of the script, or an error if it failed\r\ + \n#:if ([\$GlobalFuncReady] = true && [\$GlobalConfReady] = true) do={\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n\r\ + \n#root.mnuc.backuper\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\r\ + \n#/usb1/mikro_bak_rsa.pub" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\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:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :global WaitFullyConnected;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$WaitFullyConnected;\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ + t=user \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName \$MessageText;\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Already handled update \" . \$Upd\ + ateID . \".\");\r\ + \n }\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Script send Notifications in Telegram" dont-require-permissions=\ + no name=mod/AM-TG-Notifications owner=mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Notifications\r\ + \n# Script comment: Script send Notifications in Telegram\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:global FlushTelegramQueue;\r\ + \n:global GetTelegramChatId;\r\ + \n:global NotificationFunctions;\r\ + \n:global PurgeTelegramQueue;\r\ + \n:global SendTelegram;\r\ + \n:global SendTelegram2;\r\ + \n# flush telegram queue\r\ + \n:set FlushTelegramQueue do={ :onerror Err {\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global CertificateAvailable;\r\ + \n :global IsFullyConnected;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$IsFullyConnected ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"System is not fully connected, not flushing.\ + \");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local AllDone true;\r\ + \n :local QueueLen [ :len \$TelegramQueue ];\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueue\ + \" ] ] > 0 && \$QueueLen = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Flushing Telegram messages from scheduler,\ + \_but queue is empty.\");\r\ + \n }\r\ + \n :foreach Id,Message in=\$TelegramQueue do={\r\ + \n :if ([ :typeof \$Message ] = \"array\" ) do={\r\ + \n :onerror Err {\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl out\ + put=user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . (\$Message->\"tokenid\") .\ + \_\"/sendMessage\") \\\r\ + \n http-data=(\$Message->\"http-data\") as-value ]->\"data\");\r\ + \n :set (\$TelegramQueue->\$Id);\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json v\ + alue=\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Sending queued Telegram message failed: \ + \" . \$Err);\r\ + \n :set AllDone false;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$AllDone = true && \$QueueLen = [ :len \$TelegramQueue ]) do={\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ]\ + ;\r\ + \n :set TelegramQueue;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# get the chat id\r\ + \n:set GetTelegramChatId do={ :onerror Err {\r\ + \n :global TelegramTokenId;\r\ + \n :global CertificateAvailable;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local Data;\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl output=us\ + er \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/getUpd\ + ates\?offset=0\" . \\\r\ + \n \"&allowed_updates=%5B%22message%22%5D\") as-value ]->\"data\");\ + \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Fetching data failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local Count [ :len (\$JSON->\"result\") ];\r\ + \n :if (\$Count = 0) do={\r\ + \n \$LogPrint info \$0 (\"No message received.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Message (\$JSON->\"result\"->(\$Count - 1)->\"message\");\r\ + \n \$LogPrint info \$0 (\"The chat id is: \" . (\$Message->\"chat\"->\"id\ + \"));\r\ + \n :if ((\$Message->\"is_topic_message\") = true) do={\r\ + \n \$LogPrint info \$0 (\"The thread id is: \" . (\$Message->\"message_\ + thread_id\"));\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set (\$NotificationFunctions->\"telegram\") do={\r\ + \n :local Notification \$1;\r\ + \n :global Identity;\r\ + \n :global IdentityExtra;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdOverride;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramThreadId;\r\ + \n :global TelegramThreadIdOverride;\r\ + \n :global TelegramTokenId;\r\ + \n :global TelegramTokenIdOverride;\r\ + \n :global CertificateAvailable;\r\ + \n :global CharacterReplace;\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ProtocolStrip;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n :local EscapeMD do={\r\ + \n :local Text [ :tostr \$1 ];\r\ + \n :local Mode [ :tostr \$2 ];\r\ + \n :local Excl [ :tostr \$3 ];\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :local Chars {\r\ + \n \"body\"={ \"\\\\\"; \"`\" };\r\ + \n \"plain\"={ \"_\"; \"*\"; \"[\"; \"]\"; \"(\"; \")\"; \"~\"; \"`\"\ + ; \">\";\r\ + \n \"#\"; \"+\"; \"-\"; \"=\"; \"|\"; \"{\"; \"}\"; \".\"; \ + \"!\" };\r\ + \n }\r\ + \n :foreach Char in=(\$Chars->\$Mode) do={\r\ + \n :if ([ :typeof [ :find \$Excl \$Char ] ] = \"nil\") do={\r\ + \n :set Text [ \$CharacterReplace \$Text \$Char (\"\\\\\" . \$Char)\ + \_];\r\ + \n }\r\ + \n }\r\ + \n :if (\$Mode = \"body\") do={:return (\"```\\n\" . \$Text . \"\\n```\ + \")}\r\ + \n :return \$Text;\r\ + \n }\r\ + \n :local ChatId [ \$EitherOr (\$Notification->\"chatid\") \\\r\ + \n [ \$EitherOr (\$TelegramChatIdOverride->(\$Notification->\"origin\")\ + ) \$TelegramChatId ] ];\r\ + \n :local ThreadId [ \$EitherOr (\$Notification->\"threadid\") \\\r\ + \n [ \$EitherOr (\$TelegramThreadIdOverride->(\$Notification->\"origin\ + \")) \\\r\ + \n [ \$IfThenElse ([ :len (\$TelegramChatIdOverride->(\$Notification->\ + \"origin\")) ] = 0) \$TelegramThreadId ] ] ];\r\ + \n :local TokenId [ \$EitherOr (\$TelegramTokenIdOverride->(\$Notificatio\ + n->\"origin\")) \$TelegramTokenId ];\r\ + \n :if ([ :len \$TokenId ] = 0 || [ :len \$ChatId ] = 0) do={:return fals\ + e}\r\ + \n :if ([ :typeof \$TelegramMessageIDs ] = \"nothing\") do={:set Telegram\ + MessageIDs ({})}\r\ + \n :local Truncated false;\r\ + \n :local Text (\"*__\" . [ \$EscapeMD (\"[\" . \$IdentityExtra . \$Ident\ + ity . \"] \" . \\\r\ + \n (\$Notification->\"subject\")) \"plain\" ] . \"__*\\n\\n\");\r\ + \n :local LenSubject [ :len \$Text ];\r\ + \n :local LenMessage [ :len (\$Notification->\"message\") ];\r\ + \n :local LenLink ([ :len (\$Notification->\"link\") ] * 2);\r\ + \n :local LenSum (\$LenSubject + \$LenMessage + \$LenLink);\r\ + \n :if (\$LenSum > 3968) do={\r\ + \n :set Text (\$Text . [ \$EscapeMD ([ :pick (\$Notification->\"message\ + \") 0 (3840 - \$LenSubject - \$LenLink) ] . \"...\") \"body\" ]);\r\ + \n :set Truncated true;\r\ + \n } else={:set Text (\$Text . [ \$EscapeMD (\$Notification->\"message\")\ + \_\"body\" ])}\r\ + \n :if (\$LenLink > 0) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"link\" ] .\ + \_\\\r\ + \n \"[\" . [ \$EscapeMD [ \$ProtocolStrip (\$Notification->\"link\") \ + ] \"plain\" ] . \"]\" . \\\r\ + \n \"(\" . [ \$EscapeMD (\$Notification->\"link\") \"plain\" ] . \")\ + \");\r\ + \n }\r\ + \n :if (\$Truncated = true) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"scissors\"\ + \_] . \\\r\ + \n [ \$EscapeMD (\"The message was too long and has been truncated, c\ + ut off _\" . \\\r\ + \n ((\$LenSum - [ :len \$Text ]) * 100 / \$LenSum) . \"%_!\") \"plain\ + \" \"_\" ]);\r\ + \n }\r\ + \n :local HTTPData (\"chat_id=\" . \$ChatId . \"&disable_notification=\" \ + . (\$Notification->\"silent\") . \\\r\ + \n \"&reply_to_message_id=\" . (\$Notification->\"replyto\") . \"&mes\ + sage_thread_id=\" . \$ThreadId . \\\r\ + \n \"&disable_web_page_preview=true&parse_mode=MarkdownV2\");\r\ + \n :onerror Err {\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority \ + - G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl output=\ + user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TokenId . \"/sendMessage\") \ + \\\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) as-va\ + lue ]->\"data\");\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json value\ + =\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint info \$0 (\"Failed sending Telegram notification: \" . \$\ + Err . \" - Queuing...\");\r\ + \n :if ([ :typeof \$TelegramQueue ] = \"nothing\") do={:set TelegramQue\ + ue ({})}\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"alarm-cloc\ + k\" ] . \\\r\ + \n [ \$EscapeMD (\"This message was queued since _\" . [ /system/cloc\ + k/get date ] . \\\r\ + \n \" \" . [ /system/clock/get time ] . \"_ and may be obsolete.\") \ + \"plain\" \"_\" ]);\r\ + \n :set (\$TelegramQueue->[ :len \$TelegramQueue ]) { tokenid=\$TokenId\ + ;\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) };\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueu\ + e\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"_FlushTelegramQueue\" interval=1m sta\ + rt-time=startup \\\r\ + \n on-event=(\":global FlushTelegramQueue; \\\$FlushTelegramQueue;\ + \");\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n# purge the Telegram queue\r\ + \n:set PurgeTelegramQueue do={\r\ + \n :global TelegramQueue;\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ];\ + \r\ + \n :set TelegramQueue;\r\ + \n}\r\ + \n# send notification via telegram - expects at least two string arguments\ + \r\ + \n:set SendTelegram do={ :onerror Err {\r\ + \n :global SendTelegram2;\r\ + \n \$SendTelegram2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3; sil\ + ent=\$4 });\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set SendTelegram2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n (\$NotificationFunctions->\"telegram\") (\"\\\$NotificationFunctions->\ + \\\"telegram\\\"\") \$Notification;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\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 :local 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\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$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:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \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" +/app settings +set auto-update=yes disk=sata1 lan-bridge=Bridge-LAN registry-mirrors="https:/\ + /reg.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +# bad package path +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes package-path=/tmpfs/capsman-packages +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set builtin-trust-store=fetch crl-download=yes crl-use=yes +/container config +set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ + username=amster-dev +/container envs +add key=ENV list=carkeeperbot_envs value=/root/.ashrc +add key=PATH list=carkeeperbot_envs value=\ + /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +add key=SSH_PORT list=carkeeperbot_envs value=8222 +/container mounts +add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ + /sata1/carkeeper/configs/.profile +add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ + /sata1/carkeeper/configs/php.ini +add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ + /sata1/carkeeper/configs/sshd_config +add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=veth1 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=LAN internet-interface-list=LAN lan-interface-list=\ + LAN wan-interface-list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ + 10.10.10.0 +add address=172.18.20.5/30 disabled=yes interface=docker-xray-vless-veth \ + network=172.18.20.4 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# docker-xray-vless-veth not ready +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-xray-vless-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# docker-xray-vless-veth not ready +add action=masquerade chain=srcnat out-interface=docker-xray-vless-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add disabled=no dst-address=0.0.0.0/0 gateway=10.30.30.81 routing-table=main +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/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 password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set allow-disable-external-interface=yes enabled=yes +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +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 +/system scheduler +add comment="Setup Global Environment for scripts" 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="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-04-30 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260501/20260501012001-Diff-Config.rsc b/MikroNUC/history/20260501/20260501012001-Diff-Config.rsc new file mode 100644 index 0000000..8dcb6c1 --- /dev/null +++ b/MikroNUC/history/20260501/20260501012001-Diff-Config.rsc @@ -0,0 +1,38 @@ +817c817 +< \n:global CommitId \"main/324/d193fd99\";\r\ +--- +> \n:global CommitId \"main/321/3f698a51\";\r\ +820c820 +< r: root, in 01:00:02 01.05.2026.\";\r\ +--- +> r: root, in 00:45:02 01.05.2026.\";\r\ +2857d2856 +< \n :global WaitFullyConnected;\r\ +2864,2865d2862 +< \n \$WaitFullyConnected;\r\ +< \n\r\ +2871a2869 +> \n\r\ +2888d2885 +< \n\r\ +2893,2894c2890 +< \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ +< t=user \\\r\ +--- +> \n :set Data ([ /tool/fetch check-certificate=yes-without-crl \\\r\ +2898c2894 +< 5D\") as-value ]->\"data\");\r\ +--- +> 5D\") output=user as-value ]->\"data\");\r\ +2912d2907 +< \n\r\ +2940d2934 +< \n\r\ +2949d2942 +< \n\r\ +3056,3058c3049 +< \n } else={\r\ +< \n \$LogPrint info \$ScriptName \$MessageText;\r\ +< \n }\r\ +--- +> \n } else={\$LogPrint info \$ScriptName \$MessageText}\r\ -- 2.52.0