From d905e86bbf394599209eec86c515583ae5fcb561 Mon Sep 17 00:00:00 2001
From: Naiel <109038805+naielv@users.noreply.github.com>
Date: Wed, 25 Feb 2026 13:17:52 +0000
Subject: [PATCH] =?UTF-8?q?feat:=20A=C3=B1adir=20funcionalidad=20de=20gest?=
=?UTF-8?q?i=C3=B3n=20de=20mensajes=20con=20soporte=20para=20adjuntos?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
assets/static/appico/message.png | Bin 0 -> 46012 bytes
src/index.html | 1 +
src/page/mensajes.js | 280 +++++++++++++++++++++++++++++++
3 files changed, 281 insertions(+)
create mode 100644 assets/static/appico/message.png
create mode 100644 src/page/mensajes.js
diff --git a/assets/static/appico/message.png b/assets/static/appico/message.png
new file mode 100644
index 0000000000000000000000000000000000000000..763b3f70c9985dda2b02863cee71594e64b35a76
GIT binary patch
literal 46012
zcmb?i^LHh@(=TpyYumQ1TXSn0+ithEZQJeEwry|SZM(H?Tkk&Kzv2BQ$vMe6nVDoV
z_)H>{6r>P=ct9{PFhm(?aTPEy@P9*aFj(k+ot|TvIT%=@yo|Vrn)~XxK9mum`d=Y8
zgLT2?rt*?YBsH4kR5FQ3%$7PH;SPq5D2C2D_=#Pl;Yd{)jXaPpjf>k8$Im}nd$*fe
zZ(B~IKQ0Aipe9TkzvWD3wL8u5Zq;9*Sa>uE=n(lWOGQEaZ-@b!C_I?EwNM6Qj7yc8
zD3k#IZ=Nv@3u^ZE|8Kz_as#r(#BDQ;f9j~+UJg<1+c#Yd$^S?o*m{$+?%j(k`aDzi
zOS7JlE15|!KZmh=P59RP_HE{O$
3_7a%IQV?~$gdcW{ImP6Ut9rkT@D<0
zCtt&mj#Bw2D8J`7Fr@JO@fKlGoW{U1vpu_g)PmeQP7~Qe&>9IoF(IKPs*q9%<>=aH;6W&;!QPJ?HS)RA5ytZ~jMbF#l+f5E3RE4Mo
zTYd;u$ZP?aFS?a=%Qaqh+=<|KH3Lzd(=k}Zg}k=lXHtgx8Vv$Cq1gIZ1w&vp=cQsOLNGZFz1Rn!}Ht$zFFt)!_A*Q_3vUs5t|
zsA|yhi!|h*IgB2Qcyg=0>wa6rnGjFSZ1%efEaP~d1o*pUa85djkD6_3Pj$oUQ8or<
zlD&zw_ilR8{(kn*0!Lzc@-&Gzf>&!1EHAdviVHk_2S~%UGy1AX9*0s|Q6adg2oN3@
z75bcRA^kltI~xTV&VdzW^fUHaTE33_`G<2K$eF-+i2{r&pEA!cnjF%E#QOl}ytF<)
zf<9n%M6v|q^!X}s>c_RITqIh;a!1`+b$Lx-
zMFUz{xxl)XN1L^(&$ok_FgbWEYr|F-!g;7gs*vrFZSAnsnAHZrsM>MiY#6bCt7z}o
z@v`dPE}CMTqRh#!^yE_+g_*$TX8;vPW}j+QuB~t0tg<@o*tsFb{`oz|n7mA|nt8V>
z`W^`-ZvZ@>CeRZBBnA<>Rr?_qdp+Ihfj4x1SGiS40x>WL0d)LkL#PUkh@h=Dkl!$<
zzGN2PssbVTxwyI@i32^8=;Y4~HnsS3hds)V7;bPl7kR?AN&
z^5p5zwMrdfWhpG?O^u!;S4B}n2oD^!Gop>yQq$-r0p55k&HoDQ$_QZUs2_J
z+0rbB<=(vsd_3e+1u5Gq1OBPHMO7A7y_BDj?e+0I^e`orJ_>po2P-FiCnvglV2^;U
zL4~eIK!_A#5tpxJ$^;@8+GbfXxCroZEtqTp@dcy%b4p+2qC(dlf+#cxDMh{ivp`I#4`U!_
z0If$O5sVO}hD0e}sjNl-!E89Bsffjo-3eD{qub+S3G*EJu|-E6_uW`oBnkp{YgMY*
zYKgPjCwDW+)D(?b?)M~KcIskek-7O<4_DaZg6)AB)BT)s!fd%d{qZ_e7Mu^CxRfLt
zdl3!5UIf^8xYQBZ`eAl+6eaTQ&-qcW>lt
zvyvaQm7In#z1rdV!uD80_wO+*9~O=#`)4o$mPV{E3O(Zlirp+dS1BECWUzlUU&QAu
zb`Xk-OOy+BtGaX2=VB1U{BmkoQKYxXN{M6@{uC&dYNrX~IHF3jA7;7NJg!%TQ-fy-
zEb0INkkr-s{|dqwjeZ6xX>Jt>Fr!9g<+THw)l>RFV2t!k%UU|#*S`oWv8T!_Yne4L
zMIgf~QFJl-h+z-udwd*K2F6IKbBTW8_?cOnSE8rSdL{m01HT{Z%9~v)Mb!C4rw(BQelG=
zV#dHe4;uLBd{j?O^=)$5h*Y$slbsbTQ^pLqda8oe!SL6*CTC}NRK0~p?qU#P+L^)S
zZTF~Nb@3ld$5~v}4Z-n~%8xU)$b)aZ^&ngWolUA4z%#2B^u3v%6O*-x^@ia~LMhG`
zx__6L<@^p-=j4ZKZ9Hyds0=4wCOZ%bOg@)+$rq(rZfqL!EuL-wrEKXb9!>k>A-Q4=92+fkveFxoWvmp9nRr<Dx!wk^H^ZvhyKMWJL$AfI&E^OE%hZEp+?jH=8%4fsPBW{C9iA877qZ
z*jbh6FeEI{PR<2oF$}!9wRY<%`61r9CZ@>Vl>}aL2asRGX9uXh#h@PzGGVU*+x+XNV*gp;u&>|?0o7s*&jW|
zK)rP4Y&3YDKs?eVW?P&LZWWP{_>uG%D12
zE*7`$%97_L6&@3D=<=K|bpuCGK8fDX_{zA&0+i~Hgt>moDh4jZ*^BpK^zUTqXtn?3
zJ{QtLNJt#D@X!bf=_!F8+v@&BwBCF6R(+-^pxR_NBl+m~V#g^2@;wSfHfq`$$##F`
zO)}j>yRyt$E0#KY`~@c}5H_5KnZ2C#@_4-E)UO%kE~+Cf8tbhL2lg`P&+e&~08u=p
z24(5NIReXK7Je}`!DSl;Ief6L&SJ|f2AEVY6VgNSYN@KETW>uId5}Bw+kfyx{>0jV
zxaG(4jgh2x94otloNv?>&ferZD#}*y7(&P02|t~%T8a22CyRDoO&fpX)*1&QV)cP{NXleqDAnf(n`bL_4e&jXfGCbwjHG7cUZZo_9d(%&jmbwF
zHe;oy>G))niNf~)Mql>mG+{jh>}!8)t6(3noH>bIqy3w+HAi#()g%K-t_R~^dM8)K&88KKjn*$lK0wpG7Y7pOIV(NSbD_$WxTZLO~Z@Q4X4D15n5Z_Pf
z;C^3$o|~Dv)0Ine{ftd4Uk87AJx<9gOrX5JxDP@W_G;<&Do@;8XJ8EFzRT8-v&AnRPu3<`IoP1#J=>W#KsJFMnkq3|`B
zJe#`8`m$-C)!PC4+zij23c1=JkG%RFU;LdmVZRA)J<%c*%j@WLgWopNbA{`?q~g=D
z+$Q#t>Vll6zC96oWL`g&*Jj1Z4m@0C;ex#vS9`G}-&$?s7f7A5afETwM&kr0
zztX-024|d3IQ{m{c7K@&>C@RF#RMxgy@j+ThL&k>ECl!Mc%bJeg+RU#l_=eE=V-xe
zoM@xmr#z&}K+|>pCOiXbX>ch5E7kSgDPz~1G#e&LKG|}k4f;l_&)w0)q3>O9XlSPX
zd2ytnnBG6O0fyM00j5+)V`G!v<*ISM-MY;epm*Qg!BgsyQMSt5(a)H@IUg8SN;qZf
z0ZbzkmOY}CZ=@|wABY1UVY5V()*{t`K2;cSh>$YdpSw0A=TlKjHbDb_9LYi92$GYO
zG>mk4x=T#D&E`ArZ{u>2TtSJH7VngM5c}K|?*iT2kLOV(R3+a9RvW+KDY8?^=^5~;
z3=Knxeyxgb*_u=m(;-lkib9g1eIDxV6PM7(chH29H(!p939@vjgK@Jt%KfuAHA}o)o?aT;fb3_*Q9yH>RkC3XyGR__p
zS8uUsrtsGu%CpuR+$fzXe@TT7kAuV!Mys@~R^wsOMl>GVpQ5+)n7)@+alCJVcPc84
zIhTSK?keA%n}!?qgq2ZIS-R}Fh43b**Q$Lj?1j?>qNEIniM14cgKPtT37(|6VxE)F
zi3YspcK|fF2R_~$m?b5p>l`PDmJQWR%CY+p+sqdKl=!T13$;6cW@!+?wl`I!D4
zGB6}paZ2!EeWFHj#`0l?2r^6x&--QE(V+#`Tgp
zc&ZcLu$~M
zRPy`ERoQ`5L2T?r!(yaR7Brm2qRjQNA8fzi1
zyuGp3<+jZh8zR&xjIu?E0mM1Qx~4NMm-Woiy(u0V$q?k3CWGaAhxy4Cca_#XB8_^`
zCv3W=i
z3Jy?ERnRVybe)qS>iL-PF)Tuj{;ku+X^8N8!;iI*kP5W2AX6nSd0*q5xN}Z>@we=0
zeS`B&zvbV!)vGrgx$Qa#QC^`>zk`;KrR8=MNp{q?)r@p2Pz3;~B4{ODiHGAa4vqVx
z>ZHqn?Xi2&yEe$d-$b)Y-X7ojXax(d{w9C`cOOrL!M|RH<>4%#zdl
z_?_iLzG(*hkpDH2|o`K5RP_yPra2NBb$q>Kq*euP7VpwI}-o5fDo`iR{_
z*wO3d8Y0UwEiEitL>5le0!Mt{vlt5zVVWv5ZpZDYCbeS8$j
zFhd$!03ucs!fnT&k(%>)%q&+?7yTex9u~p$UN?OGPWS#wIp60~&c}VCN2g~CD5&2z
zSf7*Y>kFh}BRz{gecLw~Hmll@z6%uZ;%u;d5zE|vv1Fo)AYpbztFPfX4Zui;s0P}}
z_i^G-_*d})2b4>m3wD^Z2&f{YdDH^~HqlioSU?}(UtQ&6HY+29v-=MxV`_|n#nYdHa*@ut#_M|=*>PJI}%H}6nNQxyVyLZ~1w
z=iMnZzH=C|$EOXldy3#pFf@TBVg-i0_Ujzjpn%>7l00^5Kk>=WDH--ZN*~X&sNk7k
zezVuQb#0(+2S=S1`=D0T)S4}`l}EIjzR27jM(z6zY;Gbtx}iK0R}?OSpGxrrQaf?K
z-1`rnoR9x}Ot0GthHqh9iv>i-M(&mik>RfX4Vq9G62+c9O(I8t2*nt(nl?gyd%hBu
z#?2dMnV;x|-8Hc_f;=|D@J{xV;A
zXBO&SyRusa0_V!Eqyqy-Jz-8w+Z6<#6gBsq&)>frY=I|QpRGnk-(N>`vMML=MWaJq
zNXIYat}VK&!CnzLBX{qVdJqOkdLFrlef)MnJ`bVu<`@bj-o0%<%$A~I5dsvWisG@<
ziNX7+PbV}wcMuw=>C0xD1ypQNlcM+&*jOp*F=$-#nHKtJ3(n5<
z0T<4tk_r{&>DGWh?hzHiAh4e1{YUg$<99G5LZBaHj^_Y)I@)$140PB_7!kD9MjV8p
zpW>@JB)_GTT2Zk+t`|!@a(%qLR8_@}jNo&RF>3%9nvM|6&@8};KXXXTXHGbJczH!>(LsF8}q
zb-T!c(4Q9mOG?}Dvg0Xaq?|p)F{HX|cGHz|N7KG3f}Nf1HDJ8Z12ZsA4Y|QG*!nkm
z{~R}_af?N~vMn%yw%mq!)jYX3>*?LWmqmR*K${sD#N-$|d~fkjX)$ahB;HeucYh_;
zU?Ir0(m^6(h1k@_OA}ie*Z}a|HWQJWoDK+k_@B^%iS+h#L7?JINmS(K3-sNw7A161
zwDw>$8Vn~6t!-xMuE7hlcRpbkk*niHwuBMT_9~$lZ*{t@F}XmU>&;AzuADE{b_dLAFp!JodG91Z0CXz
z#NbB3KvCb_CIc>dBW&+ZOk}||sr&pywp=!=PR2tVFvMX7{s{}XdKl3_SWdWYT9|vU
z3t9SbKRHm?b*wL#(|Z^Vs;zcOzR0tG3=hS2M?iaIvKAsl^NEbfqPK`X0wocuK%G?3
z^LxO08x@sUW$QWX?+^f@3uoPPSgl{q-3k9weQ8U5E*or;%&`R>n2*lPG2D;1%h}@5
zs-8iGNVcc@y--l*{-;O#>mdqU^)67W+o+gB#d~~cs$$i)#0r^*HQ($ZJ3Ne+h=(t`
zlbWq|!4c|kHI`cxALS$>_;g&BhM7L#@fRQcC^t7dRJ~>5{?66h1{GbTHyRP6WO3vY
z)mu4|S42@DtIJ3EMJ)Z5^6iATI3JR9v09aV6DJkLHiJZC;wXom%{N2}>e2>N-A;bi
zzNj-11cWbj*vg?MVY!d#R2iD=o6ti~h%{P@J28f3f&Pkd57s@OP^Jt(AeJgdq|(gF1T
zoH*!xR?y$He?ew{mz~hjsI06)0DFlZG|{7h0F1Z7#MQ2w31^XYWYE7{$aHlU2@?~M
zPV3apR&jL_slV(=S!+3}2E#k5${)7;t9avW(^RrVA4M5u(qtmKP_7F;kclH336R~6
zMF6I@6%Om`S+JpW->(`>e0&MiDLe0Ov=1M<;@sO8dZ7-pxhM{u@#1{7{$H3~I{b)4T|yz3By
zD(Y1P>vExfRz;fTub$4q(yRq$Ws8^{i5h!e0Z5k9>2yJM|7h?PKhM|ZxH=Qun#p!h
z6%&KxLfFX;h{q3&O@)Y8>lOC>1Endj=rwjd!KT~H3iW|e5R_e|W|5RI66C8l3vzUP
zfx`$CO$K8s$~DLRL~CM_YT8*!
zy3+HU1HtwmPIamR8#nS<&1^#CsHCr_U5w_>-ggu`daVA$Ky
z!RKo*$I8lb_UlCH_cZ2=>B6(jY`LzR#0p8W=~?5CBP6XU4C5JJNaLjzM)}#uJeRje
z7Khv6bAF!=h(RwU4M$j{%Pr(~{my|%3E}?!cOSj&4+G|Gzu{(i(o26E{3TIySF7V?
zUS!{N!6pf{M;##Y#4(v&zMtx+N)E6j@}O-PPL=y?QSSaq1Mh%Pt#u-~8Z
z!+IhRAS@iUwy7j{w5I_19579XXFGLY!So~AN8=S!2Z;lS1Y{_St+hN7cWnVso>
z|ESyUWX?6b*=yCpuaiTB4Go4EQ*QXo9&=jf#a1|3XkM}sd_^QRw+c+9V`W0>I3jc5
z#)Q5(@8=gIZ9DiJw1;BA(be{*z|Hu&II8>crt#U{77RG%cBV*fjOnr&)G;3>cgBWd
z^i=!Kv9Pps%RCyxfAQKoKz-GPa8OLiC;q@1K;XEGQ&v+Gc#-w@ZpQ6+9rN*O^Ec_^
zGy6=?)Y+1~RS3S$ytHr23v@0EUSgt((LrJ^k8>)ITNi>y_v`Ibjc#)`ycq?5+^3k-
zb<7(g`n^ia9OWX}o*QL@X_aAnaxS~Adlk8qvB+@17>VBuQ%&@I#z1+6Kvkd7<4SV0
zJkQbY#0!R56P8p=
z=fz>s-wJ}iv|`X~{njZ&1QURUiV62CU43g{N!R0>RoDZkr}3?s=0LVKu_I+PjF<#x
zG;Kpl6gCK56+-Y0d0)0Xa0Bw)v1_`YIvar!2ARdVK4oK1+V@MzxQKn&iB8u~98K8g
zjZ!t|VcnKicF*xqn^~)aODtR$y7?a5D3E|;OkQ6|Eu|or
zCjKz=I3Z;~m-M_DQBnfqm7NvtxXMe=zkNk|w;fBLZ@Box-CXF=cUs05j7*a__f3U;
zjGFM20o!qd)6@FT$YS!AV7yg
zuRgFf$Gq9LapbdayRfoUDnX^D5Y@NgL?5%&JKplWp>5g0YY$m^KTd9PW=d{*DI_C%
zKsA>o4z3ynr+CDp!xH+VCjq-&%~qZNmpQvN7Fz$%
z6L$fk%xf`Z^Mkq5na_Jc8Z)LSM`Rjt35lSkqmblejw{-5KhAti_IXNcIT2V=oo_GO9^PKUny*RW-K82{QE2iv)s
z#GP+n3pkl=A#^lGbD}3p7uFq5o?XiIf#pQt+%A`7ffr8B2k)vdgFieC3=tKyT&K|L
zu@F+zBs@&jKO8+B(+gMK3F0=`w@SE2um6n!OHK!P60_DLLngW9G?isbBaP5sIK{1ORp+>Kc1^AR|NYrf^-_=
zy%{jU!ak{UU3Rqfy&f~>y01XHcQ4;g_~2B~_DEY@s9NpGR}DZ;&OCCl3AYA~Z_BnDS?e_h(nt0Lg|dFVk}vnat6(IzJ-hQ9
z{i!60ZRf_BE32&x2)XMGIvoe%@E)pJ%nPNxEx_*3PfQrCl_17%RB$>^pZ$ikZ{SnL
z+CzGKI^X}1I$w|8YVrJvKO4LU7l4~}q-$=gn!aUyX
zu47UDInk(Z7M&zPn}6!)04UdMK4_U2G9dgBPBiSU6;9N-4Dv}&Oa?y^^0UJl
zfOodq1rl|`+%_NFkPs!^977l=8$cNP@C4CwB!eiTMXb7m^tm^WyM#WBmt{=b{*3HB
zT?*qAm=qWvX4Tqr1TkTD$Y35E$k%HOjMbO+k1S3YUrkrXZ*&kMddl$XS;Ykc
zNu*#uJQlu!=aPI0xLieHig>uB%I56O7u$d3ptm6Rr4YPWk$LB~;YjO6n_l78J(Zum
zxSNc>?0to+xD-n`G>cHYdEsR7I=B?MkKE57kVrIvpnu5a|mM1S&2Zm6e{t04^)
z5`+!9$?>5uY~^c12~77xdKnJ~61QJR6A4GWHRPGAQZ$?CIKf@h)j`JtN&z5}ysD$7IS%)3SyTnP1iKdS4@hsjFT(K3t>cY$K`>V53@Y&$A!
z$>OzppiAiemcc8LP+j?lf?07^@X?2e*w{bb)IG+S$@zc%Sx)xk3h?McsF@@GW!US?
zKJY$YZhk24{4;`AwnUx3Et3ZKzy%CI$@ioMm5f%JH_u?3Y4cQuWwp#D6mV`5?_OW%aY};?3(ycGeDEo(F!u9(cuH<$=Ual8J6mNn#gKe
z9mX}PHOc0ks|01D9^d5;-24(zWo>aO2^w$(*J{}v412?#>pov;vri8-`RGJfN}ZJ4
zK&HuV$aOLaNk?qJT%_TnHZP_8{A+aibYfwwY`r01UABa#*tioCZwCeu1KHkV3RAld
znUl?|$4oI_=Ptjk$%4c8{dSL9gCYB=CleKxM=zLT{`HQj7uA#sVf;+kUg2w}u;7C(
z2ySMo0Uv+DRwvC>8+hLeS4Uy}fGCJW0_On{?!}H&p8}b2svn+;?`%J$yJC{bjz4R0
zo}l**YP~r~WKyHq#<~A#B5Xi4X+X7X(OoYi&d+TCOOAt$*Y=fj?Cs*p$7KA{^x}rs
zWsXuieDwr#ZT8Iz_q(7()KcKD{BRl;tAKIvAD~@iI`ND^5#YE!O*2rj7M@fg5E(s^
zqx9+7hjgK2-TK5FEwe83DYbKkxNUiK>L^XW3EE)r5>i4*b;+W9^!cTe*>%$MtXOv?
z_iRNG4q$;nHihCl^-7(?`Ebe|n$2UYVxrQ();5n}aWa?B*&AU*zddJ{s9z=l+rJ6e
z|I1hg7rS4TP9B&SUHJGH1HW!MfE(Tqww<)#7q?edA=I)#lC4_z4y*EPxBM8sw*l3)
zP|3!Jz#`>D!yMdUDBZ$U13g~%;$I0cL^`_W+i41|fLXaZSrC6hB^GiW0#fnga*Gzt
z_hvjaMbb#xU>b3R^DV8zyHS=UvOnbI@NqS9hqB>pQlT8GVUFlH$gQ{556-lJ+q0}v
zFajp4*%{@sa=So57^IU(AnIQ1x3gonT)%&{6Nr^Zb)}C`6-d^x5Zle4rZWO=q6SwY
z#P{dI>CZSAP(aTMFT9|SYIfC>vW9BKtr{?K2_ac)kP?s~5=xrMv;%M=O5a~br9$P1
zrVrNSvtx~s$AlU7=pOulSDl5Rs>H+HlV2YJ&->{0@6b}*JqjEJW$!a}zQt9FN#2Lj
z8B?qdtKe(o>Zod#Y~6g~5+G3+eez>a<_~LDMR)d7pRc~WaY%&J091Yti_^=JGV$q%
z0F7t}_cq%&95PS~GNHDY2s(~K|2>S;o-_^D~pY52=oW^NvB1qJCan*{^8(%BXesBVG
zDHf)eLGcRx{*3)-T42dUfT9*E6#B)a;${vdqGc!#i*ONzY;O&EGCuQr6J%Vf7h
z-xpcS!s3ZGpwxi>YS2)K@dx!HU@uRVa~_nxpbAxzQRuOQDA{nzwr3=ag4%)LJH9Bv
z+tN`J09pFVyt4DUom?sLfymsWzkZ*W_myOBnHdUcK3*x^
zLe)v+&*@Ehr=5+Kfn~)7%n$aW7A&?*!3_Ffo=~LSJ(K6&aJ;hdUg{th{qU3sRpR3l
zyn81xZBJ4q5-5Na?x!#i4!DFj3HzNts$j&xt)g_@-jGaUQadulx6v-nbq7ZjbXswZy
zyTGW3V(9f1B6Ry{i6f!OP+t;=?0_pr0(1p!;z-rckvPUDu*NWg)4PRVuAH
z=X4rrBOoakUF4w4aBMr_M2Wp<4LEEcn*2|#1izfmG&7M$iIt!?pd8M)H3v#6@tc~E
z!OJ3y-DW8?zBIbRhW1`E7dT(G1SZl8A!R&wwWqZ!DA6Q)8m_F_j$64uLlxHU<)eM>u6CtAK
zW}$x|riFL!pWvFQzEhqin$1Ea&>d=^6ux$@4%$u|M!`5Kon@ew{=sO+7H2ypFO%Dg
zvbOY|GioH_Xo8t<^7=uyuKd%P_b0TAn53m%NG6r+8D>a&y$SQksHBK>G@96KLt#OC
zXcKRB7kF}57Cp+?k=q27`XUENL?*-+rq00RV?5+D!>-5C$_Zv6QjFW?RF-Jq
zs;QB9y~bO>vL4RWh>RQ_+xxK)Dy=E6B%OmpPe_D8BY%pZ0C(I?ISTpGm0(h7tbtCi
zft|v(`|q}FEIhw3mP>V39ehLy?Dq_yQjq?PjO;jTpR7gdVoGd0O(f=gY#GX~iAnTt
zHL5KEEuhkO|L@vZgPySHm!@DDulifPK3^gq9c}nZ@yJf*-A_%w5$)BWLo2{oZi(Ga
z_u;9Z&bjwv{*|?4RQ0ORrlzDK&`!Rp;#L)*yQW`}#`Oh~JopsOpV>)k7nzzyBZbR5TTO|{H!R1eVOq26!HnJ=;W_V?beMHM|
zY;ZRw&PgllRY-j>4OsLD^+txze(S?cDMJXCouO3aEwT>zAf0D<17E@yj}mMc^DcJlk*3dm7d%h(Yda$Ra1J>2y1VN(
z{aa&iXb9_}brigcWllluWb6xu4$8H>4W5I)Z_&U3qmaSA+VTWH(_0iuL_Gg1@9!@T
zui)p}yL?-{)$INp3mda22_(FuzDOxvKoNLDp6(p2b3ld%f=FpaenebM=+LuPxa6y6
z@phlXB?pOi_=-!t5uO7=f3Y}^(ia#P3}%YD&bmKl)DgGu^=?ucH^)M?%7(ur%L8{v
z0hs%y-*GzJAatC-PleimLFZWEsV7Cn*ngEJ6qLgzSX}ICO>k5Wa_Fn&eH17o(Bi48
z;BXLr%QmiHb9!jVwM~^jl>mkq_48p-U~m~`{dKp1<11%`HkwqF*m*KtmB{=qZdjo5
zMudNrpru?h158zAa
zfpxzTJy6a4?jM76|JI0)vwTOcVeJI($M84*K%eP&o>4?1_F7#S+E)`C9_8k`!{l$7
z2!=I5xU(;M;>hJ!GEzzwqZ(3{rU=OZM?uC_j*WuX(A@%aIiBydhBmE0fn%k)5;!6c
zn6w2~E@i%?$__AopK}%_7$=#WnNu>qFTYATFe>^8h$}s~IWU5fvkm*PMT}1fCj(cX
zJriJxjK|YfI)pZK+;`#m-GM{tSzrblBgN6Qd?GXZTSR1sg*Vdy{0XF;H_c`xqF}*(Eh>op
zbcIRJVBC}?I!ltTeML8_q7oh8<9p70&8-SYBT7to5-_x^#RMGKS*w
z?Imy|S^QSE0TESDLLNcenEC2S!_Ybc{+H?P_uJ;gjGnr_hkH35%xt(Q4IJ8gl(8@^
zwt>f98uc&NM=(*$sggMsQ~DpB=gv`Ab~g_ZHmk@E3hyo)Fzq)`tMXM=cK(0S7-%>7
zTxZmmI6*;6rFTw`5f7jx@=SE@j>*!LB0&Acpa2rX&V%vWU-DvLE3>2
z6F6M!&0b;;JcKnA6^Xb;4^I9>f4zfEm3}H
zK&|1!uMjV}ctVymn9dHMPM3&lK}s+Wr9~MEsp^_^IN0BuNTuX0%J>s+<{w^kESxa)
z=*!(s_}>3~n_io(wnKcSvcU%|V>F6qY~k;dZN_4XJP&7^L7}p~m~8Z%=fR~P*P~ry
zSiPL#Tg)qkw-AZQOUq#4@FDJ(sUI3!%R_}PLYq>T>)&;Jmt=`{huRi)29|Ls0N`R|
zMs#QzJMG03WBp9h`SSOox7vM41pf
z2?{zh9Zheaj^(imM1e-%GQYr7^}vF5HJ<39f5k>@!CmB@LmSPY@-a+x*VHYIOFmIDUJP`1eINfExDkvtE>uDwFYSqoDzP5bP
z@P`M;g3g?7OocUtXb<2irA<_$-1Q+&@k>qvyXu(yA0t8mv=rSucDP!h=z$P`iu9hKkjcv
zCyg<_Ywgbo5+{;^lJT~j609_;R_>B}VZ3%q^t18Sa
z(j
zEpW-m7*~`5y%hg-hprd>W)tT@Mo}y~b(E9E^@AlGrC|`Y2&LQx$cqX+IVl~~(IS9;
zCNI%?r}8F7Rs?GxA5x~A#fc*Q6`>T|$QurPc|mAUT5+~rKrQ2RC+TNPoSuZ9+>?ON
zB#9TUnH^BhkJnj;f$*k5B7@+Dzr4KTmr)Q;Nm&N>C_88QmxjZ)t)zxHocjE}6gHpx
zR*45IJ}_GX0{YMUAo8CiCy!C_({m!a@%d)GehI
z15j30_9p5Zd9X5CXoEvRM=yj?y3mlyk}TRUF-wuv&Q^_>x
zK-A@~4TJlU1IgR2|NMlT@Y6)X1kBT0(v*^m9`Rkl`efLRoSDqL;GHgn4>}K-nCWOK
zF*T?7nySL8@}tHqgNIKw!iY0$payIbi`d#$FVEfI3X{Zc(!mk5>pj_aOw&v}P!S;}
z*i)8_vzA9+VVT#~CA)P-L?q`&F&E9dnes9VDRB
z{1dXa>#H5@K~pZ;!O3zj*CBl*au_~OcV^QYLRrFtw#uLfLjli?&O#ZDz(ZYCefZ_`
zpUajP`LS8yg3mwpM{=R3~P?2?wSGDyk&B_4er|Gxa_IDzNk@qEVIF{fvTIyxZdX8=p6%RGb-BsJa;30%QZP!@q$a
zUcLa+(7arL|5rJ-p~qcmAyp3NGQ+aYeXqJ_!=+{Bgxv*%4f7PHD|DuesI||h&S1>Q
zQ!Ezoju0nQ!{oqKeLHI8;!+1xdCs5wido6gA-0`2Tm!#PKkGf~-CSOuTMQa{#sD*T
zzu+7nn1P|jnILN7cH%@d)$Ns5;n3s-HQR@Hf3`q41f5br{+7YJIN`~{9_koE|`wL
z!3gSH;L*2VBP%gC?5%npv>4}G6Wpq*rsM*T18477r5Ru&BSSaGJ?9Vo4}Kr`x$JdT
zYZ|^Y-oDJ)E}v>RY$g<4kL&1lNrG|QtzxA$_IJOY#Imv<-`9JxUx>P%Ugh*w+yxS@
zw@qh6&s;BFLVMmuDtR_|kSm6%`?kLBIGT)W1@Df9jUN6;ymFGN-d!v2J$H$9O${m#
zATF(YavOeW=DZ?nGPOzB>wWNIe+x<|92F7N{ecLciJP_&toQV?0nk5AV-KNw3+Wf^
ziaS=IrXFDv+n>`Xpo_kK8@7ni!31%1O6fjozktWP`u>g9{A|`PhZS#7+K0JDZ9Vq0
zO(WW%%JKVMAVRJXsboYsXRIS?jd1i0DVkr~EO9K_K2@5f%(lL6Tf
z=P&YGR!j~ENoAml3~N-2`68Nmajr?0BRn=+%&IPae7?5T>61fx%q({G{k)ww81jY#
z`{b7|7YXt1uP=8DBA;yqrF9A@Gm<6Yfd%EgkwHaaZ%8;e83cW`TMn{;oqzh?Z#ttG
z2K5gh`Fj6A3Xh4>X$8;tU8rlG9RdI7gk%XY1+LzjCRKN359p0^6P1
zuI1jMmt=_*yz9p8>GPW}&FK%&1Kb>Voi
zT|2iZN>06IT!Y5?dbr`Q_rc0#Kf}sJKl4#!oI;$vj>xBdZfBTw!z~PBi<6ko1JNw<9BkTKpa+9-J#bj;r|-P_%&J8{
zeaxQPp=APyOYu+AxHB%eWW?BUPqpuqr_Opa6hLN5BByN@S#XQM+tPfFz@QX(KA;jO
zpgfO{3cwunvt|H@u-@LTY|KFuoJ@1dpl%HM$0&X_doNn)Rcy2D*|Cj}wxU#-t;dIN
z;?!NX*?bIvj5_5sCe+_50*Mh_W??ixm|s8pvO0ziuDI@I=sjRC{Pp^2eA2Jtd;9dE
zqvu{SjYD&^irU7+z@<<2F@=!8Ev><6r})1Z(DAb8CtolXN=k~k@o}JFzu?G0}eRn`jO$}GDo%6aw-+@DzW&eOHTPiDScngqs7zCsTY&derZi|(r9DN63LudwfGztD>TwiYr&^}m
zzj*)kcYpl$^EbfY3G@;{@el9&Kj+e`A0KtvnHMAE;^d2xQd7@IWMTB*#QJJ3W!0Ny
zY}Vc0=%b{}4DDbp5YpTTEZN0;zPW15S>h_T{E|7?BnYR+Fu{NHA9pi>UkIm6JPR(l
z;(9KmjZO9N)W08O@c$TznZ!z5H6fW=}l)cliFRFZhPL@}}Ei5re3Eckkk>fg2PB`;sfJg)N)b
z!>0ACVdSWj;kw)Igo`JQQ>-HUTzWOp5>Dl9%
zaKswbaj5W!3^Tu7#DxznB(mW=``>@T+&QyVWZ-3jIus7<-3{gCWpLibe}X?<^MCO4
ze;$H4vp?gC5Dh?DY8pKG>btO=xk(S*b1NSM*2oaqoew+$gGZd8Y&Q0tixW?m9+2zF6w|GLdx(!JfAFrG
zVb|6z>M#$9Ph`gU#;_B{z`N65-`yXjaDxH2`*ymjwlNe40Tkl64!EEH~KDn
z`?AGf7nVg6eV&H-fh4C`Ol0P#3<&|S>rZ9q92G!gqgQ_(@BbGczBOmgr|&(jrUFYu
z3V_%CWBTv18}9gi%*3-gYjfoz)SNy}dr41CRLDTg+R|pxB~#>2lp=H#1evDEHZdz?
zPw7cQ(h$Kc0j)NlfFlT~jd@Z`HSo=in%2jBSDza2;)}>EeS`{8J(8h`KYa65nDOch
z5W`?vJ%g9m-+CAH88`?&dG9Ug*r^Mg%Y;Xpf`m}E$=ApkXApWWUN9e$nIh>wcqkk`
zTmd&
zzxxKf`O-6x*Q*a)ebZlH)<^HdXr{!5jU1&%;Sq-8Ak!PBUC4#2ZTk-J{F@*0M`&p7u&bh8Sma;Rcf3*#0ijvWuz
zFrmh{NCZ=01^N4+=s*GV9W;a+0G{1o_iXp}?ab9mRNYGzfq|6{uelAv{1*c)JTBP>}8ttMR0
zcT)=oFEu@HE)L=wo1HU`tU~LzX#QLnIc6-}|L>>xdo;L)mYkPGqf3H^(CE5V!Qk!!
z4&KCoU40#V`oTMV1E0mro**YAa;WwHFL&H`@XG-57xbObK>W0s^R$
zWfX!6*`@%@nG2aJ-;3!ajFM+$XY-(xc?xZyL8bN}68B9pCr_1}yvT3Va_>r|nH=(Q
z1JP|8z2Y7{IA}k%a2k^85F2#ZU@-Z*oQ>Ha$U*w}&2<%8fK978LFFS0Y7^X;am>Lr
zi*Yg;2lJRPy%0<72ayGYrU89^7vG+Ws`{v?c}a9^qlyq8k?ek9ra(k2Vm@9BLz{>i
zwjU^ly7~sgHDG&f-t5nIzw_e%?ot&%A^T}GON&SI|IfJS@_R;~dd7_@8JTL-*(hAe
zPD?hp)y)v!6#O$Q07w15Bv~|$pS`cPu0fd+OTZ@BL`MgKqW#3}d3$-M$*QX(K@1_G
z)B^R0Brb^2f0Opb5e6S2vnW|Jb(@!;*-7haU+`@XdV*p|l(y
zS*gDG*p}}#wHAvks|W$OeFt?d(FI|7tfh*LhzFLKed&N>v;&pyTKWNqjuO!h`Tg#d
zfU;$xkfC%!t7xnm4ArrCV`!K`7U_Pe$%&0+oA1VkWDcPN0td|2T3LpZD
zw&>IUxZ^VR=Son9g;*2-&;Mfp@Xxp0JO8Bdr?>N|qog$f!vLU`|Cd~>y4EQu^!+0|
zYTdNLqwh22I_*BaB$^u_x#a&H(39Aj|I8cOa094i7^sR0>}~)xHl&@?FtD&&JI=!E
z#6NZlz#-HETq0A0IhtBJdmL?w4#Z%Ytw@4^6cwrq&&6cn&Hk{f5^w`h#E2`{m4JzB
z+-kf~F{&)X4rCIrR-d}K0W@Gf-{3L~?iy&w22nr~#s$>UbuEvO6tD0RAT^jq45C#7
zZd|zxo_O%Dr~p=o5CA9tXq(%i^LbORT|98aC|&@hr0bLbAl5EpYJvyR4U=yr0FkVb
ze*%WJ#FO=^5q>+wlx&t>DKoYO_k^RyM8id#({C&_-ug{6EQG}k0Bfv3A|yO3uk{p&
z8OLqiuYr60Ef74ADYR3f1!VLguC2Q6lWpBhu=`rbW<@}Q99u{LWJE5h-yf9CS2X-c
z`D&u0KeGbRr?eZCQTm?M3U}O)i8!AhiW?y24HP3N;4>%O>I^W@p3Ia0F|`_}r6fQM
z^Y`}@G8e#x0M@Nu0#Dw5$DdRMU_k(S0C3QV(I=jA)_I@i^&J2*6IL?}N7^IIPg61Prh5(~O$zJRzn$2!;E($r(xY`SK)WC)yjSFi<%
z2nlUQpX=ro%Q3t$M8Hj40|xREAKWdy
zrtM&Af!5YYKBd&=*Bk#@O4@B*n8N(OUpT^3h*HGRUK}@(1!zGQ%uBG(KtPMHCg~uX
zx#*ZS++A2=i2*1GU6_I$sVg0%a2#LeH2kV3jOUZ87yt7
z?v#5r_77qmqiyly18M=2(}M!YH?4gYD)t~
zz=l;z;eYqv?oa?``mfZ9=UjBn*wZK9m({v0hZR~X22Um#nN3izCF2HbrN7n|S%o?a
zpKS8ttb3npAWu{Y)|*U3
z!9Ov9r!&|nIZ%Rm6Nm$f_G1&h$H5`))cIbXYf|6qI(aDo*Pr>kwD<99IAT=EnaN1C
z?=Ut!wPcGZ7gU+|?(tNbOkMB0JNJTeY*FmP+>K{mXWp47!25ED6MaM-ds>UIeea3l
z3wAm&rAETQGnkKTX18U!pbD*!zMaP}ov
z{O!~;r(7MMki?5KGyz8|lN_)38-~zZ>!!`QT;7b)5s@B+@PQo+Zxsq+N>ZHi
zoC=@K6j)|hjzPg%rhRzDl_Z%^oGsEXc`QLXdt0!h`cINVg#F^)0JnTSaX}Sex*i&$
zWNL25FE#S(i1mPlB0StVg`sl$2SyI&!XejpP&p{4f4Hy7vgrH7wfX@SgRMf1BOaML
z^u25&L3Okl3rI)Zz5}NLrzXU6HyzPMQF$dt-?{>bWD4NRPjj3m1pg9GY
zdBNp3ymBo1*n=$gAfY7L*o3t?UAh2U
z9XhwHfE1u6z&%yx5?2bM7#vXjC{F+)Va5}Ww!Uf3ppRe!H-bUtkWqjd2a)AwDgnX8
zQehL1`}H_{ahGDDK!HF}iZ9?AiDCupKQB{KtuvA#ib4JQ#zrVEueP#iGvoUC`)@3t
z_3m`!1w>k~LbC#hR24whmABsg<(ShZcf}?N-k+nIO(ZKwh>cdpQ){Wc2#;PK%6rt=
z0xEt7aR{EHZP?aDXs!U1gv~-=1(yQLFL{V?fP^SAFA?IJb|WsV!)}642x+E(kq{&E
z;Xi1AqMai}1)+XF4dMM51oa0B>H!Tt7eIDH$W7Z5J7pr
z02MfE0h}%c${zavc#N9bdMK-^weWBtgY(R{Uz`8cM{hj~N;lv^y8=i=1#tCW?)`l9
zX=ioiz2|!IgwjQ(v?odq>!}Gp`W%wU6)+d>SXqOd%D_x0;&J%>_L1PBmj{FBd2qMv
zPQF4nm>=$t4Qt`lFX0}D1o=p&1Pdz$!|>HDm4x6Vz0_cHpaPu0NWy(Gk?8yba{dY2
z19vw-b}9?M?C4!_3`Z4NcU$SSd5oIHP4#$`30>@I0RBX&3LyKszurIZ#8W0_DZ~}TG6p+7Hb!r=)r3&dgfcWXse~OS=x%8c
z;)zO=^)(d;S<-%zh&?y}+b{@-Mf8p_0ZIUI32rd!iyn^Tpc@MW-H!|%G*`gGo5@FX
zu17^N(6GPH%3MQ&AOdS8p%xSbHT&W>rN->he68l*Y}K^SYVFr<@f}$Z5VTlZThosd
z*;^+S1$6^NrM|LL*s0&|s1LJu`%$ph0*IBG(gUE7&XiPE8?B2`fm#|u#tpFwo&24r64GjEI`22pL#y}C@hd2)?SjRWeBWs-ziwByzQBSz^T6A
zLgt1vjN^uO|oX6s;-9Eq)<^QGg>`a^()|srDwg(r>HQkW%Lf89e!J
z!$q9;iP}z)=wzzFi8l<(P95hVI|hHKYfNd-w4X2r;0OZBj>f3Wlq86Z@^G0cDy>we
zT$_UJh538o!`EJTa`p0`zhX~q17%2PlU)I{zT;m{tm`*qBySUqPy=|H0*Hx<2CXxf
z6GtEuj$hV$-ATys-`)3j;}gWwv^V{j`wraP1Ep*kgp+|tfckSo;fNAiR?)W;nVN5w
z>$IVOVKi%XpQy9WT-jzQ0cvj83*2lZpq4T|XIqZ|3c$V~dc&144X6&J(|uTB-JTu{
zbDyDS9b{^G&BCc*6fsdtVH4E>lNAN<)LNvr;x0gh
z0^23k1>gukh3{C?@AF&BdM#Cfy6_TPv5?0-5E#Z_5z!PL$<_xzEExn4Zz{n=AjgIm
zunq~Qk&E63;;~(JGE}o566b;3B4kF^M8Jkj!P?B^_F3yCi%W5Z^#LxW&$7#K74vu5
zV-a>`?5Y4%OKiYmYvrFK*d{4+05n}eOmQtRSCrZaK{eON9+D7s=Q*4YVKm>ielG07
z_Cch^08(SG*lELKq9PyzyL8n8se+OUqsa=CBA_+P7t>dsdidtbvND_tuoo0oV6Q^~
z+{F|?-=QNM2mm)2HUr^_dpX0bH9cpC<3!Ezn~QzyoPm;A8Au?^9)uF~bL|ZkKm^v^)eW#I0JG&Kc9?9BdoatvDZbc7
z^?H3`*zWSZp=2TK1wm$ERD{Us4{J9{cALkiHu2zjbE@=)M$X-cv~OUdh&LL4K(A>r
zXP3+_L%`G>hy#H>*{KvLr9sn+jua(zW-{!wV95#b5FexT=+rheL3w43<+xY_u;_=c
zE1rM!!P`Ko0m#Q>0jR9NW(CmZu1B6)(|_;?eJF$Oi=zUFiRSFQoYqPrw!xW3M<0<4
zK_@O&-Vz9utRuvUZNjjHQ3#wf2VDz-Kr-N>ndQee3s7g?rB>m0^qC_qn50g}!Ra(E
z)n@2(AsHnqI8MoBNKv+N
z-5NgG2>A|2oH!a9c|V7&%x_e0Sb%;*Jq^gI!LVbEGyBLvQ-w(Njhun_DxY?w(urBn
z0uSy{M?g%QB%Qx^4?O$$!%$OQ1y|m18w?q7f<84#-!B-mQiq0uUcf~_Gr}STBMSP7
zTm#wG07V6ZKb?CF95Vx{s|#Q}+GM7vE-i2l0Bi!HrVI-9iOhQUjpd)d^XikJ@Bv~K
zV4Y9_+;q=FKa3nVF_DHR55oxY=9z}!ay
zPAYLHWtdAfpn1#{wf6gC{u#+Skt+>HTKT=obw%>&J_>!e*V_o{)B`ou5&`-9_Q2ww
z=fk-1r$c&XmcFUM_XQzYi|E{2J&rU;w8R*P_U00fh}G4Q*Jp3Kq`)9?qM3IizQ#TLce-pEj)g3{
z8iTK*M$M-zSb9
z3+G&TnL^&Ft_$AUZJRgo{nNEaFFneSbtw&XwUC^e2De>%IcF{ALq6CWpMLFa@HP54
zTvw>p6r}_zlAwb0u3ONL2I=p28{%QF|96f7Q$OcW9N=&P%p8Cj$w~YlBQ?Sp>35Wvt?whZ|q6PEe>Kkw6Q+ui_
zE8+2nAA}W47sB}$Pvg%c`>fa31Z~>oz@egIxZ=XIbj9-4M_+KpT*)*|1_ylHcjqmz
za_M3|hY$JkKlp48B&DV*tiQs+gRUv?Irl`>o1uii01bUmD7k(W8s>cZez;F
z3uPrG@bqKe*u7&roG|)irgWC@2}ArC47uEV@BPrb
zcRwZ=On{gY+q`)LQxjJt_BpA`8vo@tcW0m!T-3}
zNVRv1zyap}bA?C^*~;I$3qF|s;xlWOFPzPu!qH4fN3G8Wv}6IUyZ!HG!Bi_?t_iTG{j9ltC)K!h?3i0AFg0`ju^;5mAK9lf
zw-#t!W`6S{JaE@-uw~OaE;tPh4KVSHv*Fv>vzWm7VcJ#Kb1wT0Yu0ez5)snmDHp>H
zx7-2CnZm%ieIrMYfw|w!fhYd`AfGXSf{sHiZo2&*KF@FNcVENElg2=+)@|Xjf8NiO
zMVvwv&2HG#%ddjhUw(mK&OoM&dNCpT=)E@;UVdgd1`Qj*71YM{Yhlvlb79IQm%+DR
zeh#(l_@_>s1bN+i!}~L)!)r{jBqk>6Yg1QO18;xy6{M!6!@AWg;Ny4Sf-RfZGvSWm
zHSYL5Q!cs`o_O@1d`#JOH{A~J&3FxVZQsUg$#1*+K6v`S|KiphDb3HBauMA7mz(&x
zbKzp^F!q%3@cp;5m1#&!5w-8o0nWSVPw)eKZu7=XW8t0YFZ0<2$th|4JBkh#LQ`WC+=B{5!SIMhte1
zX2--i0H1s?L%lAgi&d#9k@%n$oXnJ%n8XK(Vo?l!9+k_r?EVcIegZW4yw3duf+|G{
zj-VfPOXt}Yg=6NQ6W+`Iz{j>IAfmv349KA*qpMg{UTqnGgQ#`mn&t57)BnEXP+`Fm
z_SA0na~Mq1fh~0amt1wzOJ_`(I#O}-j6A*u`-#n0@>qmjMF3{kLCdk5=)pAq)Bd}i
zX57vT5I7Jhsu&amob;)(k?`fGAHnla{D)bhXz1Lf8|>J=m7|?_CO{}Slo~S$eSENn
z#Ql2>!s2kwz5@rr7c)QPN}*d`PxiT5I8`P3hE%(7pN8);~WPcdS`I&S<#C^)bmcJJKA6sI31UvLpu7C$jJqpI?-N^MPb
z?uNM7c=+ez&u~O@>owE3Ma#+U#8C#H8^Hwk%yXx})=e8=AM^E-l9Ks3Y1HLt3GsNj
zojOA|<|54g^kayOjW%It-7`WDw#o$O|-_iAHM%;X8D`XK6VE~jo1Ug77?mZ
zciR;JuLQjK&(}YB#)Z>Pl?VlcU(Y}Q+VoKe0sw<%$sF|$7z+qOAnH~+Eb{x^Sc5D@
zCt9t7st9nh%%2%l-oIxz_X*L`w#mtXyC3*BTzlF1d~_92$B28>QD}GrPMgG#!B?Lt
zocZc3IxX0Rk2)q85B~dc_?#(*ZCf_!&m(VtRb>TV3v??Ued%k?&t7Z3koWbTOn>iX#LE~Z}IQM;i5PE`C{(x;{%25ulGK{h5PlFp67wK
z&Rz51#=qPJOBXMMuRs5Uy{DEVn-duvM+8(+Rt`5^J(VjUzZ!T{{Bu7SL>!5Q);yjm
z#ee?y8AwP<;DN^Fix$Gm&-{;}lW2ZZaopF{H{S-Mn9DTt{TVQO)=X8n2_LuCl__DI
zu;gKi>Fx&~fp$6VnalGvY~HYruUl+P45VddvFCH4NAEt6l#-&%S)@eB0VquS35tAz
zk$f73N&%`P9SFeLiD*UunJEcev1?Gjq@s#X(lROl72@5G-+JZ8FF%^`lIs8K0YI|?
z(0T!~&$;A^yC$7C^-p*sG=Y^&X_JK5C_b`FOQBfe1X|uzjSx$gz#cKV6V8C1#iHBj
z!5z&(wj{jdLJuaHZXh+K__QnlZu$cU^5LedF5{LvH9ZZUef1s4%4!8m7X1XzKK2N7
z>)i|T@_NAAuf5FA31R;w)2@Ok6HkWN_&BZrTDNV-17aK2uHu{dyo;v7jcn7u^ZLs$
zgZ<#>af}6AbK@=0D!VQ0*}W5b_U*@f<^KGA5F4Y(DpbsW5KBB(7`_p;VNYG2g!(52kXZ$OM1$hV_t~mI^r?
za{1&S98`kt6<#Y2Aw_hTmYE4-PaY2^o_q?-VeSl0Bf^nqh_d*QQ?4{);BBTLznlFf
z6V_yobovb#q>T4woBLn)-35o3n}F{-d&-4y`q}5f+Eptcon1>tdb)z#)NG38qRJ}5
zQY^4$v?Lzkw-VDz4l)m=_nta>7J{bp@VGvIK;$6m1{7s*@Eur~*D5X9C>>_UFE~_g
zQ4pvUiVE`K{pruYvh3%1U#ca*hqM47s3cT6At?LFnsnYJ*GxR;!rL;lTN}{ce=i;@Z5)|q$^Cw1JhwK{2(7p_
z!5D=AR3-e={O|cDKWXeZMalBAS_-91_#eFIFMOl??H`Xot5$7z`~t5D;|plER@8_|Y>CDsrZ*FlSQ14<5DTDy
z3Roy22m&HV@9p4@gX8+`wcUCD`Mr5>=FOWovwKGobjHug-R<7)?C$)&zyAHwwjVyP
z`Fc550Kfk5Jo9q*)9482=VMGL79SJO3sWF0GUA6!yD5wyPi%AAohl|l#|Ql^5*n@*
zKwOT8rV?@QjI+F3pezh}$Wf#@f5qx>qPCz&bb
z^(C43{NJD2pR;=@n*hWS;A%dU>EQ#owom`THxC@~`}U`HG9M@INdb^{xU$-knihpT
z>=0iUhJqAiA)HI@8T;Z9(|65KX+jWI8}qEF4WhoK?^F%%0sN+J&uMDXcN9X#zsWkf(|T@5$?=qfcz
z>zF?m7MIg)T*F~FrPu82ci-4M@%d+e1J(*K&;M)q!i&fVL^S~}zVhns1BQ)$^{n$R
zq?E?GCe{HgoiZG)tg4NAlbaHz*wmyQSvDM?KFC5Hgcu!qzd^@yP)F=gmmX%1XS3V05IiP@iK
z%%aUU6o5k%lYruWLJ-M@tbIVFnG#J}KX(??ylJHG^CTSo_1;It?Bj_V0>oDM>u!*l
z4o$MN*e0e`2&Ut|!qg!CuB@~O-kJEn8S_vf)mj1074v@?0FV=~d7Jj_&mJ}QXCHRH
zs(S;~yjTwdv-@a7kxNFvJTts|~cU}yBwCKi#X!CWmuABACmO#opU
zjz6z7TP{uox@P8ybFs<*pn7~i0O0A2$RU`J7^5EZ!io0r<@*H@YXtSYgC5^D5(v=g
zGyK$Y**L7EO{lR^U;+dT)!qgX#a$GyRdv3^of?YZ7DOXw`1I-%75r5BJxMUp=XxJi
zDFS=U*3BC^i%ei~Zyqi!cRdG2qgywwhspnY?$4Xot-%GLEv)}<=l>!Aa8}@E=2yEP
zKk>}WYkK!TC2oehc1X{tz|bh$wrB#mhfD3gyDQ(<-9p81P00Q2m}#uDl6LZYbXAL
zHF8+(>fQ*C>WOS5qtcnMsGPHNV-W#>v#e{NxfX$3pDA98Mq)}Xk_54btc~DtF!u0}
zJ35j9A}b?}a&uCEiCgJFff@ee^q<2ypwZga!nrfc$N%TAk5^Y#u3-y6C1UkZL(wo6a<!V+&M83`SYrzOGw(?~(xvG0IVE;3e9TS9?A=IwFR8!O4FMPm~bTT#=ls7NNQKPQ*P?(cyUC
zMy+1qy_efhQ55t53-PES8xs8#djG}^GwmruJiqd2H54QLml*z=-hcDjHDuC%|M{n_
z8`mv1f3+1X2B1oo{}UAeq_A0lR#)H9r(gfUxBvOHGtQz}m?n5{G-ebaKppae(hA#9
z?Yvh{Q1}x)w2(q*Nkjtj7_n+C7_@+0d%^I7K0NV4m2dNsi1@GOitED(CBuA(M@WK_
zyR8zW+WRNq&(kld;szJ=G>^w8e(Q4J?6CWty8*;ww03ciO$54^xkYd9oP|Xw>ZK$j
zD$ui)f}IUik*`qG+@9P`5tf9vPm}@}DiHB6ym|_N8p?iUvu+WKSj}$_7M9WBFdGyw
z8c&VD?5R_7U;FPre?#K&^+NbxBj*3&yXk5L{@>Z>UOe>92j9Nvimn=AN-8>gVfei{zj*Q&dnHe^4
zARxqQ;&8}J#lLGm!{8~J%jWAVfDXU4*z8UusZ<|iL}4}!AIZfdE4;z
zIBmuC0lC59I4~9hu@iv3M|(+#j`LccKO&6-Yak2*=_-N{fmc9J&g09sc_gv|q5)U8
zAfhWw+q5vVS8!L(pprGI00%evPFqx$k60^;u>Q9dVLpDmg+w4(@OVHFe<
zl~dV0;u>sAg|C)=ZcKRL*{AdN?O6fV@{cn7mjQqagf_)m!;n$;J>B=V5&g0nHn0mQ
zc4)3yg9r#Fhl?v*#XNBk$W!>U!+zCXfX}XgU~IY{MVRL04Nw`ss-Nvg1D;S5KrZ;z
z<486-NVc+Hm*+K-1&k!3kDv~L1v);)NCH4ZNy?erITC<`vRh8tQMYZpWD0(s=O>DS
zUy%2g(vGH$8d#H#+{;sPRD+6tI7@C;OEVU$hN+XrFMsciS6^b@e=k_{U#{xEDzbGI
z0(j0s*_g>USGaw^vpC
zgBGzaN&Grg-G(HYew9oA#c3$uV*)YvwAV>{p0L^R2BZq*Ppl((6ZwhXI?n!zHx6~dgaw7;KaZtO=duV
ztBB1SXVJ0XQXC2r2ZDsQpeGez47wUg;Pn*(Aub^B+ad&&ijblJrZRj`i-~wDrb)igOJ}wN_Lbwby=~#kvUO?Ai`*PWbPuUoM*W
z5o`U)#lM6Az$XGR!EbZR&^sRNJ7~n{<}FWg_3ZiXf2(HMkZPh15)oL%KxfLzH6|>4
zZ*vR?Ekjqk%%}SAHwPe&5qm4!KI%YnMLU6E@D7NdfzXH`po(AL!v_9jADekeLn>0L
zx&($$z!ZNbfkdBt%gyOr*xQy&+TE{i;0FQ@@VIZYIr52Wfkybu1Thh1RG>MNtYYVZ
zum2K7RN{RcBD@CG2A_ZRo)8IyT@2LTtwDY}dh?d1_ZPv9uL~bAy}u^ZQ7r1c2z)r>
z?Se@!J@-siRTSs`cY(F}$47sSpr}@^15j>&i!bZa<<=2*{_n!hS7_Gis`bWkBW#$J
z0oe^Q=!xJsqDZ%_3vDqEAn?5bJ3Vj;g(@m!H|lKETT0UTBPN*X9~r3H$@np_?C8(}2Ej(Re+1ji`6tu()!-z6jh#G|`s
z&qfGbmb_){p386^4L|O<;bx$U$LqGiM-)Rs;1@wCh(dXHpjESm?z$H3*nr^u!R7t;
z?b-p8Uw!el<%{Nh%)CDme~6oZBpCp3%>$TU9Ugr2>DPMRGPolpXkZdw-0;x*w`|&o
z{toGgt7_uz6ad^p46YObycA+0Bd|SKB<9>6q7dEJ+uKDydjLfJ;^pZ;XIoHFfFtf9
z6?fIqj^`AEGtR|m4?Jl;E=T1$<@=EYg~C8dZTA9{d@-xQgai!ysOAeG$w@%Zg`cSS
zNZb{2XDbtwlY$^PA?LG|7J|ePVOuH4sT~=CYCdksFS(}Tl^L`0chzHwqMwb-&>yw_
zL@h-82aD|oi_2WZHq>BKQ{j^jXO>NP;cve#FD+fiT7QRy)}N86pe@${GFUsX?SSET
zjJ;{#h|w)uwWcpt7xH*K=@yL}QXs$+I$Rocd1g&Ad>6%-V9d&8Aq6wAJ1PKMj>|I;
zBnv!f;$jE!a0J*FEc?CR6kxJ#KNqu+O7%zcDer4Zwg9Ap1WBSWrg}I#+DT;KVgx|s
ze!K73zw&X3a)w{MXCSKLxTMSY-wPUlPR+x0Z`U=)x%2rDnk>D>M~0niOjlBJ`4$$X
zI)faUB$^jM06>)=UiBv~@lxH4vP-EhhnRL?3Y?dl15+oy^!9?eAHL5j|DyMg2e}N*
zC-qEc?Z8vcKL4UihK{*!!lhSs(+oihjC`UiCT5TNx&gplAQUV9
zcG$1$KKXwlkMAZ774JucX*|^jVE2LvaeEn2h(fkI)e;W?7a{bJm#S>cFPc}9SwOOz
zdc>qMLjNw}~h6L`p@*uLSvr4H-@Tk`~3
zHEAT&Quwt^XpOC?tiqFa;MU*lcg@`Y<^TLXT3)(Q@cz+6-ro-Zcsr01gkU$|o`)a*
z&&>meooBJ9fXk5agJ{*Pkv*VrxTHerTo
zhZI|wzv)b3y~ZYVOio$Y&H+s?KnF#z+>0Fd@tEs%anTM=K}Mff*DYQ>JWuu-k>P0K
z_?Icw_&sBPOdpf}9V^lm6&6w!<5N#P)qL$Wj0H(&=Se877d}2R3nRrCr2$K2-26;D
z1TR>m^s<J<7oTQ_f__d~KzN)1LS!L33fzTYY4XNTv3{DDXyYQ43@6%EKO;-CVbXyATJ
zLSh6J=>5%~n`LJ~T55`WVpFs13TOVQva*l@QSq3qo5@?R|M%79ix$i`f3=Ny|I%c<
ze-HqOX+WDEefkgRJ80z3Pe1c4I*q}@f1Ul?Bs&w**+qrgWLTtdMtU{(K7a%W;Gz|i
zy}rZ_q*xXLNk&Yb7E}veG9zc>v^IYr`+)EQ#tR7_3k|;5yzra1Yzez}?Sz+K{5Nb|
zzaB2>d^tS!)YH`X@G;6wbbjHVe}y$)e+7evkA$Hk?x5NN{DZ>B*|>fk6dXDTS9R+S
zJ9ln_4`#dvTeob4!b1gc=Go`M13!HPTDNXPc>&Q-C@Ce~y=@4zI;Az$Z`7y&N;+)Wv>u8M7s2ISu7p}MLi_h~e>Y#t4!C{P
zop5E>ZcLph27mbN)3ABdMp~Thc-rYOaPUx=_1-kN=#tLVxZj#Qk-nY_F1iGM_V_O-
z;4N9W0165V;L0xDVDiNA=DFm-UH3i!=U(tbDljtPm6xb+$wQAk0lRi=gDI0HnvZuW
z^cy&s{vHi-`_|3Su46|iDJq0N{`x6M&&;GmqNqX8vu}S`yZUPwZ@%wURn^e-s;j9g
z_3BkCAk{o4^JL)zj@Kt(sgL0&Hm+Y{sfnIy~+&pECc?_@1KFsKbudv`cg=
zFE#{0q)Ruf3T6uPPWaWhQDb^_l@t}xD8Op3S`^hawbk&DcLWmow1FCK-8(o$N2M^<8dUo_T|Y}fHrxc}it;PG+yQ^Hiv
z3n&tJpr^l~S07lu^b4qrR@k>8*(hH?d+N7;gpbVhc*U~CG{wOP0@;cmed;$<+rY~b
zq$z8$vTmP2yh5|S=|TY27s`8K&)*@hajsa5=A6PGxX5hRe!Y^sG5+~~Y*@4EOXmF#
zB%Avu0s!6(;6p*}ZW%i2?tX)Y-_fc~Tf3NIj|ZD?a!V5cxF|%m8RC^itAzHSnEPw4
z5nwSDuvmVG((5~dpb~?SVp`Av8AlvcP6Loh_NPC-$Ml4|XwTJ&9CT{rcbg$_!NGj^
zXwLigMPucdhG|?4C~f!YXZ`@j{p2xt^r8FdbXeTijcD-v8P#=!rz4aBI8Kclz47H&
zbfGd^OBR1dsl3H21Qm9#Fr$d2ii0e}|+aVY4NPCq#Ff+2U^|7y2uZcO3fu~^*8
zM5-ba#VqP?9g52;p_Ug7Z4l61138WtIIVAqZS@+2zo|^h`6RzeB@H6z4#Z
z&!`C~_y2gDY0ORGuYdds>98xHKxrG>Ox2M>d>5B-FK
z)U$v71AJzBea$qwCXJg?2`dDT>wDa2g3yPw8m&_Wp*XZ_-;s)ka4`?8MGPBx2juSG
zZyN3*Ds}d^f4&I6dHM8oV8Ztp%^e^6@~gU0fLgU;xtYJ850_qkCA{(4
zcnX*evKm53Nf8wZ?K@zg`5t{@=JhDf(ii5K5!piX=M<)>gn9_4opAT1jR&Im}{fwrJ1xMv9DBA;LD&$SFB
zRIvF6q0?|S0^|SpA|*Nfp_${Je%cwPmx;ip4eQ`HPd!c*bS-5T1KM`%06VvCrQk6B
zjknC#odWmYGm7%#(}}g3T6plMk3paQ{pruY_}MsEziu79FzM!&d2#>X%(LLH|9T#(
zOk-X6>Bn%;G~inX4x!%GsyoEso>3#95~ZC;9GW+43C}+N5;SYk0!oWZVE(5cnK|`g
zXy2hd^fL3}_uhHi%!{9gNLnhD?|$z2|H4)?m3i#pA45h~mIa39ORuV`ghzhWlw@Rm+!A5toM_c@j?T)CpF8`31Z&VLafX8@@NS
z!o;C2)Ppo(+$iqx;6B7F^0JU}E`ZR%tQOf>HiMQM7=U{HgC*s3XNCw2)(B=hw{0O)
zC%rOh@%)eGvCuz{&HM*W{nZr!00DwSfIx5!x;O-a!{QoT7I(S(`@iqG-|x3RXJ)#m
zt*ZK|s;4KN6tst-ELMcENGCRqm^yRyW@kA;GD_4JF#0deY*LJ#rYf|(
zNKwSbHv8piO6VOE=?tsBAMsn6$ltO>dP$^X`+Ytt>T4)g{XV&>o1zOn#J8UG?`+zO
zR~IMKwoSqZF@&yWm{{M|GNt_4I^!^2)9t+f`j+Vn9d8apL{1y2nkR~?3%^}A+jI{;
zwM4hG`}%KneMgZ|`$ybjCPdv_AO~clKv}iSdj{Lbdz!%TvF$)*c^+<3#lpv-Ldi&5
ztMGEX5EJ-0>Ny=VGkQc^^D@N9q<*O(K(y_0mXUWs827l%k3ChnNzq-uYnTw`D#85A
ztL=HkBVFS1Et%WBZP|w~VM&_##+Em4)O9ql`oiU{DaM08tM@$dE?LRG{`Z@?m)OE()a1sr-y`$Nqy0{i80rl}jmOoFkBN=RGyB{q{^StdQ8cj=
zH=~!les=NZv{X5?7RpSDoLbl!1OLuHQnZ&vCVpagD&{uN%yD7xTZg$rcdEFp<1!m&
za+8oz>tvQMd3>*n^7jFT4)mIv%95bgcUl}agO|iy=NfP+^d`;dorDT(hKuJzcoNb2
ztT94~-nVf1o4MDp#V@jv6<~hVrxyx}QB~sDU=ab;YI0$)LooojsvouqcRQQJ=!u4f
z>A&4pTVnvjjU2OL+Cmif{M>tqPPi*A&nNhmhVk@1WympCVZoz1Rq@8q;(`GQ^Rm
zj^@|;_;p(`xu9gB==)8Rzv-a+47oq=hm)kRpBNK&pz=2}TKd?05lwj{`MJ_zA+qcw
zUJU-wief5L#5&%KPA)bARb})~xVp=5m3O
zK}*JH4U?b{m^Lfm`m^dBFcf?wVRs;e1~cnwGXN3~LQY*#
zj?j#oc54dijKo5rW#xZGL!d(#IOlljc)Y@&I)thbC4{NuAFknO;5w19nMjaagVNqKaX)ARp1Q8QvpRL#6
zn@I%(!F#g~okDP6UhpRjsUVa?%3iDLy1gdi-_;v##v$|}FA@_iTUR(=B3B7n!qc)~
zrHqxvaj#dlcx)Cm+`sxLS4cH=4cD8P;6d4^PU=*FsMt`6Zfn}lHh3?;wMv3X?sRo@
zy8XU_7f(i0be|kT?gZ#Ab`Cl`ul`ef2}nFXZ`Y=$5ZuYTyR9b8m1A!+^xV=4fkOuY
zhjb>_M>~Rwvit|DFV1<#-=FVi04-E0-N7n7%GWXUd2>8ST{liiSag=#Dk{=#US)v^
zOu$JeKlJ3=(ph#BvnN_`%Q3|bd80i?4kN(C2@IYOwD@(JbY%Pb!6#J$i@r4#g;
zTgQ#6vdZwzJ0J*cG?QxFwU|g>1G()^ljg|xA~nvT{LXfCQ96V5V%dZ>mn_+u{4!r`7}H*=y+HbEJ7S(v
zJWa*;6xXQ?Bu43Zv%U_gVt92N+Y_UchoUTjElYM)xU(Zy_=!(C7BbUN{PCB^3};mK
zwc`5YPnTnVzYUc!U4_EMu8kWuQ|;${2F%9;WMIQc%0h?0QFOl}G7vHarCWAI!jro)
z6|j%t>3=iVGYd7LE$b`DbC7@<7lF3=^H7j@z6EKK0&Xly0!SNAYf4DccyE>F72m5d
zqR}HPCi-d=`RRf-=no`Pjc63*GSg@&Dcs8}lxd{**+L8pDYb@Q+qgK-Fvl3`ZoPf(
zxZd)yFTatf{OgJ5_?pJSF@qp-a7nE=7M2p%Y^HWf*ct*CBI{0@&(fl!eN@M}^WFy{
z?nLa|hmOteTmPX$HtJMr9Y+6~XH9G?9Iyq;J7j@)p=In8{Y
z3B#W*L4cbGS8NmNV(!Y`VSW$%&SnhMWVN}0jp2Ks!%7gm9bb1y+JFB~i0Vbf&&xAp
z+he5oug~QlLE3YipHY|Wdy=F!R8q$k2wvrmaO#1#S1q4LWp%fEqQ_`rS4X2cv@r>8}Zq!83ef$*t9=bB{FXCXJlnv6KQuL8!kRp>VD1MuSfHY{xCotpy`*>Q`
z`@OD%nzC0)ekajOT2&KYUgNRfo|~
z91UpzR+s8&Krds8f%x&57mBxZ_1}2GWnT+8D3tm)Vr%o^W28T?=SY3lX)!+gmjqmi
zy$O!u!-u+DkD##Z_Ov&ECWx?6WyW9ZFR{_v{jgOs#u3yHRk>1X+By@et>chQ#wi=nC%)-nbLF?m#uAi4Uov1Tvn+>DxlG2l-&eJx<2Wk}a7IrZ%Mw8U@({lu
z+{)l@L^9Gameq|iX6XK-ZSLs=U3fy?I+W7vud-dfCHLlu2xR;tUFqDXfdZ1;ymXkj
zogsTj@s2Xbqbpq_O&MbYe=T^Tn{sCsP1=e762;txkA&=Vhc9XppGbng)IhM~Oj1GG
z!Mt=6t;N;%m{<^k(cl!svpO4&!
z^T3|B6P_Z+X^T$M0x!PX(^DxReJ-sOj+36)H!z?=$*qtU)GzHNEBgI13Sbm4ONrLl*2tMBl~5>QVdT}m-(ofIsK_vN;maLlo_V1nz5J4;kW6`I9flVPAw~q#
zO97s5^GMcqE<;HopEN3@hwRA26sZYa>UidqPE2c+vQmGj79Z)neOdCk^8?76gEbqBWv
z`1f#vxt=mD%pMf6fKRMa=wXvnQwzAA_xZWk?VcxnpB>a;M_RxtJ9~<0!gRxjKT2X{
z7Tl#}UsTNLV?=@?C6;Iat$xm@3Kzo<#|+fyE`ifQv__oz4NT$7R6lZ^obG&p1e`>;neT&KtpkwFyM^8mAh
zDz_f?GG-vGx%|1=#DSja7_YRnZ%f8B07RQ~EjcLyJq3dALgb7Kf-FElG<`%1$#ZgN
z?rLVGNQ*iM+oW!8VzOw_IE4MzVmL46?(J_VI$=#tSDet(bbwUrc*!g3{fbBo
zRho%3q@|$;r>U92Jl_-3cT_YjU8&+aC1^EZX&V!0pdS%=WtlDn&$-g7dGB73x2?J>
zCvcLUZbXbFY6S%;@&E-$MQGM{nRLI-%DVa~9-;@{j&U{$^c_h&JWUDn7Q#FD_f{7L
zDpm)(pF)2v>(XgGB-l^D^?)Ef{Iv>c1LDJ#LfvmBk7$o=2mG)D1*eL)Ev61wTm;p+
zp|^R7Goghpe2th}>jeB>dC!e`OFX|g0Y;wvLUQtHRGj^mjBo6~G^`b!dv}^&LNHK8ttQ*L5PfE`!4$MF-nW(dhYxwjFp)e)a(^>P)$S0K~c1FDh4G*ba91+VtM?QY*
z+$ben$tzV_TFLLuVt(*K25DJZS1#}3&i*pzj^erIJ!Ud$hzRMmKXGIm+D=FA>V=6h
z&?OrDt+zjWqfsguuXDo;_*k{??^?*u#*oTNiM(@sImpK|#BEOKOPf(rLehl|;h*91
z>#q-;DtYhC?E=P2_B|vO3%ot$dn&{P%*6reJUV31Ax=Go|GjumB|KmXS~u3I&Z}M%
z{ubLU82hl0zK{zy9x&RMCNXYS2v>A4cM~nT-XZ=MCq3KQ!i7}+yF=F%o7DkgFv(-G
z>O6|SriO>~XIYBVCMeBSg1RVL0=|m!oW-S9wNr0m%z8f*_T=p(F!H{z@UY`o2f*?3
z(~^rcCg;q#c^ARY-JOvvU)u#rA`{d8TsH5gPpSLFyQ=C_V;-=^Z{{tyU{%EXs_KFsP5eNrhKje026$I$S@WROH0d!cBkoV
z3%~332E)jYYBp_dnLX_63P_nVl3U@@hWb%IP=xr11*6Q921Q>}p#T&&_!#ryL%yV-
zgd8*2n;l(a(HL$ct6-1{zgQPVeCyxwoS!cB!co0U@WPDl<=;&JP1vfF;4&
zQP(yOiU9&y+U{6+L^qxR?e)6)5iC(5>CEtlDxfT#P&wm*2%^wZOCub3+sX_>dDs%r
zfqKR{h_q;N1bD}lW?$gQOAH923cgl5=4R|kLx+SQ7zGgNu<=sX3T4{mt__E6aK3N7
zJ%t6e5efxm1GA+k?^$P#zw2-DEKptylW;}_Ty%{zN#+WAWtfq*&FMnpa@B4E%KHPw
zDiP$^|9FwaUfJ4Fc$b4@6>;~MpJ$(TOk9(!O+oVLUW}%Y^)}BI@|mA%d;-0`
z0+8rifFJN4q-n_O&ilNyT5o}hL=6PB{5|kHyO$dlkp`e31q}a3>26NA+WRS{P~6Wc
zJX2GpEG2ZkcP2kMuMc|fh)lqGd!*sA@&MEvY^6=S9e81uv3EJ}oe;pgp)#eD^nKDi
z`Em_$=nrhGw2~ySm6kRgEQKsrwnALLIWP04j82lp>?8fea5kc=p$BMQjvFlndmJPr
zw;2#m%9fSmZjYCj|IP9A(Drp}25cu4
zvb3{C$p$2n=$P_OUs7;4YGyq(Mw0*}g4|DCHz7(G12?ZI`mQnoPZ0ttmCjpOSC-2f(Y{1Y
zCIjZASX1(01Jl!-W#bI$+WMF(BoKo-)6rk=aydK{$0#Lkz_KftG4PSmQ7=1ZK)KQ4^BnxMPBMklXPQb0HY^lK?VD=feP*J(3<
z+D{6?4|A`@-o-uZX`dfZOnwz1vpIQ0fISljuScJMu78Iq7{oZodbf<`dVi!nrTS&m
zNy1uY?=&iL+s3E7lz}DOdJTOLra4SM@0u2L{|sMX@P3p@gX?1SNo>mTKDn@!rS6~*
zpk$tGn8xb7HC&y3Zq$HX9s6ww?>rIUth}Di_JEp`PQJP1(azpRv5+ASqGA1l--;{o
zj`k)8S;|<}w}6%4_14e!S18XvTh|7lWfC7w_FA^@spvU_9t_^T(3mpT)iz|YJG
za309z(CKH>u+I_niS`kJa_%KaEAHxwzypzjOF|owRv>hTf7g*e;4;SQ-#IGH-}~KA
z{oJ%vl5^Kwzkr%PQqhT+0A_k1iWaIH%^ThV#G@^E3N<)YL6G6QcZCid?P~=pZ|O8u
zPD4pRz<~JsdQH2U>@(jJVHNqDyD=?SfuKVe9=Hbma$N#v+rXYm0tbYrYyEZrnuE#
zUA9K99!_=dMAxpibe&NVPKFfGm=gf;ok(_7qb$kPP!+&_l@NP|g^bj0Xa
zg7ZtyzJA?WnD|ibPAG_(q{nC&g_fD+GwV}g0=qAs(Dj77T?vyus57KU&%LOg^09}C
zpxM14^i!0wDJuFzycPsv@xuI|004Jo-p}m
zu8jfUHwW}%2-+{HxiEQ@_%WgLCA{UTPB&LrdDZWWZWU1n7UT%~I*+)yuN1aOfbA1~
z5i=byT``a|IG8}&hF^+Y`t-W{hDP(GuAtVrMG+g?vvE*HNFeVvR(4=&MI#%KveJl?
z%Q8i{@(yvkab7_ijt;vamEmuXp|-K@v8T4RwS51s&2xHixLRePCdG3!7EqQ#s~Uwy
z;ZDod?zc%}3_I`U&;|4E$CS4S9=RGY8-WWA4YT~zNp<4nD`dQ!fRumq%yrjQt*6Z3
zk@Bjp&HMPi1ucp){Z2s~&-y&peZtQB(;9Gfj9=;ucQ{7m$^LKZaPocF>@;*?2AuQ~
z?B9XFfVUyFez2>6k=vx0XtT{Pd+B3O)n
zsWhb^ghB?4)a*!V`RfaBDJeqKEF3`n+k`PWu)lHiE+n5;P058)?D|B6R}-$pfj^Io
z?F;(dsj%ra#iUEAu5YNa=);%?U>Z#>%jNu~ob5W}Bssd-I7fvC*4b};wm$6B^z4+u
zxbC}L{YFbCRG_grUAg&x%j5O?yEM(Q`{OMTUONyta5eJ%8B9IE|6`
z;>Up7Bpnr)q*;fAcX6X9v{G*-{>$jJFGm~9o>TYfmh}5ZO}gy`lZ+>r<1D}i=h+eo
z&~~Ct1xb^rV9U|kdbsTjs~s#n{sEDCbzFt0hxUCq&u(D{it9$cvuM%c@0|@62UsA<)#yn>hj29ZwCqXkv)QTzxefk
zX}%9uM7I_gELeGGF%|mxZ4fdj9`K;({**jPgo$#qTdvK=%U%eCs`ipYvkM&ymflRQ
zR)atGvl6s59256Zp&yIo*;5Tt*4&eK8vVj%`S%;kLut*t;{)%B0tq#rFGsto*ds(b
zHS$TVDI;=43TCk$a|sLbut`)vwBlW`80$FK;&g|NYs65
zMUS6O+Y67|1LX?)RY7wYrLT91KK*e+iHO1`o~sN#R>kayXW%c;kRh(*-PyNl{c8Cw
z@-uR1)3;)30?i*l8Tax(@y>#}9gctNd3YVqy@dg6WDed={u%-wQJ1)T7?1xh+X|I6@XR|*(meZ*2%>6lIMMTO+usnV%nFl29#l@
zU!xYZ1DDD13a&xYv*
zM-vZ!c~mUi%lTMhu04QqzSgcsU}}-`(R$`j1u81~@3u7Cn}VhtfB#Qkp4<5!;39x2
zcXi*9#c`|4T)H2PQ#>I6#@VPh!;-y523gg+#sN|$c|%Gw+R-g8wiR)}i|yOq9qwgk
zy*5cU*;?}=ZL8kyY(nPZB%+q6@G0+lrFU(FA@5J+m$ceG^F^#kNOF=Q3|r|&=lS$b
zyCcC^SjD67R8F=i9uGqm0Zxa^+0_Q1W_z>B06=9-V{7mw?^@RjkIB=rm(zWSE~$ga
z7MKxvXfG@k7k7Q~V|AVxG7B_b@4%0r4AkAm@M)vezKpGsD))Dbi9#X+JnLT{_EAo+
z;W{X;ezRB|m^-!UM^R19dOO5CxSWgZhX@=#T5Q~QTCHCnzC4(9T=?xY3_2HUwn@P1
z9}^d^+Ai;Y7(eNBA%s3k`W$*StqOm(MRP(9A?k40xGtC|*Nxy;y+)Ew1`^e04GA01
zb9riRNGFVN-}q(CJ`M0GlpMqDZ=;=nZv$5=hfx*j5suYwMY`{w$y$hHaFe~-!79Vbbb>bcRD+8yj*D$}2UkbmVZXqSm$LzWUNn619Wmry;ifm{
z-e4x}^DP|{+l$o!3TQJkvj3{A_#~CZ)ZGT*6CBi8!3mhx7up6a>1Jguzm2
zqo3L_&hy_K{Z<(a=@gTBQ$EutG}CL$g`EH&g+L$W$!Ik{$o$|YpIaDFNy13^mLdg#
zP*eRGi$uP^{&uv`;MB9S+}e0J*XZLidYp|~qZbzmpIIAOA2u<;fos!2Y;WiQbpUDy
z)d}=H{xNok$XL;K`t|x99KWMK$MFU}FV0+`{<iOy5OAgp#{Fc%MrsIp}i
z3ngu6+zTB>$#_FsCK9qZd~Vy98M~HeN9ejHtdo-3v)+TM?tjBYOhS_Qcz<=gSm!>l
zy%cbdSmwX^VK@iao2TBXrYAGW`R-fc1o?)H@jLZJNPF
zL`1_5G;=l5NiGDMg
zc!~4p6$WSpeD$!e56qvmYkP2R#)%%1;!rP%U8N*^34i(|7evR;(V-D9(q&O1r^zmC
zZ$d2>Iukv>Od-)&5KY&P8xdA}zJ|MHWuYmf$?DD%)0N=lv$IKM>-vTeZucJ2cq6{g6FtKw5`1?Az&;8fgtcVZ
zn_g3hhWF~UgeJ=~jURbU_GWzr*Y&tCR2_eu|A$^F&p=vR$3vClLnE_w|JVXj$VP={
z?wKvFQ=NW7zH}Km6MN<}_t1Q+pdc>;@?S|r%s|~o4_=NE&6zhMmR9`l$rw!Cs@s00
zj85q)440P`XrpeAO>7i&_e}hWsV%d$(l?t}@2*Wwu1(%3u$@@%u_{(fz!LU;f3vY7
z{+g`a@n1nrY+*BND1N*IN{~o92@1f7ZFjdeM*V!0nB*1jyii2$^mQH$uWV^W^7{Jx
zA(;1q3We|W&?{n4bs#UVD-pMO!)osUG)7N5{)flNBwAJ=xOLls=XQp)WGo=CUw5RA
z!p_c41o>r!+gIy7eOyXYks?%sFSj0%XYOp9Lb(o4T84%WO8tZSt{ZEI127E9*najW
zBZdcwG-zu%>veutB%r_Py#1?uh12!roja4@GwMOdiRXc`$0{l-G#4!dDWb)Ojg2OkPpJRdoE(*G3xWu0`
z1x*5cK3Q22W3p>}9IWNxHg>v@@ven@!fsxUyw5ranso5DuG{
z!IR1K=~vrD*;So)8^htKsG@&c5ea4OjmhB)z32b}ez%0P2fDBX(I+KE_ERH4-9&{*
zrM^be1fIEsM#NLB6zRK*SRV-XvnAZ`({t*)!ee@@rv2U|CD(yYDuOS
z_N%fiMDTS-o8K85=VMjg8Ucl*Z=g}s8&t*kG$lK!f-!xo>S)NfIJf_`(vn1NX)R@~>If3sWfC&d~u`9_x~?fV&|gwP%a*@uZ$i
zeiyT^K|%EYn&yJ}N{1B?JdJDXySn3!Hbru@s6LNT>ps5>ihfsmPTONLu}|!s{GAqL
zKF;EM>N`ak%|`+*BmA9bsGC(0@I+-*?=ZksZvFXo$Jl=%s`Xf($8~PdF~$GIqBm;<
zjd5fcoh03mBB<;GAVF%sV7M2)ZnoHE4rV`24A9ItQ^GnNp2y}bR-M1OD#HAVjrZzb
ze;@(X(;bB?+f10Ew?8K+XzW?A?K(eKe6C~_YBMUaWAq)0l#&Ckiu~*Cb0%g2z6-FA
z!Lxf~dvoI-pty76I>7)z
z1DS*nolnOL)kbNAw>x+@SkM)w>rFnntlpC(u3640+J1aU^L^xd=eZQtVaZdPH$ONz+=u6}`k01wzBetcWL
z*J_~g%fC&BW@RFi9zS
z^1iy?q8UjSaNFC#hVdjM+)7LuT9k8AY(K0MA_aBddmVajzp*&(bXiX%EEL&KA{J4r
z`c2~V<#<@j2g0_LFzzI>!Sz}HyZ^S}?&W58OjY*lq90ud`n0tvVH(HmtI-s}>!bOG
z@8psnZeH?i?ucFGpGGQT0Gh|S{Kpf_)W47WzvqfwhhX#f%-o6k#z@G~xrd`SUQKGc
zB}L*sbA5J{v1`WAg0*0Z$@!k8`z-F{{*C3lvAjaBD^@eq`uH(*ERIGN^6P@3kH4fI
z?|*|rFiOexOfK$wExL1;)4sDT;9df
zU^AM{dp?|5Ru(#P5{ptbb{?Q##Ua+c>4y)roqW3-91A>${?Ii#y=QANsmQ-pvrb#3
zZ>Arj555c=9H*?&3VYQv04Mis44#~c;78nXarcn$6GwRTj1zn(tlwxkkt_@!%Ze29
z8Ck;)H_DAQC?$66W)SPRMwn2YQ;J_Y5P)rVRhIBtBJk&rK32&QnG4f#1ym}fPT
z_ubcx8;%}XM{|HbxNB&niFMGaFW+HuyVWu#k@L8>->`a!(!)X+*P(}T?USDn`9MJN
zUn6;3Pvw=Jl|2p1&RGJcyVcm40uFdW7w(M3A$G{huK5!s=3zmX$o+It241JlFE<7@
z(^$X6IO*ElU8GYV&Nmwcc$wCKs@eyo@MH=I&z`|_t)iA`uT2~DoT<#Dx5f*-GQ~i|^XtisgE^zQI2sLYh|Z1Pbe38cgTQGQ`_vxzIRrt8hTgZvLL1
zGY{-ZZ{WO;f6oavGD1N=`$Wg-C3(2qz~FV>e_1{oP`B_9Ng-afqKmQKUTSXmisHXc
zsVi>M1gy&1@H@;t&{T+gZh@RYgVS)@&8RdIR%6zFJHO(Zca0_P&7=WXqcrrq=lJeq
zScE(h|7{)qUG8ui?#~wWI-L9Msp34kvK-l^QAdbtOk9I=x%Zz6^UWc0x_rFN9UFuD
z%fp5Zo9ys2^fUO12Kvb3oo43$hz8?t*P~aQE>heDxVdo~L!)(cWVGv%lvPyns@K%5
zOq^G8+7Ras5-PFuZ-KN;v^LkrNax^-eg3tX8f?v9xc`4MR9A7&?bith896g+cee6A
zI@Y1TW+~{%D?ZpQViA2Zo|;;0a9JJY+m~9$_7DDH_2XrDI4Zh_IO^HektlJ(jLvtu
z$Mv(?$;sN<+Or;1bQOfUVdVwU8aPm|ku(wfsL(R_%-Xl0-o}HF;6foMG<)q7>EOR3
zRV3TG?pN-wWAQYhdw7hpezzQ_KP@MAkt1j8gl}STayFgH^x!8D0AJR!goc=A0)P&
z#bW^v|Eh3?zB4m8y~F~CA*vf-!HvRLhlG)LR3dn7O^`K;kRWA(kQl-Ih5xDEENQ7M
z6qM5M`?xn`_O*Wm^K1V53Fh(JSF!H6FI~D3^8=sw9U1Y8dj0ejDCh(u0ipY7#Sp?r
z2KcXx_z^_;zt{dB9^FvWJmUxPMMFCY(zyTtVDpgI^N@9M_4#CHW9tF@-xBRlS{^Pg
np|?C-+}yP9KFF$Rexy}&GFKw_LZ^oK40tF1L9SB9H01vPxI%>m
literal 0
HcmV?d00001
diff --git a/src/index.html b/src/index.html
index 5df1051..1d0f6c9 100644
--- a/src/index.html
+++ b/src/index.html
@@ -90,6 +90,7 @@
+
diff --git a/src/page/mensajes.js b/src/page/mensajes.js
new file mode 100644
index 0000000..3715e84
--- /dev/null
+++ b/src/page/mensajes.js
@@ -0,0 +1,280 @@
+PERMS['mensajes'] = 'Mensajes';
+PERMS['mensajes:edit'] = '> Editar';
+PAGES.mensajes = {
+ navcss: 'btn5',
+ icon: 'static/appico/message.png',
+ AccessControl: true,
+ // AccessControlRole is not needed.
+ Title: 'Mensajes',
+ edit: function (mid) {
+ if (!checkRole('mensajes:edit')) {
+ setUrlHash('mensajes');
+ return;
+ }
+ var nameh1 = safeuuid();
+ var field_asunto = safeuuid();
+ var field_contenido = safeuuid();
+ var field_autor = safeuuid();
+ var field_files = safeuuid();
+ var attachments_list = safeuuid();
+ var btn_guardar = safeuuid();
+ var btn_borrar = safeuuid();
+ var div_actions = safeuuid();
+ container.innerHTML = html`
+ Mensaje
+
+ `;
+ DB.get('mensajes', mid).then((data) => {
+ function load_data(data, ENC = '') {
+ document.getElementById(nameh1).innerText = mid;
+ document.getElementById(field_asunto).value = data['Asunto'] || '';
+ document.getElementById(field_contenido).value = data['Contenido'] || '';
+ document.getElementById(field_autor).value = data['Autor'] || SUB_LOGGED_IN_DETAILS["Nombre"] || '';
+
+ // Mostrar adjuntos existentes (si los hay).
+ // No confiar en `data._attachments` porque `DB.get` devuelve solo `doc.data`.
+ const attachContainer = document.getElementById(attachments_list);
+ attachContainer.innerHTML = '';
+ // Usar API de DB para listar attachments (no acceder a internals desde la UI)
+ DB.listAttachments('mensajes', mid)
+ .then((list) => {
+ if (!list || !Array.isArray(list)) return;
+ list.forEach((att) => {
+ addAttachmentRow(att.name, att.dataUrl);
+ });
+ })
+ .catch((e) => {
+ console.warn('listAttachments error', e);
+ });
+ }
+ if (typeof data == 'string') {
+ TS_decrypt(data, SECRET, (data) => {
+ load_data(data, '%E');
+ });
+ } else {
+ load_data(data || {});
+ }
+ });
+ // gestión de archivos seleccionados antes de guardar
+ const attachmentsToUpload = [];
+ function addAttachmentRow(name, url) {
+ const attachContainer = document.getElementById(attachments_list);
+ const idRow = safeuuid();
+ const isImage = url && url.indexOf('data:image') === 0;
+ const preview = isImage
+ ? `
`
+ : `${name}`;
+ const html = `
+
+
${preview}${name}
+
+
`;
+ attachContainer.insertAdjacentHTML('beforeend', html);
+ attachContainer.querySelectorAll(`button[data-name="${name}"]`).forEach((btn) => {
+ btn.onclick = () => {
+ if (!confirm('¿Borrar este adjunto?')) return;
+ // Usar API pública en DB para borrar metadata del attachment
+ DB.deleteAttachment('mensajes', mid, name)
+ .then((ok) => {
+ if (ok) {
+ document.getElementById(idRow).remove();
+ toastr.error('Adjunto borrado');
+ } else {
+ toastr.error('No se pudo borrar el adjunto');
+ }
+ })
+ .catch((e) => {
+ console.warn('deleteAttachment error', e);
+ toastr.error('Error borrando adjunto');
+ });
+ };
+ });
+ }
+
+ document.getElementById(field_files).addEventListener('change', function (e) {
+ const files = Array.from(e.target.files || []);
+ files.forEach((file) => {
+ const reader = new FileReader();
+ reader.onload = function (ev) {
+ const dataUrl = ev.target.result;
+ attachmentsToUpload.push({
+ name: file.name,
+ data: dataUrl,
+ type: file.type || 'application/octet-stream',
+ });
+ // mostrar preview temporal
+ addAttachmentRow(file.name, dataUrl);
+ };
+ reader.readAsDataURL(file);
+ });
+ // limpiar input para permitir re-subidas del mismo archivo
+ e.target.value = '';
+ });
+ document.getElementById(btn_guardar).onclick = () => {
+ // Disable button to prevent double-clicking
+ var guardarBtn = document.getElementById(btn_guardar);
+ if (guardarBtn.disabled) return;
+
+ guardarBtn.disabled = true;
+ guardarBtn.style.opacity = '0.5';
+
+ var data = {
+ Autor: document.getElementById(field_autor).value,
+ Contenido: document.getElementById(field_contenido).value,
+ Asunto: document.getElementById(field_asunto).value,
+ };
+ document.getElementById('actionStatus').style.display = 'block';
+ DB.put('mensajes', mid, data)
+ .then(() => {
+ // subir attachments si los hay
+ const uploadPromises = [];
+ attachmentsToUpload.forEach((att) => {
+ if (DB.putAttachment) {
+ uploadPromises.push(
+ DB.putAttachment('mensajes', mid, att.name, att.data, att.type).catch((e) => {
+ console.warn('putAttachment error', e);
+ })
+ );
+ }
+ });
+ Promise.all(uploadPromises)
+ .then(() => {
+ // limpiar lista temporal y recargar attachments
+ attachmentsToUpload.length = 0;
+ try {
+ // recargar lista actual sin salir
+ const pouchId = 'mensajes:' + mid;
+ if (DB && DB._internal && DB._internal.local) {
+ DB._internal.local
+ .get(pouchId, { attachments: true })
+ .then((doc) => {
+ const attachContainer = document.getElementById(attachments_list);
+ attachContainer.innerHTML = '';
+ if (doc && doc._attachments) {
+ Object.keys(doc._attachments).forEach((name) => {
+ try {
+ const att = doc._attachments[name];
+ if (att && att.data) {
+ const durl =
+ 'data:' +
+ (att.content_type || 'application/octet-stream') +
+ ';base64,' +
+ att.data;
+ addAttachmentRow(name, durl);
+ return;
+ }
+ } catch (e) {}
+ DB.getAttachment('mensajes', mid, name)
+ .then((durl) => {
+ addAttachmentRow(name, durl);
+ })
+ .catch(() => {});
+ });
+ }
+ })
+ .catch(() => {
+ /* ignore reload errors */
+ });
+ }
+ } catch (e) {}
+ toastr.success('Guardado!');
+ setTimeout(() => {
+ document.getElementById('actionStatus').style.display = 'none';
+ setUrlHash('mensajes');
+ }, SAVE_WAIT);
+ })
+ .catch((e) => {
+ console.warn('Attachment upload error', e);
+ document.getElementById('actionStatus').style.display = 'none';
+ guardarBtn.disabled = false;
+ guardarBtn.style.opacity = '1';
+ toastr.error('Error al guardar los adjuntos');
+ });
+ })
+ .catch((e) => {
+ console.warn('DB.put error', e);
+ document.getElementById('actionStatus').style.display = 'none';
+ guardarBtn.disabled = false;
+ guardarBtn.style.opacity = '1';
+ toastr.error('Error al guardar el mensaje');
+ });
+ };
+ document.getElementById(btn_borrar).onclick = () => {
+ if (confirm('¿Quieres borrar este mensaje?') == true) {
+ DB.del('mensajes', mid).then(() => {
+ toastr.error('Borrado!');
+ setTimeout(() => {
+ setUrlHash('mensajes');
+ }, SAVE_WAIT);
+ });
+ }
+ };
+ },
+ index: function () {
+ if (!checkRole('mensajes')) {
+ setUrlHash('index');
+ return;
+ }
+ const tablebody = safeuuid();
+ var btn_new = safeuuid();
+ container.innerHTML = html`
+ Mensajes
+
+
+ `;
+ TS_IndexElement(
+ 'mensajes',
+ [
+ {
+ key: 'Autor',
+ type: 'raw',
+ default: '',
+ label: 'Origen',
+ },
+ {
+ key: 'Asunto',
+ type: 'raw',
+ default: '',
+ label: 'Asunto',
+ },
+ ],
+ 'mensajes',
+ document.querySelector('#cont')
+ );
+ if (!checkRole('mensajes:edit')) {
+ document.getElementById(btn_new).style.display = 'none';
+ } else {
+ document.getElementById(btn_new).onclick = () => {
+ setUrlHash('mensajes,' + safeuuid(''));
+ };
+ }
+ },
+};