From 273f03953bcb048248627af1103aa076fe2b76a6 Mon Sep 17 00:00:00 2001 From: Pavel Chegodaev Date: Tue, 8 Jul 2025 23:37:49 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=B4=D0=B5=D1=82=D0=B0=D0=BB=D1=8C=D0=BA=D1=83=20=D0=B8=20?= =?UTF-8?q?=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D0=BB=20=D0=B8=D0=B4?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82=D0=BE?= =?UTF-8?q?=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- autumn-properties.json | 4 +- bin/726598656/emul.epf | Bin 92014 -> 0 bytes ...20\260\320\244\320\260\320\271\320\273.os" | 6 ++- ...20\273\321\217\321\202\320\276\321\200.os" | 5 ++- ...20\272\320\260\321\202\320\276\321\200.os" | 11 ++--- ...20\260\320\271\320\273\320\276\320\262.os" | 13 ++++++ ...21\202\320\260\321\206\320\270\321\217.os" | 5 +++ ...20\272\320\260\321\206\320\270\320\271.os" | 39 +++++++++++++++++- ...20\267\320\261\320\276\321\200\320\260.os" | 20 +++++++++ 9 files changed, 93 insertions(+), 10 deletions(-) delete mode 100644 bin/726598656/emul.epf create mode 100644 "src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\224\320\244\320\260\320\271\320\273\320\276\320\262.os" create mode 100644 "src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\233\320\276\320\263\320\220\320\275\320\275\320\276\321\202\320\260\321\206\320\270\321\217.os" create mode 100644 "src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\320\260\321\200\320\260\320\274\320\265\321\200\321\202\321\213\320\240\320\260\320\267\320\261\320\276\321\200\320\260.os" diff --git a/autumn-properties.json b/autumn-properties.json index 6632f97..a6d8690 100644 --- a/autumn-properties.json +++ b/autumn-properties.json @@ -11,7 +11,7 @@ "HEADER": "sharebsl_bot" }, "UNPACK": "py", - "SHARE_SERVICE": "ПубликаторGist,ПубликаторЕщеКакойНибудь", + "SHARE_SERVICE": "ПубликаторGist, ПубликаторЕщеКакойНибудь", "FILE_MAX_SIZE": 30000000, "data": { "ИсточникиДанных": { @@ -21,7 +21,7 @@ }, "logos": { "logger": { - "share_bsl.logger": "DEBUG" + "oscript.lib.share_bsl": "DEBUG" } } } \ No newline at end of file diff --git a/bin/726598656/emul.epf b/bin/726598656/emul.epf deleted file mode 100644 index 409f35e783b7232211c4cadd10a436f9e0232f44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92014 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�i*MAs^r?{lFH27bk1>ly5%t6&u^X-V}A9G|J!jr9V>RM z?*1ouc;^2ovz=v$X^OVt89Oz7_Hn9}i^Kce|3P+|;aMFVJ9DGP)tEZN-&ho0mJ)1o zy4jdJlc=LP-Q7b<&1<$WG-m%tY-aXs^fc2Ho_Y$yt8WK?+|YVq2s}4idGq$CoYQfA zW&eDXRx5QA{IY1=6_RX6DHf+mjx8E~7U70IA$OI}<7doW_D|mMnE*t#Z7zok=M=-9 zxX~%(;lGVktyJs7*DG)XrqfJ+le}t4=G#ljf6` z?C(X9g{^v_P&ypWl3eb^EN`{5@$ujhf?Be<$fM0uak?lkGbNv zfAhfT<3GM6GT2=2`{O59h|jO{@aQJ;|LA7$R$|Mn)6hqHd>=~ixzH(TVi5NH=wo5k zM9fi@nloJn86g0woKci2myyDp%!t8 zWVa09*}R~{99yR^fjp%7vhq9g=`GX;S{Vi-+Xz4Chh>W~YT`ZGFjbL=>@zkq>W+|v z%FiN;X*4(w8qO73r$t+fu_CN1OAJ)2TNbKTn2RknR9iQjGCNixj`&GA&+D-x>+{sU z@&21}U}XOg`+d zbR=5hE=b{cP@F1*+DhMd6o1^my$@3_EC008Xn3$L5P}Fn;41i0q0^U;&>oOPP%9B` zZ7j=6LstjDD);|UF|h~9&O*FlVOT$A?ul7_-gd)`Eq#1mb_bS{L6K?llLdN>Kw~5e zIUql>sW7IVOfq{RpyjYi$SbLs$iX3QLGz%^&J3R!sp0L3PJOoFuFYL}=`5r>d~Ex< zEq_PLJ_$sN2qC}$AYus%hxwOAk=`R6?jm+~XUX}op$;n=MbD|Z-rgEvy?@y*_2>5UcZ;j_+&z4ZfK=bIu_L#~YPBDv={ zCeO&I{wG8Hez=vDP2+Ke&1Q1tr>o9s!0He2Z%OGo76S>CC`!i(y79y0W%ykGn8u@L zgX;)BHEa0o7wk@rO`kD(=2z@ajYGS3mVM>S^$Pue%eefndGOy^#`^!9^ZFm|6)eA+ zeC)s6)_=5N^ndS6zckl>I4}19QiS;*N`A)w#d(?hj{1+jn!zs*_8+C0|M+4s|MvfL z{dagnj{nQ-OpX(<0A_#@dGX)MXV-$J)?5M*Z?&kxC=qW|1E0{I#u6}~iGu<{-3}UnL^Z$2I{yRPXUvOUkUuEb2k@I3UVq*EP4E?Xp|FjHWdz(9Ai?p1XBJTgp$qjW; z@pXvMbjQ?^0Zo34jif}g1>je({aRXuE0Z}99 z9QDq9N$u#mrIR&QI8;wm)uaTMYFL$bUL1`#o{lGy{p|kQysFaPc%1J}L>B~pJL9|} z`?#F(kqqPQ^PMR?F?xKny5oG40MO4B=vp&(Ecel|0MU^rYdP1VELkKgHgD3bc024X zX$jaj`1by6?`3~`{B(Y=>}`J&JuQBHH-4-Be0-1W!GA@6FMglwEshuLS~ORnmMUGS zdZPJ_ z%Kj0kVZF3&)izhjKznDZreEUR(`Bc@-$s zI0TO_3B>J!#im2gwkTDC3#M6_ zJaO#Ox#UEpQ;xi}VZ3@>fW9Hps&EUUvPA_b9auMkv~@Ql0M~k+XZo zS#y|raV-m+zj~9BaqLmNWUfkSMkr9NB%oZr+$CDLAuR4X38C1o3PmY^1AEG5aczRB zP^a|tXS!rjgx`V%U8Z)sCU3tYJ7LwOGTNj4;7y?QtgxT+xVDmO5OA>Ye$Qf}QC@Af)IV0Mlb*YSPepH6{bz+P)$)aka7*3-%`#Q9Mfr_dfM)Yy6V|j}8dPbR$}^upe-6HJ z8@Oc1@*%;yulF5=qQK{-=+FJ$;rQ6Z&`Jnad4XC`{}WGwOSjBL^75OTEH+P{q%y2+Wlx$)<2@R-e} zU(Rf&=Wa(5PlTU{%yBpE0+mbEZQ^@gMcFc|_maty^41{LE~ThV`VemIS6VU=*$dir z+OB=LK3s0-o9+D{V;;88cng>V5Q$WliD%umA1_c!;M%S)#8czNjZRq8qVo4rzgS`5 zG;#ysa*EbN{BlK$MYX0pw9Vq%8%+3^9F$=3R}BI2vl<+Zg+oJFQM+*0`Vp~+>x1yz zrL$@Z={{gBMh71ujxm)WR${}CS`n-(7+!(g4xk!_1^By-9eCEU+^d{M*;W;hia)xy zWV8VUbM_L!TNr!lWzS`EmgsopQiphFUH8LFD$Urr>Y4P1Y;3BV-r1LKv>U zlM*afK~u{zl$yfUa5v-uaQ`;#WIvG+mjr)8F{}W`OYctPn<|Rc7vd6n!a+yzRH(Hx zFV#C(i;Ba*aU6~f0Z+CQ^TJN|YqM=?x~sM>EHaEzJ2 z(mdz(b3RcVY=z+8KBJQ>I%azvW#_M`FSIHwbYl}|!`Jf({rtdKF5IRYONpP4K$Cp9 zNW@7${jnTuF%Q(XDnB{q8SCculfyUXd+kQKZKG4{GHjiwBivMfYMn=1D<-%{f;?5H zCu5@kX9L5F2)OBzU)iCZE+tt|uX>c?WVxD_v*6X6!jt)y$nzeyNiHhxW+QD2*>hp- zGH69IY`scxjeeBjEXFJ^E!wiER=?p8%^W10Fd)7X#tC&3 zAoEgB%%6rth3&ORw|||xDIhqWm@-4htzW8*H%*eLrEtf7Z6$NnsTF69F0BjBmQD=f zC$_U?v-sp|0S`gDhYw5Nr(tV+_$ytZYlw+isPnUkME1$>NPV{msrPiZq#5L7|5BIs zUSDeyPSYJGU}c6_?INE0T#6l>kpmcg-Vlpa?6q%1f262i0_7Zbwp{G}@$pLg)T)S0 zjA@2xQg}ZCBApDPVFUFrieiNgd6KHp1`-(FSX|a=3Cq{6C&TIweDSUOjz2EVG)gqD z8=$7RwfvMI?gz7YVg~xGSeTqwvTUVL!bT`RXhzRhBn8$j58pk6ZCZE8moKv&+BGd( zEtWauI|YB5CV7eFIW!0C2yrK()M7v=ni>Zr>o9Q1?(vUY3T?U5qsEt622F^f(xdDh z`=t_(ZGe5aSuhC$a_%m4(D91yKTVpIYgR3bJ*u^6Sva3%tLJSB=7yyRsmddV{)J>= zG6bB?1^$6MEunI;m*YXK&fd#8OkW4Zk6uc*K3xYH?TPBu@4PO|t>!#_R(l$cJ=-J; zcOSffPGYlKqYHH;ykPghAape=XLCWL4v}oOuiv+D7;_ELhJg4M`Y39MQ7&M(q+9K2-9J_ZHCkIbK_o>jRBQ?{s z%bxd&N5M>ndGgGbgwo)>`w5{$`sU$C=ad6t0uKmSy*U8DJ6K#;JR-C(7sj!(fg|1!2Cx>IvVEePw!fDif#J_40s{8nB->G=|9&Ni#+iq#>)veob zU%i=&*ML8@_IhIAb^VZ`Iv!0fZqxnrOIZkiTKzrCL=wxD zAn>8|dKzGdbo!VdckA`qK@0;hGt6BQ-0$J^TJnGS4SXkjy!QrE@nb}BLR0P~g5qq8 zG#zfMVIxVVOwX8`>6~0$|!LVO(z0p_~qOR{%et}+I9;;>lcu^uO^By?J!7gTWY+i~j+J1oy^R&VE> zuU11}7?wYF=VwrkB38KM6+-#)zjh0#1jQ*6o6rn*sOQ20-B~V>*k8>wm){u-FwMWt zR9y)d+khkgK`RMu+(6upO`OpGEqNVgOy3{iQ0j=T1~X+*mavxk(AUlX08LOJ2HyIj ztoo!!S9n+mgm#$^&HT!R62JNhTWjOh1~}Qb$vuMFdJgbEr@zJe=#maK++|H6x{P5( zXs1_iz>4u!O($DlV=Y<-OPDo1VwPlIjYu2~w0uMl+Qh^BVgZ`O42VIPyKj_AN7J!{Gq*B^~%*b zy2mLy1{a4nUxD!cMzrA#3Ai0gzVR?$mHI)RQ4T_f70~U~rkgKXxQ&P72~t5`F#AOG ze?rz|jSoc6e3(?KYXOp>LbEgIkkgc@DNOF`RL0{VzHjVw?Pm7>E}U$j@qmSFcTMbc zN9e}Z*Im=%A0)~Q#QkXJci1zlzlZpOC6~M2F@$yO@I~j<38h02DJ3Nv54y8%eUhD% zQ5WVFfcNs-G#aD{&lRTM5%S79`vHw*e`TjbK?wvRA!3RGqmh=DF7OrQIr45w8_X){ z?zp!q)PF2s+og=fyH8Y@Q%gg+$?`A7A_(|{6JtPc-lwfY-` z=kLMutTr=|l^7ocQ>?IG@1IZGFqB!aY5_PL6P4q)DmIyEA;jpX?J8;s}{IQzrgf+ z`&X&%=we)x>BiAC1rw(^bGVk1bfxj?cd;5&lwWlqx+eHX01&mbl#%2>9w}^FIPMP~ z$SuRnZ5i<|`px154deRP(C%i9nvoGhi<*GEg$myd<3#x9mS2Eg>WqRw_^@}Y&`m#M z4LmNZdahZg}A6 z=y`ZKaFQx=iCHd;%?g7^ECe`uxPjpnW7<_RPrn|2CL0C{*w>%l3y&_ezw=AFmi@%w zLK!G@j$R}TFQQNC_P`006$+ok!dk}5lycn}1-itfSDn83!~=~YZgds>Gl&6DAR4hZ zQqL#U`vHR+t+oqo{5*!4Od(iJAN>~|o7g;}cQ6CC*#sNqtQgxlK2uHWY7#NVn_)AlZ z0O*XruHy-%>6wri?18aHaPuF#`qqLEX~5;S2TL~w1h9PR{Sk9~Vnlm;K^i(` zEQ1Jfq}0eub{MY}{7wnm8i@Igv{GR~;B2$ZTgS}%Z+L{@ zrh7YLLI-aSti@CKP_Y9qaPfnZxv&y^VS6HjJmm-)P}A=|C2|jcD;LaxXPPj)Z~pG} zQYC#wvYlcKFUrtv#1eI`dIjGmE#`M(h!3bM#BrTNwp+b5r3U+_B7H$al<#LY zB!AF00Ji~*ye@|=ApnGabknx-TmsnL@u8%qm7ssfN0rRy-s$eYhK!fC33NVTZHTon zS(B%zbBm7FnHv>%gQ7k?(z4+TO{ZjqiCtqEb7vM}wyU#{Bvh%(6dD*K!92@}`sfb| zF)D@EBeUafqXV6BN*-z=ND_s=YZs@R)phj;iF;ffkUsm^?gkF+;Gx9&AKI|8IA}bO zXrsr!;opUcA3~(5MKlxrL<3{|UfV-i8k|pM417o{@3Ul5_Pvmk*=-#Ypk!UymZ0DrJy@BAGEo=Fpc{DCBkeJ$B?NY;`43Lw_v6|Q{N5N5_kL@;CeI|ru$ zrZ!E#ezrDkzpZYca)92?XFZKKWTK4V zgyMPK(+!UBSww?7q>z~-A_}UMN12n5n=x+OIaaRKz3A&DP1p1KiH&=0=ScG6Q!3lUKtL_Ha&x zw?KOfMNBnUJFy;sLOHv?1nA^zuMhvWx~-(H$~F;Vb=4xxjVUNi6Rd}e)7G`X^N2Pz z(||Xepk^i}KG-$P#BWp+EB*n@e|->fQ}A)Ia7!RZhq(%AqMgrda%{)>7u-$AtMyK( zA8Ho?jCan^+X=z7d621Zos^GH))zj3Ic!8+MnqNkGRR|G4U8a9HyU#VO{HOyZ>Vjm_r>bTpP7-NBK(8a+07=jfeA3f*tn4e)O_W5rQ~)`? zDS1irPzT0Q{e2=ArhLoq-PSasWH@|myF@Qm&pf4f`q*?%lp;<_WH4njio+ z<1(hxL2PWo&6JouVYk!eAabFJ*e2#^Y;TT6yjjS^1MJ{g@g)DC#|-|&5YV6E=p~s% zSL{cJ&X7+Y$WJ~ehX&k{_T`^+T?lV~eF>%kuXoEBJ<`qu1G+Xr0Y)WbteaCXTnzW| z6Z8Ee!B}mUKK~;pJXd<=N}lI6^AJZ}fnAEw{BWvraa1a5(;U|2usI{yo+9kOZ|Lhd zFfqjKHwK%Dnc&bK8hbNg5>(T6zL13w#}O==h}!+ zs>k=#dgtNK;X>3mbdMjSi>FT?BmnR4V)Tg7PVqM?T#YvNkkhF#!7oT3by!(s7|h3i zESj)9U9v2wKRx@A27kejTVpDXCqw2w-0bAHdQ*W^LQxLeXSAeA~-Uh;GSlsQ>~}B&NZR zYKQ^7HC8vX)H^}}_CfBTtjnS(-cKj$@!V(hAQSc+(uL;A#Lp+zdNgc{LZbpto?1Dz zbWe*nE>h*DSgdqUoDDV!%;#1$QV1GKiX!b|qsduGYGtu>1Zr>qDIh-j(^L@A$YOi*H9tIE!%!DGot z%e^@2L6DPpOqkxv^~=Re{8IVnhD2jCd`g;@@yyEun7>}phiX3tdBA2@)gVRACWAvy zK#y0j<@`ZqM{IG4B82#_7%4pG>&kbtSB*LEyeUk2$CyWGD!F76dMl~`UZhJmY#}%Q zf{v6dvtQD(efxa7OLFF~XwW1wC%>wc46O<#(3xAN)8Byj?v{Hhq+B3))_GIn(SWxP zlCJM?8z#%mYC~*_J9bBBU+kKuDhDnIS9qfn4Z$#aQjE}{+XPgYpJ}Ry|@!9M3$02q#>P}w!9LK^Xbxj5Yy^q_{6vv8&CQ~0MU&#GRe&X76P;}Zr z%JOAhhc8SquYzR}%qw2oipB*+IfXmE(N9B+gF(--me%B<(#%hc!PpS#rKtFFD}(_d;cggI;%TF+^;HqQ7|oGf z8?K?l+|Ib6VX~3FDEXP~Bf3O>JrfE5iJ8TgKm$AMgWBh+m-~dhdknknM>||d37&*Z$bO#So;nj&h9r5_hB@BFIJw01RUYTmdMKXYx4Q!P;Dcagnw zD?F%RiDEMPRw_}K75$N<1br)#qdbCc89*5T%wkFVR_qxUN!EwTl&U$kOl#OAUg&0Q zCnKQ(-UlhTsD3I*4=1vO$wA3A%Fy4+S@a1A!4XIVlgZMuF({c58FM>FR*ffxM$D>M zZKhXOH=@hNNF5iH;a_6&!-X-?I=fw|x^codXc@nS6^}OZl0A{||87+C%+Ze4evprA zriS?8Z>F0uLE0SFCPa|EqoN;^Hg_FxdM~KPco4neV( zr|1^qB;reu^#<;Tb3LKcxj@yCfmIH6T#`8a0z0JuS zp(WTOfo}SiTztqqIE4AC6TmB($n^)#wBz-^J7Ul%lk^sB?)wqegfU1E+R0uD9p273 z9Mjr5MecBCgx9psmKPp(qP-}!YzS-lPZYB5;i!NVkO35AfJ@4YMoHkAik=pFU;FT* z#+2HbJb;2m!c(EAF)Crds^E`54T^{78r}Fv03VD7ZM*v-eHJN>>a(s7#JwRnowws5 zlHB7sA;-FNu>>*icB2k7mFd}xMq7n}xd;gx1F7hflz>`Y9SBdH4#KSTw~>V|d$tk; z&|c1@>gt!=sp`~QVVGiuT%=f$7oM(viA#o$C+VdSaFP409rpXnB>&R9j;^42JhG3+ zbFbRIAMFv-(xAl51{o#m&pHSEyOe@vOB5J2zA9<}S{ta73h^XV*Y57=T41#sV+NU~ z;_Za~fV)k|sv~7Z9w@tp%xM&xZ4aJxA5oYktH1^CGl}wyCqz&=C~t0|49|A!QgZ6T z#7^ZMT4Yoe!L0uhvdC}KFU%(2Pi;#LD?s((}~gmxPW`3`rbrWdPRMoTfLt!S=woLnXF38$_U)Kh2o zY?jH6Hvbh!3k$ai=ZFC!BD7I|E6OOV)0ZTh%;Sl!#8ROZW}0Se&e^ANuqR^E$#Pbb zYO2YWjwp+z)QN^l8ZGazub^evIhwK_>4;1o&Lc}DHZvV_>L%;zm-%sqA(&$_H64*) zAuz!tTON^UwpX;yQr-lVVDT^;=M)ZCWuM>Iraqbi-{9tVYv5yWF&2b%Cw8_R7}D0H zA@;XtmX|n}K-e|oHfl2whhhl1;+ya&WT_y&jk$zWw* zSp8wwb{P1rLU6Y<42df4M>` z%jK75D$zQwDG$S0UyOn}ou|q>iZDF_d8DOHg3Y9q9p3^O6oxHq>bTEMnt|u3p8C&Z zsPX7F9XSx#I2F{Ra7)cI`<0i2APX_ZyA%wEaly*2zrY6JubIL;`}vv_)8S<|Gq610 zrMYvfmW#Ly*OnPIbt#PCf@mJM(WjJ~xkr^QebIyeS=78qZZ~X1Yu>9y2w{f|K-7YE z5z-&ww}iOnsUmUD6mt~aQg91Y0(Th8R5!iGJTTg7mj=9pC7g~{g?s7J=;fA;Dwcq{ z#k<+X{$S`HWit#UdA9BDh&Y;<%^W}cd#cp#fN3|DlcKqkZI+N53FgPs}oTglg>`ZWv4g#lO&_9Frgz&~D+H8}>Jt(Sj1yhO_D1+0r22Beh1a-H|08v{XIv4zok28AwjJcl&|z6`P6 z{%U8OeyHVrT;it~CV#$V^`~-Wl$wt5e3j~jSw2&B9 z3rE80C7<8`q;@VOYi0%-I$Oweo9}mBir+V~sV7>SD$9jJ$L?DF;Uq=A3G6$E%yo)K z?yDF=sx@01%z{&;b@ABuS~RdLxs7yCCn%l`WV&@FS>Vy9&ad+Km1D}NF&#Q{r%)c; z(@IX_R)MlA>D+fii+gA0bvdri%y7+s70qTJ*8-e?EYFZzREOS#5j38&+h+A+&B1K` zrfi_H(m-O!^(Ae-i`yMgd5tyqd&w`F+~{n7CAI2&s;+PC!(M16KsFVh{XGMi*AXC~ zfH09Ca_A3P$YF$?n+D)M6&@~89?8lCHk6-m&zvI7K)iU`cfp3B`E1#Ri{Ll z98F3@jVBTY8eN5NC{QSx^#(8pG9tcW`rewI$&?y^YJW%v+LbQT+7ZW)u@1~0)+r#Q zFAy!PAm`yiX^ti`pVZwlhujieBxd441#Lc?)xo@r3dk_tUF&a!hv>b5n!NglQ|~5| zO(Z=7ZHuIo!?r&ATfq8bDq9o7*`JQO1jdy)#)p}a0TGt!HCh={!VBM8gS$hLNJm{q zmvb2^&)8uu`6>d|d1uqOr=K^W6wtq4T(k8PniFPoNtqsWy12m~}duCQw`ji~; zPFZrVbU<<*a0Jc~u{gzdZ5^AxNFj|n@-PJEJu+4H@-hsg@Fxp;8Ft^b>m37xZ|n&q zIl<_r2|MKZ>dP5^{%PIbS5OWmS9rI*p&W`P|5uzi;rGJNz`JvR#6rbj9qX9MUqPw% z=2{f^GKc#5<5g7Wi-P+zK>$&q#ZdXI3JF}l7l?zTDKy_JT4mNiQWu;k=?v6yWe%s7 zcs8l=qV#pyXpWF%c1-A#A}jEtwcQUK|Km9-mK;5+^n#S#aiHeFPM^_w@fbJ;wb-;m zDeQE)tT-fg`i(ef^X^ooAP>x%8=M`XS?a0Qnj_2u$V=UejsqEG`YXM(qmp0;gf=!q zUdDEpc`p^cP+1E}8mahNj)tW=3#Gb$He&A1+8Kkg;_(j9?x;qdtJL$79GsoK=~04h zQkL82D)vj;q7tM|OF1h{0#_h;;QDUVqJ5QRRHzC&W*91qb}mWV=QFrs>$uNqUceX# z1Y;WO7%x~U=^J1oSWZb1!?3NJv?qTUx0LkbQiw3?yC*T2(c;E^#950ZHh-#noJ0uG zSqjw3TB(z!3`S1z7)cd%67Bqb8a3 z{cAOr#X{9`YwcMzrr{MZOVtzZj3vg%Wt+hqRrTnQMe&kxIEi>0~VJ>uy*Zo}6` zB(8?UdyNhYu+zHv@qhUR!+4J){pJ2P`j;Z#{oXLQ_ilr?yE7RVh)J4c1I8><+C|-{ zd7V{!hoVGpV<>0?izaEaUJR+mJv3G#9@!b!mRFBj!!qXwu_!?LcBXIN3qP!bUm@%^ zh83u63(FfH+eiUQ8|0s|%MF4eKt|o?IGlz3J+H)v^H|rBF(BT@&9!4Y%11c%qJQLC z2Kgnd7F5QrJ=r4(Psf0+0|+$>5>v;r z8+%La9pIysTsuUt@JxUQ!Coyh};i#Q@7{XuWG6ZSEY5UWfN| zM$AjotEgre|Aj1l?ep2K$YLspQ95=|@W)oKE6*2=*A@;OuowRl0^ptNfktESwna@5 z)O>m4_6R&v_w5S%3r}-$(Q#|g+?`T@jI^P$J)fAKD9VQ@m1>)Tm#Jpr+&;5KX&y<` z3bc?jl#+#l0*!qh<`51^tRA($bGUEH>yrJP9+pn%Vk&5vv{^p5{ZhmNtB?r9TtDhi zM}TaaDgkL?%IS?Zj!PsFO(h$XH;iN%73!8`Iq7_3zFH`&TcDV=>Tyn4@*b7C*TMcg zuasO`VVd8E9B|tXFjsvf@M({apKh=q)U`Z6ROsjjL!1q(-ysSZuYm(P_^D1pxiy(Sh4Zg_)bHL&^C>bJ5<1@kV7+7l<`-nBW4zlH--2RmEv}#ELg51q{ zx_U4Stj;5X7=U z3nH}aiGj-9FnS15me9}@g=*ur3M_IK(xW0F9xj&*;+}M<;NDf01;^a7YQozIPqWVG zDSUsa7 zMF*DUQy8)TvN21`;O$}?XO1yFf@U=GeBAiSLPptbfw3JPQ9zZuFo8>Dc32ULy_kqU-_GR!q9IE6jV4kQ3maL_ zkOM}Q#&^yj>aUerZ1R5Xy&21&oZW;sO0%fg&Anq~N&h9Tw~X$|Kcg zHj-hO_EHLDLzrcl02eJbVEaRRaD(2Z_Ia&q=Nig7Ic?-ykk8HRU|HKY3saIl_k){< ziGvCQN(!-QmjU597*(z<;iSj0kEHmt>bjAS3qd*1kFQzgJHwoU00L zc*F&WSo6Q56~pq(@=uKdw2QY?7?FX5g z1k3&{%4R`&&xmHMlBeW^AgSd^d{K(3^HGXC(lY5JQk3npx)e0{gxl(pZxYA2)roR@ z8K5WP+v%a-y%;xrImq?U)dzv&pKVY>TIRmJ8^*6rB=DGC_lfPn5E17v3hNM+?@N$d zLxa|qgyBnIOovHv^i-v(fN)0PUaB`FQ}`>=g`KgTjxthOY%nTyN?lpxWU4;x~h zDd*E);P8x3Tnos9YJ<{fEeh)y08#{oH?IYNLeAqS+%JT5FG~{tYh#`~DjSXuQOckG zVZDeFU>Q?8P)I*ToJMiB7n;4Pg4_=tp@&l^_QA?pywR$H3U8qqsFrH$BhN$qt|IcQ z1~*1`FZWf=+g+u?$h$ax8|MNq*T?uxgQicJemNZAA?tPfPT(Qh7iGw^B<-&|G<+t+ zWZ$I(xq_1d3nmIvxt1?$%Vz~h*~vi<0(E&ZMVzBMDSk_geUGNib*3SWfk3$b*L5Yi zlzyp+^STV?3B(^e{iS((6}$d++ow6PCjI2)pjAo?E`c%}rrD_|=v7U9K%qz<+&4Xkw(cI;^a zAh;x*K7U(@(mW?0bDdWc>_9FVJ1Zh8 zj~IcP;h;xysa{W+8}V?cUyaZb`Bb| zP&HYI)<|(v<$wX^JmK`!AumaJDvdKT3z^~Ecy5+P&>c=9tuA{R_qa(^KYH$=rM1Q5 zeaVMO$cQGn;{#U3o81wa(t7#b4VY~btcDsj44imxP*9@0lBR#E)tc5l1tZ+Gkmj$? zUM|aatMS|U57+w-nS{#9GL94s+ zAabieKrT{Z{_4FDsP58OcC~PMT&Ru(ML*IsdeQ!dop-SNrh%l62_d)h_E^of3i`HV zIZ!n*-eYzy$U%7&06XxI4+$)vqn3FGoV4)$fK2-j+0+ij;@%1Oy_&<;hKHlWzPd%_ z`#^n>lbFsWGtVUrUa>w}SbsI&4_S1OBZg!dRiQ(P0M4Iy3!aUYmJ62Guc2kE$q8tl zfT-qQPXej6(gAy})eeC~!EVhClQuQlc4y2^+QM%|= zLeaB$)GLExaQ0+i1x@>jCg`Fq8{jmf1El>YwRc(a*I9}&!z0ph8!Bd0CrF!(GMFK~ zf0bt9KdzlMcU~Ww zUxUv4D2F0r+s%s-Jk6~KTU2c44t|kG!Lv!|NdXn=x{Mdmw}o39ns4VS`rT~w)coDO zj@uGmgs^@1{BJ|c_bbo4Y+#G3;x>@~Iz8v`B7|Iy{&6P#b>=jM=ErTY|I-llPebG1 z2FHIoZ(>OZ6Skw*wG4*@^qA#YUACG$)W>uf3HUMnXo%@B`>qGRYbyc2m`d9395}l5 z2>@9gege1Z#x+cV(O!NaXN$@eO-K!1Pq!)sfhSjuyU1Q4Fgppx4Srwiu8nZlsbG+7 z7eDql1*)^kh5c+U=Vq1ws|(+L>Z{#szkcv3M)#@7(qnGph)3DD$amcBIylbW;X-$o zed*-t-44nfFu4mj-XBt@K>3NbHI%*E{xb$h9aud+S&1JVvR74;ux_Map8!qzY>?YH z0)L2Rj`_1vK5)?Y_h>hPT8HqCOz@w42kI%~tmzUqwj$^{d~nb=ggjiBE9RF6R@6ww z&i0w>s{4{mXB|dO!<=IQn*ZLVN#)_mpaVFS1-4(z` z6`RgC2TBmTE8Uz7p7IZ#GB7P=ukUDB)l|29NKsW0SJ6n^H&tj$3RCO=5FDiMcWlv( zs)H1>WcW;=y0F>6sPp5bNYM|@8qOVF-|BHqJgk~D@54Za$=?zd`F!G|`>7SGJp_OJ zW)BS9j1{6xb;w~Q&e1A0Qj`iA-^&-6&P(davVJT?N$+}!Lq~ODJ8Qj>`#Os{_nh5( zWmn0;rm}U#&(QxHgC77V=;fE1o$I{e9AZjZz_i~g{@S)C5%WHDfP2TD?x!kYcohht z^hxYb*nN0ieK4tVQY?S1;W{!gwvcNq|KKz{LrGMMc2HNdQ&_K-LL>&J?=17|cTN zlQdbwikx1lUP3}c;TIdJ(V@k@rVF+%9x_E% z*h++W3neSf?dZq-x~70Ij{NCS%bkv*0)v+Pv&mH5kUe&)to#Ulj^ex9aoe3T`iH|)Gd|KMA8W-@&IS1HXO6`Y$gCFmPd#m@Cf zOwQ8cIl8ae98IamZG3?v-; z_*a=FC;|VR>Yir4?&`sHW;+DL3P(I|w#1viqI3l?JYtTH2B~vq>Bhf(i=^V9h%F`g z^@S4V2uLJ`f{acB5se`Kx&{w|3zT(iD!h!_;u@~BizfhBfaaC&}pp0a^@>9S4Zof{|qsVt2T#y z0&~}QiL>C3yA?Dsai@Ri9f;Su3UZyP6(G!AlOQ)%uj+v-r5t*M(7M0-G!YoF5W{x@ zgX%JJL)k+@8H()CZ&rV)rq89bbjS`}g(cUj2m8!3BChUYDjF`oYjqwaEr$b;ILJ;? zuE*xqN)#fG?ZCm3%m$3>Lmbt~gxl9pkGzXZ3NLW{>kG!?ysC5O9jx=YLTq)~N+BW8 zOayY1o)AXRN;ua7JBSka-9S(bApyAB;SGux!n}lTcsl@0T^}F&kfPJuKx7G>9BLR9 zSSplAX8njA;EQ)vo|;Q{Id&>sh7=f>>?dpiGXCN<=ea=PGZkVMqi;0cI&$p+-nrb2 z;yv&jh6t?}TrWLR9E<(nY{E*w0$5~&eu;98P*s_0=mIH9F-2{qD$BYja=O!w@|*`u z^m9sY)+We;1n5)c{%SDJ?l|G5Pq5X}QM!)X)J{Q7UaF>^fb<2h1ffvCXpJjEofL zx5CM#`)HD7(cp!mc~-&F&rJZdOM@Ny6@>>U;~FY5IpgMHC-KYRB%Tn7y@Y1DdfXWN z-Zr`;V>+lOu&eoFmZZ1b2R$TL5M%?)9W?)zSUI-Fnt_aYXixjb?23hYM&-f>gEW&@ zLHaXebyc+ zg$Sdop4(>%pGBlz!7D69yxhk}h`9M#V2%_RkS16?k;eSY250TGJUN6Pi->G9Wx3(`wH`zurLp-_l0LJW)XF$sqijzA({%b|k$!F|2uWq+9xy zdMTUK5G5gH?Rn#b6DV&MSr2y6;$Tup_5>opdm+NI3nvhYAuPc1v{Ju!tF1B;8xx#d zDl@=In9b0-$YznorC$B`(fCKGEQs~Ka9Ul*y_pY-a~;fmmCn8{u{a57{x>vFQmP3m z$$GNQ)-7x@4k@ph&8>P; zg{4wF^j2aV&6<{pjwY#18ADv_6viFC#=;D46YTzJ5TmT>64b zXljgj!L67F9i}PhOK7PoCtH0dLwOL>`Uuu+EdfaV(qt+;3epH&5eDNOVR)gYJ-^7H!ilh}8zF!oLOt=v-hSjZET0$af(nT_6E6x0ux=X@Pz6T z(mh7d4!PQY#Nre5h4gD%X z5#m_?&`jJRq=1_ggB!s*NrnRG_+}xS@LAN zw}&r7sobwrJB-4gtdjRUef)urUc2_4;3T^uzCIEUqK z6Ds4QV{zsZE6*Ruo)zyuyg3kVQNl9voRyN zK??*=TlGK&2+HtZ=R%IFaxj0eRw^Mdr6~reg_q=3#6kHpaERC?s+Jc}$|_RQ*Ty{0 zfaudWa<^amD{0xr8HP>cZi4dggGj#DJ8h+4aL3!Q6`BFVJ{jX@Kr7fjps1%jnd_TF zpu)bEdPSmFeskqk5SrmK&`u|jh1zAS9}}NECv(%zMmTX9UABEBi`qa+3bW0Pq{(`c zK-Ss(Nm1}-Q(u3W>rRfe!Ts9k@oj02l!@6=uX&-;GaH_Hq@`rM9Lq(2Cm3u>>AHJ;U zdpoew*`!9N#)D%4a$Z8LZ#BRynX@J3V8iIg!rb{1t0OlnC(A0xoy07#RPeT}f8O)J z2;v}u=tn}8rXJP6w*OuWX@u-(% zXRP9PD*blGN8-$B&M~Em1IZuF=#JS$N#R7-sWW>WpK#zb5$5(+sCwX0 zU16ED!?rO}lkUB;_pZq^x{mhj^f8 z3xgN^2MdGQE6KgR>eMK0?h3J!=EYASP<>yHpac0G=%b{BX-y8fb{1%=M!hq|Mc0uP zP;)6x2mt8?%2NEN7;-*pzkUnA;4t^d+(sFXGM{?wxN!0}6|0wcYeMGDL3m;3mWwq8 z7BsmKdKf2@N;a!`v@1;x(viNYrgEuearofRE$myNw{8-RUPIZ=NSaD_Of+GUV2P8L zfFG=gOrwh_NVo}7EBH8jYKM!ylaxr_GHTA5<=Q5;^d&bH*Wu4;QUb-CM|6Zr1;SO99ARMA@>^5Ntl zi26ywNR8C39yY}-T7B8zwph~6cH%j4D;4Z&=Of@Hp0WD~x~uOoPR7jezWc>Fm8L<} z)vK9h8XS0m5Ps5_;@ONqS$cYKR9XQS5so~u;DkYw$rE^i_bwko*nxna>J#QG9aIn< zUf)T&y;puM$ltmC4YMxZR$DeUs>+_*CS{sd>srz0w65HuRk6}@-wn$oSL3H|HP2}A z_+0em1vf%BXT30+9>PuLbaD9Zs=Pc;9AKBwXJtCNTzF7&XsTOmtcMD$t6Am^2lPA2 zSbp6$s(*R8Ki>9^*Gr0StZ1VDiOIIm;`Ft-oI79H`;&3>s4Xna*}F1?1;pri=~i?w zP0J$7YNP)fWIsMKTlmt#@kH&RFK@4T$}>8XTn1O$20y3$^VRF)n;H(t{c%~t@+8_4 zV&IJV0K0y3z34FynD^eS+WEIVH3z$E<4Lk7t?!P?+f4dqh3mV9RY~9z8?|R3otS#>W-vKL{zwhlFrHNV8ag;yG-;CKlDN`Wg@C)+^Qdv+Q`p zS*(ElIqKX-&GCIIxjgH4c4nuyD%P!X%ZTH^5y;`Vj$~Qs*gp!O!?=_7RXhK{=eA)K@JgpJmB>KjSlxV z-fd#vk<)Q?XLEY*In0-9_1*>w{KBVag~#dGMz7N0@Z1{<-<(iCdJk`n95%(8 zI{!?xj82bn^g;Xb-bm;5cBo`mbcvaoB1AYw{FC0v>iV+uV2O@~J|jjBiH5N*71;k{ zAj$x->k!9!O4|y@V>10gwhAw|lvC8w5#96HHc0U5S!yx8)5`%fmPfOiIGi+%NDczT z-{&KPA+PNO1QFr^2N0QMw=%Jl&8NY|p)s`kNwz94ya198%yha!XIYmoruJ9C6cMt+ zP6hJ(4#F3AKCpMCi$k8PS+}Fl*Qn(MW(D!od1Invr!e!gElb_rMAdeD8-#e&xpM&I z>*u>A`|>Piu?a3OPKH4|)2sC2@y-mykEPlEJV5A+$`T>{y~zS^%uvJk2w00o^W7?7UB}FOH(sO&vq4@#7V08)_{zP6@u= z_LmOOD=1dbxY5Q-M!PcU94SNku(^6yWzwsVBTgM;Pq{4Lf9ix&sWFy8(? z@-4P^hCl*YidS)CRYcu$89Gsl_^8sh~HpUNP? zdu!%$p}~)MhiR^QZ3MSMjr~RtUkOemg_PGh$;$pWw4QxBJkzN4XzHVnJu?xzLaK!9 z)hYH4W*Kbyo%cO*!$|LY8pcM^Wk``<*M-x$&b7z@=<}KCP9~<}a@T9~ZbV`eI>KRP z*?`bUnYvJooo;rG-jA@oggNvDtl|%af7C>#CvwyHeYTgAq2FY6IPv|-bF!a9=4n>k zs?o#`q=fTPQE6l5LU!I}$V^@6qBao2Dt0`d;n1$5c07Nt+R-nFZoKA=+F%Te+G*bwtqZ!Euvnq+ z5*_2+O1lx_i^r=)-%fa{k5Y=e8cWB%s0UY_4I=G^stR-e zU{K$LNTg`C(e7OQxy6dEc}HH=fW8V&V6HqoP6%TVhKdMx!)e^Ci@0-u&|-WMF=Cx3 zPe(u>`f0L(>@`KvKDM~}tR5BI_qVcgK&e_9nubD_7x6Z)1@Dgs$)GXZYj$~`0X%w- z=P_q&URJZ5#%YBZ^D#lZ`A|7puRX;kBAFAC(Uy-zfXP3xg3=YZHjH<$$$5fhlk_>;*tl8 zxV5|9*yQ_;pg?&v;*|}H;Ksx(P6CZQ?XqT(`NKHH3_l>{vNt=V#?ggNR)RQ0Wz`+TFa{0LqTO4(MUIo@lWlOEX$Q9U~SSCS;(?_}}Dr5Gzbz0}?oPnzqs64;ffR2eyov33pFQ1*e zFIy~RmS=|jm{FnkY6Rh19dK1z>WXUs#Wn03kW$o$QJdoCm1K|LXU8@dc)C?8K_(OC zt-g7!Dzzvuzol5_Rk||m%bD>_eX*TIaqveEADmR&c+94t=cLeKe$6AG!MSbNj zcASp5tkNxK^=eiwTNpF`@#N6C03+8kZ}E!yr;?R=qpZ5HeQ+JtOb4H8>4nCMKF^8n zycz9gQh3mEn!awQ*i26rOBgZfNmdIqKVe|&dg?LnI)HOgq`5NCXfRBoUI%*BrhcKS zS&rw5n23eC(xG&N>P`8Nt@66Zcp4&QA)_9whHColA)s3dEk!$7WcYXX(3pbQC1(dt zAAH$K&TS2*IdXsu=85lpw{(6~@vqy*FYy0P>-Jxh4$5gmy$=Wj0sLG4rL{BurWiE* ze&~Nc|I!K4ep3q?eA5XU|3f-x^lkm6A2j$b*}ka-|9aWKEvA2{2|2%84Zev7S-)HU z9{-+R-}t{I9dwrAh3aF#*nsX79)0(YD>PrtDrS-P0O&1sa`P5_ z10`10x`(~$4Sc%8xa#y{IU)V6P6WBVZM?=-*+@}w_dAQ(ESgR}NrP<;Lle~l;3s(7 zY2%{1i(tthU+LZ9moPn#Lk%rss;m=w~QXMpvnnF=!+-O%9@*dwJUsB#L%{ z{LOj+rF&={>YRGH1HI#jf44vXaUh{I*mghiKQsD&#s9?>_%}TM7o>y#M&-Zt-!uQ; ziq8L;bdZsO?LTNS|1thE=^(DQEz0PPyX-E1)FWXtbxQEKVi0^Gi40LvyB10Tg+dZI zG}{Q$cA|BHa2vRlFh?EQBPI?FvK0(TMA8opYg|V~;oe*E(w5V$*@tx}WC~0KQY8J2YJYzuPP1cc%Ma zj(5P{v87fK`iqB6hDuEIFxG%N9@UT$%RtT%x@-Uqz#0D7T(59GrZfVs)WA)zI`D{^ zuM`5rS=O8Mh=#)N^aA!+KuN7+hP5~@vG-p6to9ic#EyCuu|7OXRBSGm6q6Sr(&4)k z2mBmX=~EZz3Vt`Q=l%6W2$KPgu0(JRR=N^c0)9Pc*aW9UbUj=|pyOVDfhDvV%h-nPZ2E7iheY}A^phH4w0weeGkv|sY1_^J`@f}c`ut8WL#y-DK`gf z2XT-ec?&~j8BVp~uW4PXSb|y0AM(g#2>Y=RHXQ-eE|8lZ&$tuKp!LlF=?3y%f>$om z`hCG7NxIv*euwaYYb1o3;AW0JM9(fHvLW3dJX?LXbXl}9{si9Y5m-$4U28zR0za+x zo+@_KfQ*(11vT}2iLKzDnK15HAevQ5M|J}G2K>s;DZP9Fo|n|?sf?>MV5Y#dE|)F+ zNojtxxtCd?@}Xi);)g^gOMt2r^fM7z!uNC0CjVkw%9bo#T<7Uwn$Cv+)OfyvSGH8n z0Wwi|5S*0o0R%wGEkH%^cF5EFEoxWk7f>Ks_Z2^lC<#iC=)TJ2$ z$K6d&)|5lLrXjQt9{`r`=i?<&P~*sRo&@VC1*>vzxK{djy!cK9b$t&Ek z)OueemMx+(4;tN++yP8=m@uq`_8iwr|*%w zBESKVPru?R*pOBe;Y5W2WBm$VcCF-Kroaa=-SrD1eb;_KiU>}&tjN^$<{+vVq#N+n9{YHia$bS|8LPE9%zufuxfixC696@!NmCKSpL^JKy=TY@)R3W+~t zFvUK!`be%POcl!;0Wo`ronL%=EI$Hi#grH2F-| zQ*%A=AAyv%8Rw*?8;avORM)%G&sttLl%?PU<^Lv4V!Pvt=q}&^Q+8#&_6(QCqB6G) z6r)_h!p|b&cvBqsp{Rg~J(`Z2vrVe55J$>BHl^{}T#JwizEO}dSEMe%C z&XcU{tqfIUd|`_9k2Usqe)Hj;Nwm=7rK4?<0&rY7NYANU5imt`Mx)}UZ2+G{5JORh z8)0RP8M2FBK%whceez&+&9DM%s4w)^6_LFF^`#gHrcaqT`w&->Iz%oez!~|9p**0G z%4BvRP>O{r`=k^*#qpAup2*+&e^6OF20nf+KunM_ng|4m*P*!o#smI?@}nks2Dv(| z{M^%VNf6)T-W#z|r%-ID?q=M+9KI#X*g^Wbz0l$HNoT~DBG(LL!IS#f#6?CM!yY9u zO|}XuGEwvb>PAK)kT_{~c_^Zb%Xmk{9+DgK+^R#)PE`|N1&#ZM(dIAd!XRLip#aI` zZt7N6mq4gAh$0z$U0m#BHUky10H#mD8&LDXL!I@w5?*GGAdox}LX zLMolq&OkY1f?8CW5?O^)BsVD~+5YgQvsM3q@tQiPg>Ywz?KR(=*g8XV#~E>kBG7j@ zMrTk)5dV@9KPn+^6RQPeTaTHj!41!3|7eFdCo3XPigl?+EK9oQWXKmXQn#k7nBdB~ z#=+}`M*n%wKzKGJHTY$M=* z%eQoaI?o+?NS0OYka?n;Cv<8ok7c+UPvTIhOoD$KJd90t7?nf#vjzj*6zQfhIFFk1 z5fu&8Bgct|F39vUe-0aT{d&F;dfUXgjSrCPor5}pb{heRN}OGUy&0iDrxEV`d39nS z*TUZ(qb@SW;`t`UlZRa{5Yv!(kJ+`DuoNW|2nWA4zFH6(hFau=P-9Uvo~HC-KYIe&0iF%{8e(*gG!en$o2VJ_Ig@-7Qpkd;!%LCly_0C}v^NggAsyB+DDLDb zz$Csi`L#kRe+bqgE!l$2oMIb{f|SSo>WaW8C`$0OeKoQuq8^=ZM}eqY{?Ytg0F8c* zA+cfQL(Z;RO&vZ!XeIsV=w|q!1?XDe)8COoHA#d7q3}3uG8U z`M%X&4ZM(n?db6qu(TKFDeu}+QT;npLK$)ZSu4Sn=PRO2r8>A&=nS`{_$_~uxGXy# ze{e$Q14~l?09!+?=Y_j>Q5vyjNnUXAhRu25<|!x#r;i^NosD1|6$!s4;Tne6^u02w z%w?Jg+lUUQzV~oSz%yd%ohEg0goTYA(#1X4Yc0S6Y=mP#YY4=h@6eIsY8HC3BtP2R zVFsf}#F7Zefwj<~7`?c(0b>C;CiBF$PI&%IO`Dq)KHZqxH9?04VI{iRcWS(~s&Q;L zi5W`9C|A9r?we<5ZCKs@LE|PB$EUTLgiaB2bT{2lwIDZWxoz;5uHnzzK9SR<6K9v~ z^G>S=$`WtV6pr(6t+hPciZh5+)I9@0^GG6%g1HJ*=~AVgHwTO%xc+5*j7-`n+##lZ zH4}{SEGwG5Ngkd|wqfOCrj7ff)ZQ5y|GWGRdWX=P7t+&u%~45&Y_xoKumFHVx!d~& zgs?7=Rl|HVHp9CU4(^9%vI$#@d0pAfoT?ieULh$_O3B=uKoa=n)8&EawLNyoCXFlr zl-v?-{v8CIX(ipI;*w$8g=eLqv>;xA3;CmuZZ}!#aq*q!6f%22s_aEru{d{rv5>P& zrYm5d2WRUDtb+>w1{~U1bRjAt6nGyqeKzo*j~qlWBe$D0X^}kQut7xXY5mUjz(EsC z?(y1Pda~ha;y(V?$O{kyXeI-Z;4n-)s!R1V#qO=(vPjWtn;)RRYaa(i^~E0@y6*=| znJ~3~7kA!~4j<4JL&3gB)3r+Uop7SCbuRIC#Bk_E}d%aor*8Z4#?6z-P}L-DHV3Ijz`K6K>}A#C(j05cKyx+=uLRu?ChExbJFdim z-_!5)je8fFMMGEJnC7`vIR{v@r~JXmbTbe9fu(vGi6m>wNd7t%A7l_fTmdET+)jiG~n#bB&#((v+6RvYlMZ^THRRGX}SSjzsjAc3Nv?1yX7kH)tJ9qz=n zluN_J+_#={IP~7uR1oTqEVcQ*;|7Em8K;~WtKtm2nnNtb=h5`&T0f+`m{2!qxsu3^z1}HR)mL4m_T&criL1=WB9w{N zxj1y02t|cyNav=QVV$B&HIaE~s5!?ZfYk=&7Kl0L>_yqTb28rd2Bcfl1(BRriEw)Z z@X*dVHQQmm?F>2+;nJi(@Eyg|z4bm$a0HxFe5kg6m+!thl64&sC_5$4^2FbSyAyAL z?{Hl)wGXIBNp>mEUiJ zzPpl&39Er`nvb|XvkBP+R=P@89zAQ79W?!nAdMvwqU6xtNflKdKzY_#5;3xsld08G zU5pPH4#JF+Vs%-Rd^hdH z#!kvPeM@2$`$)wLkhbf_;QVel z&R}~7+I0b#;B{2_y8B%C@!LBse|sc~y74TF4sW^%m;DfqDTE@r61U8+yUO^Yk=I&} z_Nqna;{&j*apQ{0|Di$if1nOx0>JPMw6T8!aBSZiG=HHugMZ)=wts-SzltG@-_~E1 z5YBJS5Zdn^OyB+f0(I>FfOY!ce&+99e~*8W7$f%o5~xd-`$rw51N=60TZ^{F%G8)& zbkz+X;kXoIRY}gRwbq~=ArhcmXGyw)#J#aivB@; zvg*{X#D+A};iYmV=?PoDUey|TVTuen40J{m1iuIvjqJMWf&#C#IX|0?AJDf4$(>0H zPFb@kUJB!JVn#BzXAMCRhm&D|n~a`PWFhT~)#lE_dGe$cn*9a)pQ-=9;(xya|Axo^ z0;s#j{||+vf9t;k{@;qu{~4%bFf!5qj|ly1{AZvJN8J%+_ytq>gx?BQnNB`kzRmMe z&Yb}c4M7}1{Fop)v=xm6T5x5KXmo`Np;p`=6+UVl+}M02dn5hws_Qiq@AK(=a4my}X+V-j?h^X4T+r6M_^j1EVGEHXrB$nsL(NY>zB8~ zv<5K6^nW|qA@lL*s#;HqMx4CG_E0cYC&ADmAz^CU^K|C3?dWAZv>hR8GM<4% z1tBQgLzYr6v%wHEgvV%wPX0;nkt6jlC8(+HrRxFe!{zV+L%Rw1G;u+Ei2_N=3m{pE z-;E|6E*yX)51w7GR(c#d7YmmLfg}Q6Q+cKkw{YoRm9~93+wgIn;~vUNieX?vI)&hE z>Q>`<05IIRqZx!#Ql5p8RK&5uh&Ve_V?FghS$@#DM+we*LkMzNS)s)Xb6Y-vguc_5 z{VD^+DJN$#C-B%@^|R%!)U@-0>u&CwJ_%a__jXa&!V0mQGKBsd*TxuB_Xpa&B}m@) z_edD#C&bvY_+VWx<_yS*4!F~K2B}+sn|O)$K_d;+RiW}Afw|Ok;4Y{A{28uBVKb?~ zcoSENuu&mQ6H0J^1Wh?G=e1QA*cKW%!fuCyj8r*P7tNn;;T99tr6h&wVY~=Y8gRdH zx$8CqEsa7D-wUXW&Yh$1r?%XT3JwLGIRCiKa5?4(JZF!Y%Wb`p>V|sO3LdOU+)&sO zn8TO83U(WtRyikt+D0DP<@E&{LIsSNH8fO=E)i^22JEz+D( zE|7h5P`s--hCp3c`D!w3A$dIRi|vwcDIT4K^o|0K`{Iv=_-K~$)eiaD!}-%Ey5CVL zJI!fhcmdP4few#-*#U!=P5xowutj(rA^9r=SkUHvaTr*0aTb7G%e$jHO>XsdgHHrC z#GYHBoqJlm@{_;r#LvV~)s-PYbyOx+eFmap2i9dKGENDV*il6bEET6icVRS}4AlLL zF^jL#Lk3%BsZoSGjdUran~EY85*UJwmE3mrp-kGuMRzFjMJ*lfk)UVGX1h$we>Lc{ z!m_iyaZwHi^*|WJb6JNWE(T8+s}~!jJHx7YspzeCmA_JrHub9|`Ti&xLl5T_q_~n+ z*2GlTE-M$V`$>XWQ>NW)Q}MCj-BM;v8bB59mlUxL$nY$92G`txG<{$)AZwf<(GpsW z^wP?jys+GmQHMvFDq3((?eg>;o7yY;SaP10sq@ECafIX`Y?2_-2FZ{IWK|jITw!3t zt<-d$#1#}}W`lhaZmgh417b>@=8H>e@R9@`=_aV9n-v!Hp#@04JH(Y4V^kzb5A5%m z$=}yVzweAT z!N!J?qB-E7URfu&(BQwQOf@SUL{RNS*ISg^u1k|%M{BI$L1Z1_wb=tq^&ayUR{`I) zmFcL{pz8{u)~(L=+BZgYl!v;eUhLeutZyZ)K!1r==^nnetUr{KuH1qemgU&?p`Wkr zU8^g&70bKRuV0)#d&@L2jd~dR-dU@m0%p|SR8StF&JHZnUtFXX5{jxkSiF;- zbCM>rj-~)w995#48c522T~ej3sg=|HDLI=R$45em2rUsh11Z)4 z$Txyts`tBaZyP?AfL6}e@0WZ5zj~G1Kv@HK9JNb6ITqe*3(!_>ak{acp51ox?jCF) zuzc+ko!g(pC2OdfrL%fO;hj{!ke6Rt1?5A_j)XPVKXNh%6JmH7IqYCQ0ULNz0Bu9I z7($K%?kLBPV*P`*mLkj@TJEwE5%rq%Q_*WsV6yKpn9k-i+zyOv_U)dXwPbrp#G$T2 zz99KSj_(k)p6Ow#jK4m;V2qrpGo0EV*g0&1pSE!mk;!e^qMt=2fb8mfFVTHRa`iB$ zcy@u}FAJ^(rFm2XSUT{1RDMFww4(aRMuLzfg(?aD0@o4X!QG@UWpsWERvelo2iTnt zjJIWn_AI)C5U0X|#2!-m!Dyq%Ke2X#fFXuiuFZi)}Q$e*_fC-6Cl zQS=jZTW`$7qPo(xW!j->8SDpHcDvmn-S|ek{Acl?2OdID0*-Y6F^p(Lm$V_yk<{Vr z)zt(Kn@koD8shjLFoB+S#`$xFd{KG5?9=N!o%9%^Z#tD=MaEmcUkJ-g#s%8@-Y4Kc zL;9}L*jzc^kwg8@_WA$_U4z%&4P;NGDj*~i)ZvL}7m|cm6!U*4BzPSQsCkK1a=Zfy z@E|p$143ndpbhbWD{Ov?k0dq2i><}`scB-E0mtq^+|8KFMHTpMS52thF>ZUhq1ULe z_84YAV~3pX!%c_VFNc|K6qpBS43SanL6#KD*)33PG~%_weNCP}s7H%TkZk)1DtfBs z7N>n8ZdRjS(jSUm!5+lJA06!zbI>>7)oVx{pQWOy<)2^9G9|DQfvhwJvfbJH- zaJ6n?ip3-=2(&W7=w<$<&x&bCL<`4tFM*xSoUpJNN(L1ZNJ!YQQ|RvZIeDDY5=*r- z_mM^G3wYljx#_Ds9c&5X2W^#Rjmz_wC@DCe3$V^awSrt0qMZXXPDd5H5ATphlV}#S z$!sN*B`vM6IuS6n(U!Bj8Cm77_h2srHH1GYx;(2pcNcF6R|g6(v`$XvARO*vsD04P zx21ZFGZ3CfASKLJ_wXTLCll?D50{B zdm(zctrC7~c(okaW{P7SBNJf;9nzs^o@qbM9H%v*@Y1nfj8Kih$jlSS*W@?h^#>nE zyCTVq@2Z`_F#TqEFkVzVoonb#DG-xi-*x`=f>Inmr1suj>487bnM5ut4%iZa?2{;c zBeidXo7z|o`W6rAl*xko>V~Et=8|r2mr*x+X{^Ut=k|kfX((6bXV=hcw^xa!Q3Pq& z>dMV%M|uPbdUT^)Vl(YK=_b3WE6~aw-Z@wT30SdIKeKsWJ^nE1%B(fMXGnRP^D1+* zv!=cEIYrR1|50m3IjCSAE6YoqjQF{VGQFyt2MSm8?u!{kK`u-CMk7^gw>*ZntZBh8-%7~u=-GyBlY#%Oz|H$soqydGJvqO5yy z^DQO&J|`D=5h@#Wx>o-rT>GA&MrOEVY*F|xd~ttZeVORuyoB$Zxa?Ja#ZuU9o5N~* zI8Uv#l}=nDf)Djj3d-_)#MsOC)r%_oOV5lGyesP5-=) zAr@61?;Y2s!>RR_bKPv6yAgwaZGk((#MS8fyArgG^1WzD;z;V$rP=rU`+7t{mrx86b z`u1BbKhwj%_d`~ObOR8W4ykk$MZyBuf3jLTCrN4Dh|19S&luYd=(w7YSGE7pd|ViG z_BHZwPl{siC`Uh<&S|YXk2yX&N*$7CsBaVN1qx#t0a^~>zxxUNdtoCU27=cFOTcMg zGrNmVf{t~)DEvX5)r7+sX=W8*_k59hg#WILvCRZI!rMk#_l}$vz#WU_hAShp0bT21 zoyd$F>BZUMbK?F%jqN)}G#w%A3H=By0;>Rvk`xbx-JsgtvdP2zuma++EfZK+upwCx z3Jm2Vr2O>^h*?80tLwD-?Hm1M@-<<2{4*urRCu8R#SWAn7d9_ZF+7RdX}$By)R5-IKrl^v z9OfKjib&9D*-2g^JtN$UL)@ZJyU^-?ASX=!rZ{~Y|LMZ;U)A1!>%Z5g4&REswg66l z&Hs*kF#XplN}k=GzK!uQt^V=BdBK7iRq5&xrB&gz>G4%X!TM!Y{^{-#5k;-7wMFT{ zGPM5;`2ULkKdr#O$OjYKf4~k5-^TwYx?H|dI0pd7Z*6GXZ*}Ou$G?Lx8vd8)+TR#s zrB`i?&r6T-hl|tK*RwLqHjsFy?(JGQLAgnN*l9l5W_~f;*hTOFSA%cE!2)jl!97w9$#%SLe&L^b~-QQcr zp1OU%?o7QseRGerC&{mjlkBPf3SS_2U0@Thr z1)&oT{11tm*QYux;rW%UtfhpZTKACjady44vwDy)o%NWM)U(wXc&nfP{3)&c-VA=r zT(P#I(LT|{?$7?qoVt)Pi>0$P_q1g2tzxcFLOcW6$uT!tiK^#lRrAj&*MYmV_4Y}z zhTIrUqFn+qRerKc>-i0zf_IWK7cOR`oBmMUbbyb^Di>F~{wHs2SV258u9ge4Lw1B_ z3hL^UO&woq1t!zyWW>-`T?LMZET2sqV(m^{Q-qlAzfizN*vk=3!I zjZSd~%m(V9ktw+qM!-}N=Fn`KN6e**a{++xpWWawZO2AUP^h$o%rUfgPx7uCXI=dp z;f~zucoRjq6JjQui@)mT1RhHl($ZTr2uEXNtuW2UjF+Zsx{_ycSPp;ng|txVH zG+Fc2;Y~;p&r<&61BhX^obi?{!eJbSQ5m>9#VA{Zrlr8OP&yVpBNC2fwoTmloORezyEFe)?(cAt0gXkg1=* zDt81RiASwuX`kPdkSY>13Cm(k(c-m{!n~0?GHc|d!4kORJT)@f$Z);nipN3(Vn+=W zp8{e&mYT|dja60%XKyG}fqNh$#J9CO68}FlGpq36$Lo483>Q5&3 zG|U5z)!+HHk7x(~sK~lG5^Y?mSu1667HMsfLH#{jG+AJLrE2+aP29V2hz#<^UTFqG zHVLnf_u*Ln19XQ&GciFxJD3(@LP4M|o9#tU4aI#JH#|{2IU|mixM*3xf}*z{PXR5u zGo)D)b6FW$w2gq%@Fe=BmJ3kk1XBF{uTvE|$O|+^YY&v?!l%x0dMeq&HR?V5yPO1! z3_IBG#L>1gbO_AY9;&H~wairGyKIPG7iEROmUvR6(8TG}RHeE4-nPtJ=H7<*shMry zTXHOr!);A8cBhl+Z*@~za$s;KHxZ+|WaXp=V+2K)e;92{^<=Yos}c^S`(koY@+xK1 zT{3(^9Nr+W?-#5Hyub_hCu|Qn@ zzW_i0zyDAkW9;|&{rvLlk6%As$**ij7vV6h@P)`0gTJ?QY}Z^YHU2OE^?AJ@zAG<~ VCVMF Date: Wed, 9 Jul 2025 00:20:49 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=A1=D0=BF=D0=B0=D1=82=D1=8C=20=D1=85?= =?UTF-8?q?=D0=BE=D1=87=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- autumn-properties.json | 2 +- ...270\320\260\321\202\321\203\321\200\320\260.os" | 14 ++++++++++---- ...264\320\260\320\244\320\260\320\271\320\273.os" | 1 - ...270\320\272\320\260\321\206\320\270\320\271.os" | 4 ++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/autumn-properties.json b/autumn-properties.json index a6d8690..355903b 100644 --- a/autumn-properties.json +++ b/autumn-properties.json @@ -21,7 +21,7 @@ }, "logos": { "logger": { - "oscript.lib.share_bsl": "DEBUG" + "oscript.lib.share_bsl": {"level":"DEBUG", "stringlayout":"%Уровень%:%ДатаВремя% - %Сообщение%"} } } } \ No newline at end of file diff --git "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" index 5c1e191..caaab66 100644 --- "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" +++ "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" @@ -3,6 +3,9 @@ &Деталька("TELEGRAMM.TOKEN") Перем Токен; +&Пластилин +Перем МенеджерПубликаций; + &Желудь &Прозвище("Команда") Процедура ПриСозданииОбъекта() @@ -18,11 +21,14 @@ Процедура Обработать(Сообщение) Экспорт - НажатаяКнопка = Сообщение["callback_query"]["вфеф"]; - Если НажатаяКнопка = "NEW" Тогда - - + Клавиши = Сообщение["callback_query"]["message"]["reply_markup"]["inline_keyboard"]; + КнопкаНовая = Клавиши[Клавиши.ВГраница()]["callback_data"]; + ИндентификаторФайла = СтрРазделить(КнопкаНовая, "_")[1]; + + НажатаяКнопка = Сообщение["callback_query"]["data"]; + Если КнопкаНовая = НажатаяКнопка Тогда + //МенеджерПубликаций КонецЕсли; diff --git "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" index acc23cb..e9af233 100644 --- "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" +++ "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" @@ -8,7 +8,6 @@ &Пластилин Перем МенеджерПубликаций; -Перем ИдентификаторИДФайла; &Желудь &Прозвище("Команда") diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" index 0fa49eb..eb228b3 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" @@ -134,7 +134,7 @@ Отбор = Новый Соответствие; Отбор.Вставить("Идентификатор", Идентификатор); Сущности = МенеджерСущностей.ПолучитьОдно(Тип("ИДФайлов"), Отбор); - Возврат Сущности.ИДФайл; + Возврат Сущности.ИДФайла; КонецФункции Функция НайтиИдентификаторПоИДФайла(ИДФайла) Экспорт @@ -142,7 +142,7 @@ Отбор = Новый Соответствие; Отбор.Вставить("ИДФайла", ИДФайла); Сущности = МенеджерСущностей.ПолучитьОдно(Тип("ИДФайлов"), Отбор); - Возврат Сущности.ИДФайл; + Возврат Сущности.Идентификатор; КонецФункции Процедура СохранитьЗаписьИДФайл(ИДФайла) From 4fe8e8f28a792aab4fa505fe813955dc1385fb62 Mon Sep 17 00:00:00 2001 From: Pavel Chegodaev Date: Wed, 9 Jul 2025 00:42:07 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=A2=D0=BE=D1=87=D0=BD=D0=BE=20=D1=81?= =?UTF-8?q?=D0=BF=D0=B0=D1=82=D1=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js.json | 22 ++++++++++++++++ packagedef | 5 ++-- ...20\260\321\202\321\203\321\200\320\260.os" | 26 ++++++++++++++++--- ...20\272\320\260\321\206\320\270\320\271.os" | 2 +- 4 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 js.json diff --git a/js.json b/js.json new file mode 100644 index 0000000..8eb7002 --- /dev/null +++ b/js.json @@ -0,0 +1,22 @@ +{'update_id': 726598677,'callback_query': + {'id':'988241522275206274','from': + +{'id': 230092909,'is_bot': false,'first_name':'Павел','last_name':'Чегодаев','username':'Un_tru','language_code':'ru','is_premium': true + },'message': + + {'message_id': 437,'from': {'id': 7967956539,'is_bot': true,'first_name':'sharebsl_bot','username':'sharebsl_bot' + },'chat': {'id': 230092909,'first_name':'Павел','last_name':'Чегодаев','username':'Un_tru','type':'private' + },'date': 1752007338,'text':'Ранее вы уже публиковали файл с таким именем, заменить или выложить еще раз?','reply_markup': {'inline_keyboard': [ + [ + {'text':'08.07.2025 22: 02: 15','callback_data':'1' + } + ], + [ + {'text':'Сделать новую публикацию','callback_data':'NEW_8' + } + ] + ] + } + },'chat_instance':'-7815209320371019100','data':'NEW_8' + } +} \ No newline at end of file diff --git a/packagedef b/packagedef index cfe6bc6..e73fa31 100644 --- a/packagedef +++ b/packagedef @@ -1,7 +1,7 @@ Описание.Имя("share-bot") .Версия("1.0.0") .Автор("Чегодаев Павел") - .АдресАвтора("https://github.com/asosnoviy") + .АдресАвтора("https://github.com/untru") .Описание("Отправка в телеграмм исходников и их разбор") //.ВерсияСреды("2.0.0") .ВключитьФайл("src") @@ -11,7 +11,8 @@ .ЗависитОт("oint") .ЗависитОт("1connector") .ЗависитОт("autumn-annotation-types") - .ЗависитОт("autumn-logos") + .ЗависитОт("autumn-async") + .ЗависитОт("autumn-data") .ИсполняемыйФайл("main.os", "share-bot") ; diff --git "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" index caaab66..00caf73 100644 --- "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" +++ "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" @@ -20,16 +20,36 @@ Процедура Обработать(Сообщение) Экспорт + //TODO Получить имя файла + //Продумать и доделать обновление старых gist + Сообщить(OPI_Инструменты.JSONСтрокой(Сообщение, , Ложь, Ложь)); + + ЧатИД = Сообщение["callback_query"]["message"]["chat"]["id"]; + ПользовательИД = Сообщение["callback_query"]["message"]["from"]["id"]; + Клавиши = Сообщение["callback_query"]["message"]["reply_markup"]["inline_keyboard"]; КнопкаНовая = Клавиши[Клавиши.ВГраница()]["callback_data"]; - ИндентификаторФайла = СтрРазделить(КнопкаНовая, "_")[1]; - + ИДФайла = МенеджерПубликаций.НайтиИДФайлПоИдентификатору(СтрРазделить(КнопкаНовая, "_")[1]); НажатаяКнопка = Сообщение["callback_query"]["data"]; + + ДвоичныеДанные = OPI_Telegram.СкачатьФайл(Токен, ИДФайла); + НомерСообщения = Сообщение["update_id"]; + + ДанныеДляРазбораФайла = МенеджерПубликаций.НовыйДанныеДляРазбораФайла(); Если КнопкаНовая = НажатаяКнопка Тогда - //МенеджерПубликаций + ДанныеДляРазбораФайла.Обновление = Истина; КонецЕсли; + + ДанныеДляРазбораФайла.ПользовательИД = ПользовательИД; + ДанныеДляРазбораФайла.ИДПубликации = НомерСообщения; + ДанныеДляРазбораФайла.ДвоичныеДанные = ДвоичныеДанные; + ДанныеДляРазбораФайла.ИДФайла = ИДФайла; + ТекстОтвета = МенеджерПубликаций.ОбработатьФайл(ДанныеДляРазбораФайла); + OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатИД, ТекстОтвета); + + Сообщить(ТекстОтвета); КонецПроцедуры diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" index eb228b3..2037b65 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" @@ -89,7 +89,7 @@ Результат.Вставить("ИмяФайла"); Результат.Вставить("ИДПубликации"); Результат.Вставить("ДвоичныеДанные"); - Результат.Вставить("Обновление"); + Результат.Вставить("Обновление", Ложь); Результат.Вставить("ИДФайла"); Возврат Результат; From faa23872f9cbccaa13918cb4cf119d8f34fe9a1f Mon Sep 17 00:00:00 2001 From: Pavel Chegodaev Date: Wed, 9 Jul 2025 12:53:27 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=95=D1=89=D0=B5=20=D0=BD=D0=B5=D0=BC?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 8 +- .gitignore | 1 + docker/Dockerfile | 2 +- main.os | 1 + ...20\260\321\202\321\203\321\200\320\260.os" | 22 ++--- ...20\260\320\244\320\260\320\271\320\273.os" | 5 +- ...20\260\320\271\320\273\320\276\320\262.os" | 13 --- ...20\272\320\260\321\206\320\270\320\271.os" | 98 +++++++++++-------- ...320\260\321\202\320\276\321\200Paste1C.os" | 11 ++- ...20\272\320\260\321\206\320\270\320\271.os" | 0 ...20\260\320\271\320\273\320\276\320\262.os" | 17 ++++ 11 files changed, 102 insertions(+), 76 deletions(-) delete mode 100644 "src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\224\320\244\320\260\320\271\320\273\320\276\320\262.os" rename "src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" => "src/data/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" (100%) create mode 100644 "src/data/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\244\320\260\320\271\320\273\320\276\320\262.os" diff --git a/.env.example b/.env.example index 53beae8..d327f9d 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,3 @@ -GRAFANABOT_TELEGRAMM_TOKEN=12365:jahsJHFhvdgjaJGHF -GRAFANABOT_TELEGRAMM_USERS=66660503,3883884329 -GRAFANABOT_TELEGRAMM_GROUPS=-3455345434,-6786786868 -GRAFANABOT_GRAFANA_URL=http://grafana.local:3000 -GRAFANABOT_GRAFANA_TOKEN=sldjfnertmhcenhtkehw== \ No newline at end of file +SHAREBOT_TELEGRAMM_TOKEN=12365:jahsJHFhvdgjaJGHF +SHAREBOT_TELEGRAMM_USERS=66660503,3883884329 +SHAREBOT_TELEGRAMM_GROUPS=-3455345434,-6786786868 diff --git a/.gitignore b/.gitignore index f31d3bc..fe92356 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ oscript_modules/ .env unpack/ +bin/ db.db \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile index 2628b5e..e3663ff 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,4 +9,4 @@ COPY ./main.os . RUN opm install opm && opm build && cp share-bot-*.ospx bot.ospx && opm install -f bot.ospx -CMD ["grafana2telegramm-bot"] +CMD ["share-bot"] diff --git a/main.os b/main.os index e04ba53..775e5be 100644 --- a/main.os +++ b/main.os @@ -1,5 +1,6 @@ #Использовать "./src/core" #Использовать "./src/controller" +#Использовать "./src/data" #Использовать autumn #использовать autumn-annotation-types #Использовать autumn-logos diff --git "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" index 00caf73..dc9160d 100644 --- "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" +++ "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\232\320\273\320\260\320\262\320\270\320\260\321\202\321\203\321\200\320\260.os" @@ -20,22 +20,22 @@ Процедура Обработать(Сообщение) Экспорт - //TODO Получить имя файла - //Продумать и доделать обновление старых gist - Сообщить(OPI_Инструменты.JSONСтрокой(Сообщение, , Ложь, Ложь)); - - ЧатИД = Сообщение["callback_query"]["message"]["chat"]["id"]; - ПользовательИД = Сообщение["callback_query"]["message"]["from"]["id"]; + Сообщить(OPI_Инструменты.JSONСтрокой(Сообщение, , Ложь, Ложь)); + НомерСообщения = Сообщение["update_id"]; + + СообщениеНажатиеКнопки = Сообщение["callback_query"]["message"]; + ЧатИД = СообщениеНажатиеКнопки["chat"]["id"]; + ПользовательИД = СообщениеНажатиеКнопки["from"]["id"]; - Клавиши = Сообщение["callback_query"]["message"]["reply_markup"]["inline_keyboard"]; + Клавиши = СообщениеНажатиеКнопки["reply_markup"]["inline_keyboard"]; КнопкаНовая = Клавиши[Клавиши.ВГраница()]["callback_data"]; - ИДФайла = МенеджерПубликаций.НайтиИДФайлПоИдентификатору(СтрРазделить(КнопкаНовая, "_")[1]); + + ИнформацияОФайле = МенеджерПубликаций.ИнформацияОФайлеПоИдентификатору(КнопкаНовая); НажатаяКнопка = Сообщение["callback_query"]["data"]; - ДвоичныеДанные = OPI_Telegram.СкачатьФайл(Токен, ИДФайла); - НомерСообщения = Сообщение["update_id"]; + ДвоичныеДанные = OPI_Telegram.СкачатьФайл(Токен, ИнформацияОФайле.ИДФайла); ДанныеДляРазбораФайла = МенеджерПубликаций.НовыйДанныеДляРазбораФайла(); Если КнопкаНовая = НажатаяКнопка Тогда @@ -46,10 +46,10 @@ ДанныеДляРазбораФайла.ИДПубликации = НомерСообщения; ДанныеДляРазбораФайла.ДвоичныеДанные = ДвоичныеДанные; ДанныеДляРазбораФайла.ИДФайла = ИДФайла; + ДанныеДляРазбораФайла.ИмяФайла = ИнформацияОФайле.ИмяФайла; ТекстОтвета = МенеджерПубликаций.ОбработатьФайл(ДанныеДляРазбораФайла); OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатИД, ТекстОтвета); - Сообщить(ТекстОтвета); КонецПроцедуры diff --git "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" index e9af233..954a920 100644 --- "a/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" +++ "b/src/controller/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\244\320\260\320\271\320\273.os" @@ -48,7 +48,7 @@ ТекстОтвета = "Ранее вы уже публиковали файл с таким именем, заменить или выложить еще раз?"; Клавиатура = СформироватьКлавиатуруПоМассивуКнопок(ПрошлыеПубликации); - + МенеджерПубликаций.СохранитьИнформациюОФайле(ОтправляемыйФайл); OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатИД, ТекстОтвета, Клавиатура); Возврат; @@ -63,7 +63,8 @@ ДанныеДляРазбораФайла.ИДПубликации = НомерСообщения; ДанныеДляРазбораФайла.ДвоичныеДанные = ДвоичныеДанные; ДанныеДляРазбораФайла.ИДФайла = ИДФайла; - + ДанныеДляРазбораФайла.Обновление = Ложь; + ТекстОтвета = МенеджерПубликаций.ОбработатьФайл(ДанныеДляРазбораФайла); OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, ЧатИД, ТекстОтвета); diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\224\320\244\320\260\320\271\320\273\320\276\320\262.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\224\320\244\320\260\320\271\320\273\320\276\320\262.os" deleted file mode 100644 index 795e18f..0000000 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\224\320\244\320\260\320\271\320\273\320\276\320\262.os" +++ /dev/null @@ -1,13 +0,0 @@ -// BSLLS:ExportVariables-off -&Идентификатор -&ГенерируемоеЗначение // Заполняется автоматически при сохранении сущности -&Колонка(Тип = "Целое") // Хранит целочисленные значения -Перем Идентификатор Экспорт; // Имя колонки в базе - `Идентификатор` - -&Колонка(Тип = "Строка") -Перем ИДФайла Экспорт; // Колонка `ИДФайла` - -&Сущность(ИмяТаблицы = "ИДФайлов") -Процедура ПриСозданииОбъекта() - -КонецПроцедуры \ No newline at end of file diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" index 2037b65..6f1cd5a 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" @@ -21,7 +21,13 @@ КонецПроцедуры - +// Обработка входящего файла, разбор и публикация +// Параметры: +// Структура - см НовыйДанныеДляРазбораФайла +// +// Возвращаемое значение: +// Строка - ссылка на публикацию кода +// Функция ОбработатьФайл(ДанныеДляРазбораФайла) Экспорт Каталог = "unpack/" + ДанныеДляРазбораФайла.ИДПубликации; @@ -34,9 +40,8 @@ Декомпилятор.РазобратьФайл(ПутьКФайлу, Каталог); ТекстыМодулей = РаботаСМодулями.ТекстыМодулей(Каталог); - ДанныеПубликации = Опубликовать(ТекстыМодулей); - СохранитьЗаписьОФайле(ДанныеДляРазбораФайла.ПользовательИД, - ДанныеДляРазбораФайла.ИмяФайла, ДанныеПубликации.ИДПубликации, ДанныеДляРазбораФайла.ИДФайла); + ДанныеПубликации = Опубликовать(ТекстыМодулей, ДанныеДляРазбораФайла); + СохранитьЗаписьОФайле(ДанныеДляРазбораФайла); УдалитьФайлы(Каталог); УдалитьФайлы(КаталогИсходник); @@ -45,9 +50,16 @@ КонецФункции +// Получить список прошлых публикаций +// Параметры: +// Структура - см НовыйОтправляемыйФайл +// +// Возвращаемое значение: +// Соответствие +// * Ключ - Дата публикации +// * Значение - Идентификатор записи БД Функция ПолучитьСписокПубликаций(ОтправляемыйФайл) Экспорт - СохранитьИДФайл(ОтправляемыйФайл.ИДФайла); ИдентификаторИДФайла = НайтиИдентификаторПоИДФайла(ОтправляемыйФайл.ИДФайла); ПрошлыеПубликации = Новый Соответствие; @@ -57,7 +69,7 @@ Для Каждого Сущность Из Сущности Цикл ПрошлыеПубликации.Вставить(Строка(Сущность.ДатаОтправки), Сущность.Идентификатор); КонецЦикла; - ПрошлыеПубликации.Вставить("Сделать новую публикацию", "NEW_" + ИдентификаторИДФайла); + ПрошлыеПубликации.Вставить("Сделать новую публикацию", ИдентификаторИДФайла); Возврат ПрошлыеПубликации; КонецЕсли; @@ -76,12 +88,6 @@ КонецФункции -Процедура СохранитьИДФайл(ИДФайл) Экспорт - - СохранитьЗаписьИДФайл(ИДФайл); - -КонецПроцедуры - Функция НовыйДанныеДляРазбораФайла() Экспорт Результат = Новый Структура(); @@ -89,23 +95,14 @@ Результат.Вставить("ИмяФайла"); Результат.Вставить("ИДПубликации"); Результат.Вставить("ДвоичныеДанные"); - Результат.Вставить("Обновление", Ложь); + Результат.Вставить("Обновление"); Результат.Вставить("ИДФайла"); Возврат Результат; -КонецФункции -Функция НайтиЗаписьОФайле(ИДПользователя, ИмяФайла) - - Отбор = Новый Соответствие; - Отбор.Вставить("ИДПользователя", ИДПользователя); - Отбор.Вставить("ИмяФайла", ИмяФайла); - Сущности = МенеджерСущностей.Получить(Тип("ИсторияПубликаций"), Отбор); - Возврат Сущности; - КонецФункции -Функция Опубликовать(ТекстыМодулей) +Функция Опубликовать(ТекстыМодулей, ДанныеДляРазбораФайла) Результат = Новый Структура("СсылкаНаПубликацию, ИДПубликации"); Публикаторы = Поделка.НайтиЖелуди("Публикатор", , "Соответствие"); @@ -129,38 +126,55 @@ КонецФункции -Функция НайтиИДФайлПоИдентификатору(Идентификатор) Экспорт +#Область РаботаСБазой + +Процедура СохранитьИнформациюОФайле(ИнформациюОФайле) Экспорт + + ИсторияПубликаций = ХранилищеСущностейИДФайлов.СоздатьЭлемент(); + ИсторияФайлов.ИДФайла = ИнформациюОФайле.ИДФайла; + ИсторияФайлов.ИмяФайла = ИнформациюОФайле.ИДФайла; + ИсторияПубликаций.Сохранить(); + +КонецПроцедуры + +Функция НайтиЗаписьОФайле(ИДПользователя, ИмяФайла) + + Отбор = Новый Соответствие; + Отбор.Вставить("ИДПользователя", ИДПользователя); + Отбор.Вставить("ИмяФайла", ИмяФайла); + Сущности = МенеджерСущностей.Получить(Тип("ИсторияПубликаций"), Отбор); + Возврат Сущности; + +КонецФункции + +Функция ИнформацияОФайлеПоИдентификатору(Идентификатор) Экспорт Отбор = Новый Соответствие; Отбор.Вставить("Идентификатор", Идентификатор); - Сущности = МенеджерСущностей.ПолучитьОдно(Тип("ИДФайлов"), Отбор); - Возврат Сущности.ИДФайла; + Сущность = МенеджерСущностей.ПолучитьОдно(Тип("ИДФайлов"), Отбор); + Возврат Сущность; КонецФункции -Функция НайтиИдентификаторПоИДФайла(ИДФайла) Экспорт + +Функция ИнформацияОФайлеПоИД(ИДФайла) Экспорт Отбор = Новый Соответствие; Отбор.Вставить("ИДФайла", ИДФайла); - Сущности = МенеджерСущностей.ПолучитьОдно(Тип("ИДФайлов"), Отбор); - Возврат Сущности.Идентификатор; + Сущность = МенеджерСущностей.ПолучитьОдно(Тип("ИДФайлов"), Отбор); + Возврат Сущность; КонецФункции -Процедура СохранитьЗаписьИДФайл(ИДФайла) - - ИсторияПубликаций = ХранилищеСущностейИДФайлов.СоздатьЭлемент(); - ИсторияПубликаций.ИДФайла = ИДФайла; - ИсторияПубликаций.Сохранить(); -КонецПроцедуры - -Процедура СохранитьЗаписьОФайле(ИДПользователя, ИмяФайла, ИДПубликации, ИДФайла) +Процедура СохранитьЗаписьОФайле(ДанныеФайла) ИсторияПубликаций = ХранилищеСущностейИсторияПубликаций.СоздатьЭлемент(); - ИсторияПубликаций.ИДПользователя = ИДПользователя; - ИсторияПубликаций.ИмяФайла = ИмяФайла; + ИсторияПубликаций.ИДПользователя = ДанныеФайла.ИДПользователя; + ИсторияПубликаций.ИмяФайла = ДанныеФайла.ИмяФайла; ИсторияПубликаций.ДатаОтправки = ТекущаяДата(); - ИсторияПубликаций.ИДПубликации = ИДПубликации; - ИсторияПубликаций.ИДФайла = ИДФайла; + ИсторияПубликаций.ИДПубликации = ДанныеФайла.ИДПубликации; + ИсторияПубликаций.ИДФайла = ДанныеФайла.ИДФайла; ИсторияПубликаций.Сохранить(); -КонецПроцедуры \ No newline at end of file +КонецПроцедуры +#КонецОбласти + diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\202\320\276\321\200Paste1C.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\202\320\276\321\200Paste1C.os" index c80e591..05a22c2 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\202\320\276\321\200Paste1C.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\202\320\276\321\200Paste1C.os" @@ -11,10 +11,11 @@ КонецПроцедуры Функция Опубликовать(ТекстыМодулей) Экспорт - + //TODO Продумать удобный способ работы с paste1c, главная проблема в том что + //разные модули будут публиковаться по разным ссылкам, что не удобно для анализа Ссылки = Новый Массив; - АдресРесурса = "https://paste1c.ru/paste"; + АдресРесурса = АдресРесурса(); Заголовки = Новый Соответствие(); Заголовки.Вставить("API-origin", HEADER); @@ -49,4 +50,10 @@ Возврат Тело; +КонецФункции + +Функция АдресРесурса() + + Возврат "https://paste1c.ru/paste"; + КонецФункции \ No newline at end of file diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" "b/src/data/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" similarity index 100% rename from "src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" rename to "src/data/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\237\321\203\320\261\320\273\320\270\320\272\320\260\321\206\320\270\320\271.os" diff --git "a/src/data/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\244\320\260\320\271\320\273\320\276\320\262.os" "b/src/data/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\244\320\260\320\271\320\273\320\276\320\262.os" new file mode 100644 index 0000000..19a641b --- /dev/null +++ "b/src/data/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\321\202\320\276\321\200\320\270\321\217\320\244\320\260\320\271\320\273\320\276\320\262.os" @@ -0,0 +1,17 @@ +// BSLLS:ExportVariables-off +&Идентификатор +&ГенерируемоеЗначение +&Колонка(Тип = "Целое") +Перем Идентификатор Экспорт; + +&Колонка(Тип = "Строка") +Перем ИДФайла Экспорт; + +&Колонка(Тип = "Строка") +Перем ИмяФайла Экспорт; + +&Сущность(ИмяТаблицы = "ИсторияФайлов") +Процедура ПриСозданииОбъекта() + + +КонецПроцедуры \ No newline at end of file