From 23c0e825278d0b97cd1096e6e024e15c0ff840ff Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 4 Aug 2026 13:28:42 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=81=20cosmic:=20cosmic-files=20?= =?UTF-8?q?=E2=80=94=20la=202=C2=AA=20aplicaci=C3=B3n,=20y=20=C2=ABya=20es?= =?UTF-8?q?t=C3=A1=20compilado=C2=BB=20era=20falso=20por=20una=20l=C3=ADne?= =?UTF-8?q?a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sellada b3:48d2b072. Cola 32/32, escritorio-cosmic 70/70. Abre desde la biblioteca y lista el sistema de ficheros real de hammer (bin 72 ítems, dev, ente, etc, lib, lost+found). Entró creyendo que era casi gratis porque cosmic-term ya la compila como crate. No lo era: cosmic-term la declara con default-features = false. Lo que un paquete cuesta depende de con qué features lo pide quien lo usa, así que «ya se compiló» puede ser falso. Dos features apagadas, las dos por medición: · gvfs trae gio/glib y el enlace final pide las glib COMPARTIDAS; el corpus sólo las tiene estáticas. Se pierden montajes remotos, no la navegación local. Por eso tampoco se construye cosmic-files-applet: su Cargo.toml fija gvfs a mano. · wgpu desbordó el filesystem dos veces (No space left on device en /src/target) con wgpu+naga+ash+glow+spirv a codegen-units=1. Sin él el árbol queda en ~2 GB, y no se pierde nada: el resto de la suite pinta con tiny-skia y la imagen no tiene GPU. Y la regla que dejó el intento con glib declarado: el error fue «Package libpcre2-8, required by glib-2.0, not found» — el que falla no es la dep sino lo que su .pc declara en Requires. Declarar una dep trae su artefacto, no su clausura de pkg-config; se lee con grep ^Requires sobre los .pc ANTES de gastar el build. Co-Authored-By: Claude Opus 5 (1M context) --- ...ic-biblioteca-dos-apps-qemu-2026-08-04.png | Bin 0 -> 24956 bytes .../cosmic-files-qemu-2026-08-04.png | Bin 0 -> 45319 bytes docs/runbooks/cosmic-desktop.md | 40 +++++++- docs/state/build-state-cosmic.json | 32 +++--- docs/state/targets.toml | 3 + recipes/incoming-cosmic/cosmic-files.toml | 94 ++++++++++++++++++ scripts/cosmic/hydrate-cosmic.sh | 2 + 7 files changed, 151 insertions(+), 20 deletions(-) create mode 100644 docs/evidencia/cosmic-biblioteca-dos-apps-qemu-2026-08-04.png create mode 100644 docs/evidencia/cosmic-files-qemu-2026-08-04.png create mode 100644 recipes/incoming-cosmic/cosmic-files.toml diff --git a/docs/evidencia/cosmic-biblioteca-dos-apps-qemu-2026-08-04.png b/docs/evidencia/cosmic-biblioteca-dos-apps-qemu-2026-08-04.png new file mode 100644 index 0000000000000000000000000000000000000000..28c3c0c5f88fbe5bef3b9ac8222333033a023fe5 GIT binary patch literal 24956 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 BJ0<`C literal 0 HcmV?d00001 diff --git a/docs/evidencia/cosmic-files-qemu-2026-08-04.png b/docs/evidencia/cosmic-files-qemu-2026-08-04.png new file mode 100644 index 0000000000000000000000000000000000000000..ea6fb48814d1a44d0f90b32f17f9bd1ff7841e98 GIT binary patch literal 45319 zcmeAS@N?(olHy`uVBq!ia0y~yU}a!nU{>H@VqjqS{3~J&0|SFXvPY0F14ES>14Ba# z1H&%{28M!N|bKOxM6d*T5vi(A>(%+{(~I+rYrez~JB&o@^8ix%nxXX_dG& zZ0Ou_oq>Tt18ze}W^QV6Nn&mRZavTEOyyu;XkhSkaSW-r_2zDQf=KGW;~(E|o_($@ z#EXNGNrh2R#C4)p7jNtQ@+vu{9ZG%`^ zSU7~34o+a1ti!3f`}6N)v)R6zUZytI?*F1^eE##9H=CK&exLk&##qb7CWZk7c3hH- zxyuM*F-S2pN`M#-#5fLsXol?$3~V6A4pt@u5Pd*bpaHBjuaSWVBv8Q3k^rJNWL{l$ z^~uS}_P^h3{s9K(?SAKcdUEpO#fx8yiYA{lsrr&J`Q(#V<&``4O?)4&MUp__=8>Z|4)m~leDe+ z^5|%{{&$`?tIR*$%3eRyM{V-SFSoMSUwy};Wn;6)uo~>L=?lW+YfBF_F#h`1z{q?i zZF9#ApJlw#W-nShJ3IMpzXZg_9ZE6MjoV{kWo2b(Sor0|#b4ep7A;=<|L6JoE)UuG zMTIkbmhITFV_WX+SNTs?E}ti5Q?cRlw9@?IrD5PKl$7L4fz{v z$ON+Yz+K;YHaF+h$(rWgy0TAJRyOu{VZ!E{HdS9<96562#fyyN4=-O_>|X!vW;!Tn zOt0@+IP>hY2@@tvR`-9E|Kw_TeC)=g*2~kre(IaEEM9Qs(EtN*oHRsdUtM)|L*ii> z?>E7@^Xvar9{-ehxb3RpMa#1XEG;e9?PD`dGn(n-dT9Z>)r*5N-%;_)Prm5cE8*8 z$~^Dts?fjts!mVS-T&`b_T-aaF8kZZ{$kv;hmo1BN5b$>VNiL$ob9W^f5m?x&Tr_E zvyH0%mOoP@DzMU)i<9%`yWQ`7)Pj?e7OmEI&JEeJLNHeo+(@>kZx~o}8TA z&MWd2f9E->>WUevA64kZU$u z-GAPn%l`JE|3e@?0cZ0KiHFzi|M%;~iwr?eAD=%jm(QQ36It}^%uKh}%_mc;UMy_a z`|J21Yv084cE8t5QoQ5l1}j9~f#aTmU}@42tpHA|40o8o;lS`f%x2Fz$@j19z{&8! z14tqw%OFxqHY{!#H3AVY0~!`hpn}On;Otdd1_p*5Yc#{l8CKM@B*ch$Y-V6!=v^Zw zf8fNK9ajV!3OSYDF)=X2^qs2jQWkoA$%)~ZYSRU728M#Cg@1b7CE8vKHav`a634*6 zV4nE@fxA%KX@Q1^LZv76x}-5MG&q52wR)}uLf39IuqsB$je zDA;h(V%6N#Y~d=-Qy_~MS9xwdR{k%`)WR}=oh89!OV*Oht7Z!nGBPmeu}-bm3J#SC zbUmcXw)mi6!^H)wxYkAK@~a3iGcfE33r)NpIXO!;rkAIu&6&ZC`C?XF4^-{rjRy{X$Qhcyq8ZFs$GUoqgVS+mu%-f5NoChKV&xa=FVK_z_eG^nUD~Ji zl!<|1N0h4kNw3u8EwYG!b}FQ7VUbu{mp^(lathUhOgeR z?NRvpN?`^DhABa78&=BLFTA;}YxBAyn~9fIVzk)8twem--1aIlEWVaCt8TS$t!z>L z&Z6}7k()CwF)%Q!h&rjhva4vB*4IMsskQ;aw(qRG5BVi+xV$jI$UusPQDSSb{LAes zkF3t_^<&;Vd3J{^*NMFh3=CgaRHSUrxpl=$G{Y~=VS3FJ?a3{tk0pf4q?sBSNHH=> zd|eXrtJLi6&POj^t9;K|TK;wY*16oV{_Knl3^9sXLUOWp%~SWqZa*_~%HbXBEIbdX zawkqb^5Bv49G~`eM$F8nZVYa^8B@ikc<&eG|1+(3U*FDf?b3pil35=YfSPSn0#Ek` zJ{8Ld`^9dSx_--5&9x;$VT&^P40lunZK>7Rkz!R+C?d8}i&?lkFqtLc%9OCwT+?N? z;UcwfS8n$SeR+Lt31^0y6Eg$D74fGwiB@Z}Lq7$c-L`J(UWfj@d=JB9k~Zw!8kT2O zGBdhK+kaiKl|h8`t;KJ&yDfzAa6~RH_@A(UnwWVz~InaXtZU44Ab&un#WZ) z8r#ZTzg$XYs|pn)YClakx4+^Hm21x84w=pOLHA9FQybe)pqP zs#dmWeVY9}Po8xZu^G=@K`}G+Q|IO@e-CWy&pKtcG_vz>LEcN17&Er)MN@Zb@5o^* zGh>|9d0~Y#lff$g)n$#(O#WKQ{dz&yDqke}ngie*}A_S3x=O7Bc~QRWi9~bm!LZIvV)lPmJmS#_`t|dGPm5dZ$`iZe zi%R7SB3G0#=KJVXO&<>pscCa{zn#nR^L2c zq3yB%TjPDPyGpz5imWe+GcY{xO4=I1|0n%yzWw|St#Q?l)*3M1F5YxQeyt0eTWunj z$*V&*-|k4wf22FVuG_uy>zCD;O1G{a&dV%KR{y=T>(i(D``eZ#+`qP{cx6=J#MSrJ z7#J8JRpEPx9>Ayce z|NN=x-8vUkZVP*9=I6g(uwX$$1H;vat3J3Ne`y%ua;abCeP#MmyL-_$EjH9DZL#QK zHsuC8gDEp2UMPy1|scPm2V&aL&KGdg~>vi)HDyXn;2FKi2W{lj9}q!}?%j1p5785Xx~;re!p_rI9_dmYtmyXoHhb=P(FNYzZPYudaz zeD?IZia$R-a*ONj_~pyQz_4K5r%#{i{{JoCKV|XHQ@5{dT-@=ay?s`&vECe8{U9~w zZfCY@$6J2S-XFAf4N)zWzxF-JBp{iWo}4mIP&rFqQg79c7DG4Zn0)S z6GP9eg1YbdKOe>y%KW?fW;>&G&FsrZZhd?=@7JvJu9ZK<|LxY$)a<-n%gDg6&S2Iu zRaMp4AMY0}+EXKFD8VcH{@u#Xt#2-Pth^d@x^|ULla_{LWX42%0#N&UNeYWt?z z+1cgU<+cC6u;(vby43I+sJ?gA($ezs_O||eF#1>C?&#gOo%1~xPvY+_m1kkoa$#^& z-I8@R)b7vgoKKt8q5|3tet%d$?TfdYTifdUIt&a9QeJLuZPUJV*9usyaGs$i>ff^N zokD>t$H^4}j1pIuS>DvTzhcqD`$qR4M}6PpmH++sHr>d`$aQu33=9kz5s{IR`}1!v z%HRI3GIZue!HKWXN%4CK70Or z`PbVF3=9s3Pn|!nZ#8{YezkdS(4UtZt(p(`r8zQhb!KpL-Qsm>tCUPo-jDFhCKta* zH@LcJYbAY5XJBa1p0_MB>f@s2Y>N*T{!Op$=Cbz>iwL>t9=5=S$zav;S@)gioT=Y7 zJzKT;P>nki14BXatiScC?`Nz&rjxNeoq3fTgWFn5z3BB*^~z`be`E0W=0lBru8a%} zJ1md?ek!xv`F8hKFZ%+ft&R+CvQy^qt_{85bYElVLFdb>e$NJt*~F}TBhS6{k}><~ z+7(w$z4_=UR0=BXLkpQVT>g1}R)wfHohUP&E3~w8S?48}DIFcl zI)k>cdHuh#BIa&*j3vi`6>X=M&&ik-@|-Q9{SceifxY+tY{>k*LTh%ay6oL=M;7yz zZ`HcKCAsI~>ED0!?W=$My7%qsEcySR>RF!~$6lT3^`++N+bQqE=fv$kWvyYc<96vv z>Fc|;*?)We>=idNL&3%mx8J?9`Q_QKrdE4>yK6*6_Xe@Ozus3p>wL3h@w#`iSq{R! zotshD}C5eob05Jvlx1lsLmv!G^%-sW$u(OCCu#EPc~d_jS3|%k96;zFPNs zN%~=SzD@6=^q#HV`TyH9+us#Ge(f|k(R#nE{CemA0-c*;zazeFZ0Wi+`_{Jn@9hh# z82IEZP8>e}{>i8H(kt?7@Bcb~a_ap#QCrW%J(9hYbHF`5U+(jS)9Ysk%hmZVa<{v; zDBRxvf5V?MUy488uCJ`F>pl12_8QkS_vhXCeyJpUzbL~Fn;+XaE?<71Z*3<3|4Z|m zC5sQn?sotCbmM~6>-QGEn=LK(H~1p!=GDJDUR_?|^XRI5oYr&69akEw%Gk2{7<#Hg zH!)3{to7Wy^vd?D-@k}X+#Qy;G5>Wl@b907}=;e>T>@I(1 zvRCEvfqQdwBgC-FSF({q9};yyrfa-|Ukwm2!G-ZZ9%1_Pou)|7iyo zcfLHfGr!AYukW(WN8@}gxwp*9@M>Ap{p+Yw#0v3QmzyT3t~Y6COk7!{+WhN!Wyzbf z@-;7SE3LVx-*Yu8AmR7+4FN7ma?;mR|6G15?Z&g~`!oLiyWXCDpFijKvX#Cm%-_AV zUxqq1{yYBg;q@o8R_fpRc6C;?U98;K6B=t*c;w&ybL`&Vdp~_#cJmzxs5H`O}AmS04+r*X{ds?R;3t>_2nd zg@Y58>us<7*=!{7l?{~gkNe#AShM`(|8q}g?`d|HUUaz8FxKzy`{>Ur@jJAudJAO$%f6n)5^(pSZkG}c$=1rPy)!je;#JAV%+VfSm*_uaM z^48;Jv+e)9YO@Ugr*6iuV)uk~cU_;Hcw~NRiu~UvwSt_ls@ATyz9HeaKDM;#?tiK0 zTc-s1-gduh@!hvyP0jYNS+4xjSFg*rr`m~SMXjuU8u3+mA_UQYG<`Hz?TpYgT5{A`|m%>VP#&F%k*XFJvp8saC=ViIMJ2WqdpI`d--|5B;jN8>~ zKW^-pp>%8Jt!@8vKli83a{c=>|K34GX?f{Ykvie_mQP=)FMCt}lU49z{(ZyW5l!VD z#_N|g*6AMZy=OP=Pq$-ueDT9CEB~DN()Oa@Txasb?Yv&Mw_c432w2tL-;*bGxAORs zi>&+S=hq&$wN2B#VUv{+n76Lu$M*iNKbM{D_ZoanI<|8WciQ@f0}U(us-GLMN-?Z* z-T!s_AO0_UwrsxCQEs_2>_={SJHJdx)!qLx@3&+r{Ccr#UZd-h%-<{K2p=!=lZ}sm zzTG!1{PxI<>1 z_$_bsukudo<>e-;pFa7tzSnM_OV+r#ho zy-fVH|7WxQVmY~|vX{3T_#M|ur^ZL$|$q%>RU3>l4Ru1bO zA5@D!alQ*;Ziv!2wO2vu>GG17o7;>0WQt4KrJbJ}Ze$lbV`)(Tt&z1@>etpTy&2_x zvh#}{MO^+C`0Y#ddiz6OwH8-StrvOx)ZQt?*?3Sn7`6@x87s5_^%af_8!qz*zm9_^p#wKudv{L zG2N*LC&d2Qc`zzs#`oKi(_=Pnjy8)iE!$L|a(s^P@k4q0{@ytLep=>(+e&9%yuJK= zZT}n9X)&A269S(7vppEQ&hqEm>1Xrb%-xkaH$JOkv)tZGWqG{2enr*V>{NV`KIit& zD>ojjyQ|E0xB7GSeD#_gFP@ag|J<6B`r*TgpI<9Zvf58e$hsYOf8UHcz3*=%r^iGy z>|pw{tv2|_0mr#+wj0aCRP4!G#8p=Yx5ouH_1}JJjIUkW;r81y@%avpX=xin zZum)l+yCd#&bzmzRz}YXOFNZ!GWq)(Ume%ps-<0`u?F*R?_GPf;r98e%1Tz2zuRhy zXR@&^4sz?HoWAQcnLTIeCKEw3M z)61@9Z8hu6$o^;Q=`!Wui^m&;rXJqCG30aGoLv@wAAi5d-@i#rbZPGG2s^zv58GT_ z9iBILOl!~U9se|E$znGC{%hsDCq1pAW=x)%dd{q(a{InyPyy0vd9$~G*O>p!)h@2R z%+1Aq^EQY)G4Fjdqx4Hh+|&DZTDk3?pB^_|9V)p)l$BwX_WSKu4!_@XuhM6YT=Uzf zt~bNkP4Usm7$p1ogw$Gxyd zz4fQm6+?f2d%$&`;rlUm{VPpjNB4bBmJ$1s{UxL(;oqCy`q~GRVp+6buJ*sp^E0^n zp1Jg%JvM)5Z`-kQzLAvlhp#+r{PFR>_n%7G@Fd=5cVX^w_y6x+-oNtT>D`A5-EIHQ znqseK{?*50`|BwO6XNrCD$cpR_pG&wNzH==#;^D5$FCL@o%`oo_qk*>7MD^ZiC(*f zXPwr+*HoHybyj6U{%ys2tL@pVJ35vv{l8`L+y8$xlmE|a+tuZkJiGdxvFnzvAHII& zwISmC$5cI&ZyyLG>9e3Q)CF24U>>Ypi$ z^0m1q&-+LIy_=c-@bmTc_Pfh&ooW34_x{V$)%^df9hpo0wY7fbzHUo1|F%wJx7xq- zjU6%H|JbZw*2ua)ec77WssAqf37)+1Ke#*Y@8z5a8Clwn0_tY~GHQ zhn@SYewyo^Id{rpL;3g3!e82BRqJ-Fc>Ljbm43zf7tg2H>KOjpc~X?uea`KTJ5%pR zv(%p{GC>n@b3+CP*&yX`2BwuxxW9$YvaD%(5*^;<@LK(bxR)S zU1TkuIce9WEt43dmLJ}0!z%IB*Y)1tNvnT1c=v`mHmW@`=*h13i~jid)))8fnX{Hf z=05$kZCPfL=<3k_^%qTiH+L-KjWThye|d7bo2*^Uj<{cUpU2DJl;086IY;>TtDn{8 z3=BJ1DohN&&iStY|3u$R_HXa1o^ghkv-_32yR-A{>TOR0|CxVF4fN7ntf9)*EY$q= z|J0yU3SON-N=I)ma?y;I*!K3-@{RrO+Q0u#b*ppJ>|t1}6}6RHdsRV9)X9%OpMC9( z;AUvBzWn^fw>jU}SIu7B-L|Cv-88Akr7{9#IWJ6(Sm{2S7a!8f&=Yl8OaH>DJMT~1 zN-;1jXuSGgCf1~H(t}l=GedOzl65`Bw;oZ70MCga&(umagsoKqjWf*%OJxiwXGyps zdw&iC1H%Q5A2&L8LFUmIkcaRyQhZ_<85kO5<@qkI;DAs4x*fi7>c3Hc{Ch?Qh65`< zc{_Z*D9GCco;PEFP5gqUM;0e$o~dDDU~u^Q;i4dKFQx*}3>1=uHZgY@7i6(DAH00| za)yZ%&!1Cl1?RH1M(IpDbjWG-)mN|fF)%R1EaEt@<4R?9b#+zMu3h2>mYz#6c(Gqg zOGoF-`SazacL|{P`Klq5C??|!rKA=|NQxr zc6OF&_O&&?tQOXp+1uNP@85i?N7DG&-SYdnx3{fbZOz2MFh`kznc>yU`Sb7F|NGd# zE%&z8(pRtNc&*%)d;8yG`Tsjoj6cjUO#b!#{rl(7&1-*s*_EC!KkaP(-yGNX=Jr?0 z^M5|sy*n(=aBFYL*WD}(4?clr-ma)u|MK)sD2o$z5T}jy~RJ>1OwR?A3S~g!ON>B-Y-hsA8p+~^TG*zE(V9i9}7y^ z8{EF0vwlBCQ_?uCXSFqJjOD2%_wU@f^UJC@FYn!(o15p?ev7naK0niVxtxETd-Aa! z%bFh_mif+J@+0~bXrBD?^RGM{FOQ~}I(sjQ-$IeR2eezxC>-7DVCWf+g z>50nw^%xj>n;Ceve|T>H|L3jj^}L*%n(-i;Q&LiL?(eJp`RVDpcWMQd**m_h-fd#M z!S3_U`v3ow7NtKpH`luU&&T7Yw&y?oKejY4Ci}jr>z22_-}`eHZ@Ok%;eT_Pm+QUn z2}kbMf8pdi`}eKSr%(Bl!gWP`Kj#Wwt1QV0n4ZU`zkbgZy z=ABztTE(`n{QkdACT~~m_s^<5o*?+r z=-va|oae{TDixoKC4@WcZ%^zJn}{(Nq1^zGR6{G1P; zw9cFq67>Febn^YW%1^iTbz57PmAzeGUAHcN^)>bB^`#H5oZR-^uHfp9<=$0BKmM70 z|6}+%qUqC@tefAb)pgrv-%_-C9nn-?knv@4GV>yyrF3d}A2(y{tq2?IkxmtaE7&o72b)xT<=&n-XIbN)r>R35?G zwg3NqPd?r^*C_SW_4xX~?e>2brk|h3d-tbV?k$t-YiCri^R5uAJ@|afmMv}-Yq`bs zUg(GPulBhf^7Bjd@s07HPYO%^eq{XZXu7=rnk6&a*RS{A{7mW6_qYA;qjoO+zk7an zM}BvhQc>1bBf-q?$JyEcq-P#~STEWvG;xZlw(FA0^>s>@9xba=Dyq7>s!MA6b(KYH zJ4)(m9>r>Jzq7Muvj661rxHG7UkqA*RcG4g_ByeN+{^ttJ-%&hS#&2x@T6_Amy69T zlftX>`4|{P6ImoyF#29z6P6tpckf^``}X|%bziTBzrV9H*oBFixt(8LPFT43;i1;E zv(4AX?Y)(?waX(U({SW$_I*{o%#6TgM?j8#qV!# zdD)z^vR=8%*M7O3zklbiRSZf>y=CQj%xjHemA}rbTYAU#fT-cGAFrhM@A*4x>xzK; z+r&gVPOQ9of9B-+w+3G(UXU{{t$DFNj?odM;OF%vYZkjREwbAB!gzt_YqOijh0dt^ zhg{jQXu9>!x6>`v`)_l9KA&F2&f4t}xNheTAK{6Mx+{-XMt-H`Mt{H_wWBdsXl*C!NWtxdZqvV{d>G${{LC?`+NTVdcAMozFz@X zL&IZD3mzP3sIUk|Ni;s{`ueecuxJ*HMOm4k9+a(xw?{D{`}AT|H%CR6Ri9DZq-|3{kFLL z*^7$O-u?%Lgly6NjyeAdx5mBLvT^GQkM%|pyC?kYO1|)#-`S9HQAzOSg@w)g_y2!&b+zl0KR-W9 zo9FF$*d}e3ccS#x>&x|sd`7W(JS42q7+mamE0>LtJJ?uNv}4-Pip-kx9oeR8Bz_;{ae_U&zNJB8Ix?b&iMrly;ck zuwGjJ&eq*mlRWQkaMLfjWugCe%~pl`htIEnuH9|od;9yPFT(Nl*A|8U|MuPf%97IA zO=oz5XO~TDYWne9&Gg??c7_FU0u2w#jEs$&o14}B=gpZhIUa#Bj zqGD}beQ}X%Rb1}XRiOn1AO8IO{PygZ;%zxMH~rZZotT&iT32UPvSRO%`}gDT7tA>` zXa4;6j~@r`W4>SW`RtCu$NzqwuU{9xzwY+7++PK z+cosJ-`!i!xBsi&*`$+}Gr#X>NKnDq_aeii+#@^Ll=rzVEdA{sJ2t z{bh4)f8L$0xAPMN!xe5OgE`dgAjEnnff3K>1^XlsA>3XqJGBSV8*Z&LNe>&V{N|2_eX7RH#n)mPBJ9aL^ zWZ(aPzuEa@H16-%uwla~zB$(A?~aPczqz#ZbZq(E(%)~l@Belyd*;lU>-H^j&`dQd zs9k%hMsvx1qgUF0tztjlta(YI1=iBe7zi#Xwa&PaH_u)65dvu@p7an)#|Ecb;#Zws> zR)nu%;#D_tVREValXa`>>HU}9vttskt&RTPU;iih_qVq*XU@FpzrSqe%$cjh)>i#^ z*xu{5xMPlOwV962nm?aCE?>H&q@;98WS(X5vgG4^SL=0sFP~adoV_)QU&i9YDed)3 zmMt?oWOT(r_s0Bd(fzAUw3n_s@#Xe{DF<&PKl`(<+m3JNvtM(Bk6$j!DJ$(~U??zj zYk24qH?gCA%h#!;@wVn4_KCljDf!NCzoxKs`K!phym#*MwIQz$Utbe>d3E@D>vuaI z*Z=>0|KehI|M_;dMNdwgxBqWrZN0nl^Rs*R?y39Dxv{76bGQD!8>_?D&#(J+^7wI3 z(e>r!<@@#j|IRQ>uKWA-dNVtJRb^%An;Rb=9Blq}bjzvJXU=^2_%ZYHva>6Lmrn`$ zrkGk^|G%N3;menj@OX~{JMY}NlRm$8o1A~d{`A#bA0BSsy^Gsa_{PgDLEYTn%bfGi zUq5x$lab-TU4e#&E&mw07acnE&DX|UXKvx?zng!5dAqyxby)cK)zdzG`czX}tE{AS z>i)#lmyc&=n@qovv{5H=Q_7tkg&#kDe12|j^p=c^%=|V6$;WsWUz{;>=Fhw3_vcy^ zKKk?XbN>Fn-)g_#{XTvFA60$*{G(l>%l+rumAtqxN!9z`hj#lODbrVvj&>jKm$xr@ z5umC+W$xU)B`+^=3adq|y*53r>gBiF`TL*E%HFeg@8{2-%ir7(l$U@1YBl$ROG_hl zv*mXj2K7xI2rW{2Uw86q?SZ9kw>RWON&8p+`}v%mU#{jbulbxaQ)mDG(X@Q}_M=Hx zU0h5q9x*eGx|~xPdD-Q%%bHpH7Dk$0bh&JDHtF`&HQ!==H{aWvvFcxv`h2OwdeuU{;HJUsv!(W&3=ChF7C%3i8($lKKhCsl zUJx6&ce`|oqfEK0=zA@}W)0PCzq6*?c(*=qk;{>~&AvC+2OYG#BlDeMvD5y)-)>J( zbpH1K{{3tIX0^X-0uv9;f4Bes)w!#BMYY3p;`i;D#CY$_8J|n~p!KImletW^o;-Z` z@pk_HuP-mBA8zBdt@?6fQ;yqx`*S%rH(kAX|J<%!*{0i)j&j-FpBBF*?aU0rb?-on z92$-}Fu1jv_zF+t7T3E|dOdb^c>Vpw$G=8Tv%Ow@;IueN%}_MG^Shw}H&m905%yY8I`r~`L}hf(6{qFr~m)G|8JImPw1WU?P>onXPtas_4O*$j1X}~ z3DXHPXI37U-M&70`?{&ybK>n@KcD|Sw*GD@Obs`qglX}|M@Mhx@2`D(YwOyYl;7q5 z@9fQ%E?x*)Q5_@3abSg^@8x&<|Nncx|G(Xt=(7L$+pY#(SYEClUJhCe&#=mY!7Vo> zJ^g;^^;qq&H5ukWVX4)eOJXQJh1 z=+06*b+wl10>itgoky?6GBE78@v8dQu3g*?wh9c3(?F{^t>5i9oV2l{V_7CUzub<$ z-)_$`&D`{Hb^7l6hHqEt#q!B}7L>{}UNN@&0-7FXW|RmG_NuI`eER%(_lbXhe?NZw zST@_#cg?JpiWBcb_3u`kHwknL|1J&+;yDToi?jOee!WPpuU+GR-%cqgB;?Bp<^DgQ zzFpzS=rdMm%1Ez@$lj{-`&yq?>;|XCcEw(D7i3LI5N1keo3*e{PZL|zBbh5 zSfA`}P+)FeU|GB4mPp=`}a?&=;5JO^ZPZI4=Y&julKI3khHDk{k322-l+$U-#|fG zkg3G5*lDp_Z`IeU;l{;Wa`V3YGPjre`0d*~yV_lGUtcbtuco51#pvXhll|GVLZ=9c zHL!tFccwDKVyEjd#lBT#2YvsW7se;u`Vww`ZkGnX{htCCmzItQooW03|9#Ikarf^w z_8-5y4Bl}wFfcp_a%XUBJvZ;X{KqT%^}0?THb3y-<@ZnQuMZzOBv=2ZP%zMIZT$Ya zr>CYqRNGm8L3h^GSFg@7F)%PVh(@q*`^~UXHTC}Yeq-eRR8gtDzNZqteEIb6%j@^< z{Cl6u|Nn7(k!yEQP>@T?nHh$jo}R+;FD1X?(UJB`3FT z%BAc6S515`Z@IkOU*4kNz|~mhISDKhet$NsesQc?eg1i4iM>9j5<~)BUBy0r`1x^p zitm%j{&s>BXaByxr}A@}zW#a#|J-Aj`~OcXyLNRiXjCXU`{JV3g9!oKjyH7#ok}p+ zl5z3S)xS)0l367De5&i#wfi@?N=`Mpk^kOQ!segl`}^fzXBB@wYySS;-rer~a!N&i zO0Kp2Sn~6|uBdOaBxn^zdGUt_2Om6mVAKk#!rzHMkYSYY(`a@)5>S?yzLZDqUirV& zWB*e1zr47p{I=#^@#pC^`wj0cs^N*N^ZHoM$-r>nZAvN#Ox3(%66SGKwd(@Y@;Q9Z zwDRTeuemel?eR~>mx7M_)SY~h`{@g>s9{IYqRtO<`4|`&l)gz`Jg~Hlp+`zXL+6vR zX>Gw9pN&yAzGtVjPgnE0Dc9uk3!Hj9l^GVN={*ydu&s5u%-%UQLkhG6is3+NBSX)u zphaJf9zMC3A*ZRi+1bfy)y*9X7CbmJ)3~*@b=^Bt28IG_mV_OPJ32ZxCLh;}+VbMc z%HVbHxC?H+zP2{{^Ru(rB_1g$DM?9>W*Vo*+%0Edco0{?XK?4-*6VTBnU|JKm@vU} zvKnYH{h8vc z3l};%I%Z~OZnbOfNJ&eZb@rLoY|tRr(^FHQ{!ixT;MnnM)#_D0eL=%{?>G(=C@Z`7 zy}7zN{O6$=GiLPL{W@`VFSDL^*y^o)<)7Qy+O9qQFikgl+4AM;s;XDteYmzZnqSHU zw3xqPwgSUp-5)=H_DUEoTEuyNZ`IdNU%&Qtcb`6ccJ1laUtV8-f6n?n4;Po0zkmF` zn#!7*JslO*)%$*ezK-(FpP-6owE;Pv+Y{{NHx?JldO($aFO`Qi%VKZh&^0NJ>ho z`^^y$)Yo5cSNrSCY;%2m{roE{0)vOP`s#h!H_EzQI+Y{+>3`d7B zw)SI#Rs?9^^w5C?4-PCy5M27@(xdfCr{Y4kIZUzG7RHx*N@l6d`G{{THZPyNx$gXj zuV2?1F|f0<+kd}PJaOVgOH0es({!Wv*X`{nd4I3=$A^dhwqK`ooS9{s{qoY%?f0s( zpP!qnAG2da)z?>3wZnJ)Vq#`!_~pWIY^uJwdHJ<9k?;3>_Ir9Z?d+`3rz_v>dJXEQ zoZfiE?px_`+47qIf4?8^mlvO??B4h1$K(F;dzH`k|Noo6x9n(_Xk=uh(x%+o+g7jJ zm34DdDl04N&!0bke|wvKd0B5q$%_jI@87Tg`s%7u(Z4@Gd!^0q6&&UTE$v?S?wakE zNbaRm=J`#v$a!%y)PKF#)G1fiotoA(Rrj~nQkSG%G3BqWFJ3*pJ~Gw*{m$p}Sh>Yi zR8?Kw-Tmj;{Jb7tf3@EAX~vTi6Z7|ez4qtl=i6JeK|`s^?tL%*2Qo7>XfrcPtY|dN zzNQnu@6Nv4%Y0{Z3ah=itsA{9W^2~ey|1pU3^u=4vAFj8ot?$M+#DSp%gV|e9UJ#m ze|&UwneXf_kJVvoo0^-SpP!#^ucEAc_-elRil~a$9TzS65pgH(|nseYMq01`G`0LQDpCPR}q* zc5#vCt$Vxm`j#e|vNDm3-Z|H#awIFtE4ZZ>4vHbw`WZB9pa;cyyE=t?|+qO#gVp>_qgO z$*0p3_PXRG?l7w@E1UB;e=7sSfvLwIyy9c%eKoiI-pWsD4{k+nPCNT{`~7?SYO9+M z3dqXVp4Q#ICUWz#U+wa?RbRfmysYfr$HT|>?ZbzRtE)m&QkJY`pv^3WVon3h3U)HZ>hgXZ5udrg>o^$ikzPrnOrH?ZvGB7+) zlVD_fb^N^j|36p5<9j6xl`JfN{Q3ELe*M3n7ZOmuW+L;-NCQ`=6 z#`}N2+x;6nqdZXFlQa)(i|6Zg3oMD6Rc+(LL46 zZ=Q{1-W`kI@6OG&E`N6?a+z;k-M+fV8{b`6=zMv(|MvImA~qh{H+SmPulK6o@B9_Z zWEwsvIeW*1se8RN*H*}F(Xxz9m5gwipZ_)@bSbE>$8Yx|;rF+TO%|9SrZKfhkD zU$?J-fnmW$!G?!=GQk;NS2KjT@6|~O{q-;I??m@sy+`>z-VmE%8o1P`U~2G!ukkjr zHWeFue%{+#{r%nD*Ef#kJv`L9Zr?fvh6VEq`3)Er=*_uzU;EL9Qz0Ms9iDq|*51~? z%i_{Qqg+Gzwo7+ksgl)UV0e(nae$%0N^}2&(3_^~witzeTkN&`(JA8%Apx#GSQ!|u zf~PnfJ!k34m&{E~Sh?VoT>H^Fr}XAyDG3Y=pxqY?4sR`OUV9udJUMNZ*7UBq{&Utn zndzzI_bg<3N`jgrGeg5G&~Bqwhve$J-=DoIB9rxR-KaL<6&S35M?r8SkR|+ z`oPh|tzQDxhGor(u=hM!6(K7B`cJFJ0S1NzRUjAcDx8$;-IV7mwy9{_xy^rhMj=7pFSVNME}8gFxfIbg*S7qmEW&?K9`xD??yH= z6H^gt<~MiN?Afcg&ooNys{Q?Rdi=MKA2&wmxVpN6 z8XkMAws!PL7(Uu|JFmO9_w1Q7Tju}#`Fwu<#YIQ&|Nr;>)b8ucd}nJ0FS}7*TU#5x zE(X+p=9M&ha!fkkM5nyAX`eq(<+m>DPx-GeFO@EB%e{SEzP{$xmdxH_-&rP^lcr63CSfGY%EI#I z-d<3V%hs%DX7=q`bbjpSG~dh1e9iOjNQjF+|1x2Ee4VALs;Y`g%B?M#nVFf@-`)sL zeDdUpUF|QO_bV5yZid(%f{B$zjr>Lr>&(W zWs-5>!^6Y(D<1P!OE0~$#B=hzs#hx)En0MJXBz{<73*aV%nVuUza)j7yH=SurJXsx z={o~E3(Fk)`hAOTJ$dqEZ}s=Cj;mR=H9ra>B4*TigoTAYU4Hh&i5r_zy_fsV{c<;U zciGpsx39`FCyj#gjSaY40dB&Q4(e71u z=e(Nr>i+)!3mlt!+!o)=`S;^-zyBNyMWwsDN7%Bv zzrObOH{HlhPg=#}emv^d=aaQkQJOe$V!!>rA6HfepPq9+!=$af{roJ`)t-~pI5{~B z3kxeNE1lbTKw~-4`Fo$<*c80n@8idhN{goK`uS{j^|v=KpFZ7M`T1Gu>1md4clP)D z$HmRtH+R~!Y4hjHOG>W%zCZo^JZ>=^36qR~UcIBS<#)gS{eFMCW>06QrpSHS4HRT zJbL|l`Oz*>x5b4A8W{KO+c(=h|KG3I>s_Dx`~80ZyIrrrF3&brCpBXnC<`n@Au1>FTGaoEPlQ&cK5e- z`MMoXr$v8ZxU;{$es84YH_Kygiwlo*2p(?duYbSyd!LNuq*=3G-B=U7J#XQ{g}1lo zi%$ei9!G9=bMaBTd}U?uZzo)E)u{q@zl@R7@M zzqvud!TK>f0v3A$&~%UQVb1k;F7sFY)-^!_Pbq18{(9dW(h6rv^~CRQeo2V zm0KTu-H^lE#b0O#@YdMCW$Cuiw6Hi_mFoY*d?^`TX2me!CwF_V2IH%X`Obekb5(?NPDr)T^sPe+g{- zJ7?Fox3}#-olq`*er{`oPT$kC%|DOJ*T1>6v^$w$o>A(lR&H^>`F48~4l*4V*_(TN z+s@+Wb-!LN|NHCf?LC#nKlxl-U5_3+)^(y!*4pmplgUO~K`q!{Uth~wCm79~SNH2B zXjtRU&f?HG&&3ySY|XxY;DAHz_5}+REG#1Sw^^6H5tz7U&6+uLWNMSj;^OY@EPl?! z#58I0CWY=BB0j z_xC+NH`m+4;{v;r_QQt{6X$Qq5f>CREPHdKm0Nt-^5xdHPaYlZ?o<7x6!A2A*4bxE zmMoF8ttxqU=Vvp&-G|SgwJ$$-adC0q>sZTAA3wglyu3fT;rr*$vyDd2~xNM^8US}DwI8R+oZC%XHqGLUhV%@6d=H(9$wf^FG`{-!*{F+ZE7cE-U)5G&y z;00*&{1IXQCr_R%S-SM?y}i-;KK}loDZImn5A(~}XejNi{w`-x@Zii$IBT zoUA6v!`6LNNM3%u{YnirwPmHRuk9{-yX*bF-%ifXZ=Kh-wzh8Exbg1p^7$5pi;gB~ z>gdF5%ZYSyax%StZk}zmTd&m9l7GdjQ-VOL`*!~RT>Y1qm-~l=ghWK#`0()X*Gb`V zm9Ft|t9zzuhl3iK#>U0Z&dmJ(@B4oFx*rd($5s1Y-ty+no6676LT4WKRl9toQ`pwl z7CgDSY9E^f14FNa>%G50ch5IzcZVH}Td6)*BtPpL`@D{2oe`$B&YNE;+s{hd_%iqRm*8ZB!8cU}HP6;}t(6@V0 zSNYTq$0?isR%rgasGw>ucw}4juhk(N_|1=V7_2M!DyqT|lJfM_)VH^{_jhz`s6A2e z$0F!cgHpAIShaEJr-d$4r-;s9xMb0y#Z!bPD({!EnffRD@&4Bh4Gs79R-d0?=nP)^ zV|R?3fk7`7TnMPDs!pv>dn20j>dMNqvrMBmrF8y%7kT`-5FlA+`tGg%b~8PH$3wR1v7oWw1EA&N z+VL3~E7q@HKYxCFUf#OPY>JACf`WpTm6cQHJXtzDj*E{^FL+1l>1qA;|887;&kq{p z+$zve_|)6ev$Lx!>+Y`7q@+b)ZB?7S{65_&KCijd1vHW4-X{~eJ#TJDgpOGFeoN2* z@KslaV^j4lEiJXQw5+UlEn<+7mDN>p?~_^iM8(zB^;g@nOtJ2z8#V;oul;s29dvj} zbl%RT)!*NNCQE;Pef@s-`+cw1?LL=cl$xGi|MhCP{r^9k{|SA+UtixXrmG`%`s3r{ z_bZ>v+S;(QvH8s~SXle}o48)gkB`UYudj)G{Ax95Ffe8#$AKN6=313{xi~pHYiC_p z<|{3D^2CW1cYpr>G<|>0%}r0c_4jFLXb4P9KHj%BcDI?e_3rBL@9O`)j#u}cm9jPJ z|F`Y?K@R-=?d|8UUvuy7+FJXf;=zGNP?I_+DCqUIwe#zKy#y@~u_!!rRh$R31kPw9 zhuFHBs!h3fca^&GewkgZJ)bGIGkCe*+W7tVa?D;cf{y7pckZ0n#J$zutE#HlSXnze z4kmo~@jK7MO!_H&q@K+Aai=l_%u6buYx z-s>f=v5xh)L$-kg8=p+Y->=uJtE;2ehVk?B+kQWG^k}b)<)-}m`|SVyczoXe|C-EM z_x^3aU$X-}Gw%5D5$p5(d_aT4%iyIps zKRViNY-~I=D1ZOoZEP@XuOHqwTDR-fs$rJU%}=%iA{T{}C=OF0U0*+SUzYNw)M%Al$8l$TjFNSn-{0AKV{}jNnzn+1BpL>|F-kVM*Xw&JUh$u z^Or9+_5b#)*5?G}wXzvZyxSL?uelapt>>)2<^`vx>DRB<O5pTAzO z|NH09mrv>QD%Dg}j%1jmrKi{bdb#|UfFT0|L&LEp@R`8X3I5vmF3Xsi{;gk>xhPX9 z%=i9==z+^M(YhJ&-w?6aVJ z`+)2D>({Th*y!u8uStAJ_`y|MP=o~FUu2S8Z6t|ftTqh4fBmxi zb|d-j?(*~J&&Tht+nb!x-`QFD<6(RB)~u=X=KTY8o0re8lQK+dnLq#jBG>LOY-eYg z&bF`rC+u(Y@%Q`vyMI+NGc;H!f>T+fByV_|Nnn8X3RJ{+q}DD|Ni=% zoHvVHyZL0Tu53&`zI=Y&ucPAecXpM&zOpjd*2d<`oSMtN=CW2L9bdQ^4u~EAjj}Q5 zB|luN?BqPVyJK0V(yX`g7nf8l-*IYT(3VNOXYUTtYzz!v8w3*=9Nx0BvSu&R^mWnny*x$e;*@1w-gCk=0~d8J z%%i=E#rSDmY*?e*^->8cBf)uM8)ov-Jf??wA9GNvbwfHmHMJ8wpt|ejvL8Qwi0MXc$-1g#XLs*vxD*4!6=u-z z&pH#qrJ15>34(&@p;et0-N&o6rahVyW5@hjHHrK1)Xj5GEnIjsX=C`>*xlbYpSRO4 z1{s)scGlCUPfIWRn!mldS>4?H`qk^8;ZSDqkimJg+{mtU%iG&z(oAlryHB5~7Q4(V zCp0KVb(VAI->Y5f_P68L?r==iw6L|ko3(XY)>W_jrV>2g()H(B7OSbLE&HRm5)AI{ zDt&!(v-;=xj0`)HK!_# zqrZMyvt~`@=V!6CU$26eQAFqOHO;wUps%mLH|zJex3RlQZf?zn@7@Kd&ICks;|?yvfD&?9xVOrE*eab5<7 zhEw3M3aV3Fy(v2;Gj-J)_p6T&H!?CXtO9pisWG6qsA=o0*I%&>C4T)>kf15Q_OzV@ zCj-NREKmV+*W%Bt`ADfBx=W8dUhvds^4=HBGDx z46BYG2Az2mbI-&#*vln&)}<+Gi>9n~33;id>XpC7#YMO_zH7CKFKA9-k;_ZR>z-5N zg0`*NBzJC>skVW^g#?2cKFi*`$r1eduw8!N?{~XT-M{|hLg)6fH#Y(`r%ssg;bFUcl+LsnGiIy|UjFRavsbyxd}b!y zulxCQdTmXOj+l2~;Kf~~ufx{I=_)C^_3U`N?RHXfvazx8+w{7BKc7c$$@utv|Np&K zb8~KO0SzUX<=t5^|H9$J$tNZ#f@W7PW}G>3qT>DD??y&OE-Gqj&mOkRfBW>w%iFv9 z`P}lNq9PgpOUry`KY8-x*B@i=B3 z+Fc!6a&Le8cwBzIS#H$hn8|9svz9Df>O0fuXlAa1!-02qcZ=)Cz5u&~gNzw+nP>A^ukPEJnCd}mLaHf>w_c{xE(KfiaEm!JRi^z>J=v$M^= zfBCW|jla36X?vHNW@a>(|;pACJdZ zyeb5SU0q#L&kr#%1c>`IvN2qVdwF!toVB0t zXz;V|V|mZW$H8Gy|F6b%>&cTRtG~Y!6c@wN8#WmHov>!jnp6I>Cr;d$dU~4Q zT&tJ6cbC0=b$k2zz1#Bd@3Ss{w?wVH?PcJ%>G5?J zt3^dcOaJ`%xMhopVC2RmS0A6A`Sa)h74W^R<}+h~yiwvImiqeo@c0S_2Cc)xapbXd z-GN=DuU(!rvda}jNec^4o-##6>E6A2t*x!!?BDeC^rW4gHP@!{(mf+Ry}TnGg3RoE zd!Eh8R`Z=TW%lgfr?l6zu&~(tda+nhQBh7#F8lhrtMSeejudE2vjoR|z%NLvScXw8=-*-!(KAw>wuMadn&V1Wr zjn>pg*RIFwr>wf~N@f@& z9=ftJn3wJFjg86a=jY9xH0jcw%FmX?&vI^TaCAA7_WAew{qyI|TQ_Bvb@{tnTeIsy zjgq{buKWl7{{DV__SA`U=GfHzsQ^t7D!cVa*wy@~e!sW;$%%%aTv~9V!&5j?lv$MN+@#5aj`CY9M-fczAeva&mELX=uza%Z+kyIMBq( zJxwpxD)*L2eEj{NpP#Rf-MuaOcwgA+(E020jAp)i|6YTEL6zeGL&L6%UBcNv7eoiL zUGsKv30`Ef@p(k3kzbDW*04Qt)7CnEROCCJWqSTV?C!F=8WU)|cC|Nn$?|Czbg*ON9{Oq+f7nSA}9jo#Ds`WP!t zP0a{^w_BpIQruii%20Yb#loz4`HEvj3_* z7HX4UzFa>4-;2fl=jK|gE4_UA(tEnzT*G9y#Kec7(T4f<@h7k3&ApiM=GNBigoFkA zq5}d1WMtOF-;lK~>j2G6`1$qOMO*9ZzrVAyn30jOonL<6=X2J_`{nm%US8JB&VTLK zdu0ZOso>c%C+)tKsfV(D%Dk2+$^Ce>5L}PGR9(7iiWcYXpif>=z3&;mefhG*|8;4~ z)~L6)zlF{{23fiO=gVb(C8O$ZIeW8CPt&da{mr)gU5t~H)6CF`r$2xAu)#lSTX#o? zgmu}QL#^DGFJGQ3_h^UBR1y8A(0xm9=J=?|1+G{r$F8+C1;hj>5$qEiEly-rU@L>btg**GkLcXE(w(ZY!<{{`vD~ z-`nEi;^${(3QI~_7Cboc``zyRXJ=-n*6A}aINZfPVrh4NTkP(#U%qSA=|5QcYKFw# zy?a3?GXDL3|8?-D(;1hRoLmvOc;DY|x4ZcESA0xzaA*K6FLQ3^1NE0L)CUSmNMx8u zt-jeVtnOFy;UK&3Y_r^3TQXzsaWgRZfzB&ku{U_R-_au_tJb%!Syg9I@KZ6#_wp2( zpHCfncg>wKV@J``Qu>MwRzEn>FMo#dvEXWBb~y!V%~{~4>zTr77`L# z^%FF+Vw`nFWBKR#*-QNA+XV&&f)>2D^I!Llt9&|DSlzEj)_Pm+?QLPJOTWIl8ofPl z?TZhD$1Ek!t>5)(6}w!;fy0LnCm7`1+OqOg=QRd~D@|Q{elOiMpEX=;ZPVT$e=E&< zSKjd32>J?d%=*=qcGbNOdBN?8ZAq_ALUxqas7EleuCV?qcfGCbyzTdv_U+f6Yj+0) z?NQyP8~Vq8=cHSqH{+I7IIoPKEVTbu{?+ZD?*HoSVpaa`&bO=OU*Co%Ki5nZSUSb1E67XoNMU%$$8|!69YNdV z^^e+1EqS8ebfe6>ek#|uhtEIy1HwsD!JELR%rdaeysjFBO~M9>hJRmliT*)-j*9(+au1v5OWG#ZhCon zU79cXT5Xx%+*@lRH>-M2OG!x3{!}Y%X+kJUG)hor{}0_HH%jTW4k(gPN;V_PPuV1&W|B`?e-*_37sZ>}+hme*b>{L69st*bXJO-Mbx z&r5US487}fe|>%N>S=t~y_5ETU-~;bItr`%ZHdsS|9$(uT=koc=J#uYU21A;d1`QQ2pI>KXW)^0D=l*?rGqbXbi(K3JWMAFb`1rEF z{ohC3`tz(xPhGt(2Rg{|Ah_dp>`=6OOPiUvpzmcDliT)-JU{vsPIX?Ip(;IVZ>#gv zkbtE(SIg|n61u3jD)jZXsU?>(OzssPm;JROzpf56bXt9w*SwS?{@7LdwSlW;K6~t;CZ40SzFcA)Z{D*7Nnn_w{G7z28IR4Bp5+`ihzI( zYO^l6Ot}PEc(Q88k;r~jw#b=I&CO*vl z{`O{Up!#gn>}PM^f-3H6&$zg_%gcO=i;G>Kyt%o#YT>fXpFe-v+1WikFCZsZ_xJ1d z?=LPMj+-=f>QkhM(e`!8jB1sPa5)k=HBRZ=qmA>rmRhJ!KYyUA^Twfqr#x)U9Y>BG zi`!FiabwK+T|a;R4Bh9r^vbQR+4jHR7>CDaGB5Cc4XY_Vk!Y^&UKU@b0eC)qf`R^zg*T-#>A}W9gKG z2@zNZQa(&jVPMd62fMa+ndeOF(xnweMXKf>r-f)P6+Pb^rn+3%*JSCGWt~FN%6pGY zn|eAd^xbLw{UQ^W&#O9h|GvGob@k(8z4rhA6sx}7ylKb}{yF|a;O+Matc8=v`$Y>a6@B&7L z(uZIE#cAqYjGj`>GwHE%-?<68BmFyf7RiCKmZ8yf>dDd@2IEAtL-?sJiuoU?LO(aIY? zkG%AnH&f+NieITGTbhsw=-66Nsidb>5f`}EPUc2j=uOC|4S3WzFjaC#oE)Fd)5WDT z+nGU!;ermd4>0#D%JICg_M{VNmCm;NB01KUlAxhDIgmTq&%J+tH9KqLgsEZw{@n{& zx#Neb_tE6AgG>wzS06uo#mB&)mp^Nnrs^V1-%Kyzz*AvLt4gK{Ej15QTGY8u|7hr} zWt~A)+<}X}EO@=dOJ6fOG?G94>?~0Ui3|e?AGP4JvTYrIJ{;!1U;91w>HF+IKR)g* z0}Zo;zt!swdUcrJ-emUKU+=8n?9n1lomltM6)Q48sW5!K*hE2Pw>xFGb2o0>ICJLAZ^rij z|9sYs+VbP~{r_>P{MBDym43flUR_-+E+SI%>7=@QpG@HzUT$u0e}8=)oi*S08!#~J z5CDZo_|(*di&HFCZ(@y4|9HbtG<;s;*Eum)f4u+l^0Moa+}qngYk;<7UY2@3%OvxX zimq<%sVSO%phab6@9*uc_?XmuP(WI``t{oF>moNV%e=fy+B~nPySupR#A*Hgb0$p^ z5)v}Xy|rb_mMyl`-#R>sii+mj)lSooU$;H;-kzPym#3Rnzj*%KJpZ1}=9@B-l0Uy( z_V1TAKld?+Pu8mB>Z;Jr&d%QAouEY%;2cHWp^@urqnGms%(o~!1UXG&W7)$)tyRDF zKJK&5+w;*aJl>Ci;T5|wsQY-~c$(?OB^6)7OqNcG%UZpu_kEX!?~)y>?kw177pAkS ztaw%Ss`~%`n%Q`bqfy|E!ttXoxC`LNxTETfsndZp8iX71Uu z=iA%c+fz?$iOf0ac=Mb*{SrKBvm_kW&kwO+)AgbNECO?Qc`joxlH`>eQLOo2|#vzh7p{(g&Y zK4_3}VL?+<6DWaxe022X%a@={LmNJs3n@p+rg#m~=0=kL9G|Nj3A z3!OnLEbMA_tY82B<>lq~D<1bQTD0i*`~ClSyFB@F=RC33iIaw=zN<{<)1~#+v*L^%Hem1SRoljQH zXNE!PtB~e{24!z<+}xbLe901%{ChR$=2%Lb

CFzWL|h@Au1>FV|lB?A%;XjsvY! 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 AqW}N^ literal 0 HcmV?d00001 diff --git a/docs/runbooks/cosmic-desktop.md b/docs/runbooks/cosmic-desktop.md index 33fb8cbe..9404fade 100644 --- a/docs/runbooks/cosmic-desktop.md +++ b/docs/runbooks/cosmic-desktop.md @@ -110,8 +110,9 @@ Más `cosmic-settings-daemon` y `xdg-desktop-portal-cosmic` fuera de esa lista. | `gmp` 6.3.0 · `mpfr` 4.2.2 (cadena de la calculadora) | ✅ sellados a la primera | `b3:d99a0a5d` · `b3:13982d20` | | `libqalculate` 5.12.0 (`qalc`) | ✅ sellado — la calculadora del lanzador ANDA (ver abajo) | `b3:edb8d14d` | | **`cosmic-term`** 1.5.0 — la 1ª APLICACIÓN | ✅ **sellada a la primera** (arrastra `cosmic-files` y `wgpu`) | `b3:d0ea1c1e` | +| `cosmic-files` 1.5.0 — la 2ª aplicación | ✅ sellada, **sin `gvfs` ni `wgpu`** (ver abajo) | `b3:48d2b072` | -**La cola está COMPLETA: 31 recetas, `escritorio-cosmic` 69/69.** +**La cola está COMPLETA: 32 recetas, `escritorio-cosmic` 70/70.** **El mínimo viable de una sesión son cuatro**: `cosmic-comp` + `cosmic-settings-daemon` + `cosmic-notifications` + `cosmic-panel` (los tres `.expect` de la tabla de arriba). @@ -581,6 +582,36 @@ pero trae `--with-fallbacks=…,xterm-256color,…` compilados. A la terminal no necesita terminfo es lo que corre ADENTRO— y el hijo acá es el `sh` de busybox, que no lo usa. El día que entren `vim` o `htop` en la imagen, hará falta un paquete de datos de terminfo. +### 📁 `cosmic-files`: «ya está compilado» era falso por una línea del vecino + +`docs/evidencia/cosmic-files-qemu-2026-08-04.png`: el gestor abre desde la biblioteca y **lista el +sistema de ficheros real de hammer** — `bin` (72 ítems), `dev` (129), `ente`, `etc`, `lib`, +`lost+found`—, con su barra lateral de Recientes/Carpeta personal/Papelera. + +Entró creyendo que era casi gratis, porque `cosmic-term` **ya compila cosmic-files como crate**. No +lo era, y el motivo cabe en una línea del `Cargo.toml` del vecino: `cosmic-term` lo declara con +`default-features = false`. **Lo que un paquete cuesta depende de con qué features lo pide quien lo +usa**, así que «ya se compiló» puede ser falso. + +**Se apagaron dos features por defecto, y las dos por una razón medida:** + +- **`gvfs`** trae los crates `gio`/`glib`, y el enlace final pide las glib **compartidas** + (`unable to find dynamic system library 'gio-2.0'`, y detrás gobject, glib, ffi, pcre2, z). El + corpus las empaqueta **sólo estáticas**: haría falta una cadena `-shared` entera, que es una + campaña aparte y mete una segunda glib en la imagen. Se pierden los **montajes remotos** (SFTP, + MTP), no la navegación local. ⚠ Y por eso tampoco se construye `cosmic-files-applet`: su + `Cargo.toml` fija `gvfs` a mano, así que apagarla en el paquete raíz no lo alcanza. +- **`wgpu`** desbordó el filesystem: `No space left on device` creando un temp dir en `/src/target`, + **dos veces**, con wgpu+naga+ash+glow+spirv a `codegen-units=1`. Sin él el árbol de build queda en + ~2 GB. No se pierde nada: todos los demás clientes de la suite pintan con tiny-skia y la imagen no + tiene GPU. + +**El intento con `glib` declarado dejó una regla que vale para toda la cola:** el error fue +`Package 'libpcre2-8', required by 'glib-2.0', not found` — o sea que **el que falla no es la dep +sino lo que su `.pc` declara en `Requires`**. Declarar una dep trae su artefacto, no su clausura de +pkg-config. Se lee en dos segundos con `grep ^Requires` sobre los `.pc` del artefacto, ANTES de +gastar el build: `glib-2.0.pc → libpcre2-8`, `gobject-2.0.pc → libffi`, `gio-2.0.pc → zlib`. + ### ⏱ El panel tiene un DEADLINE de arranque: con 4 vCPU sale mutilado Medido: con `-smp 4` el panel arranca **sin ala izquierda, sin reloj y sin dock** —sólo la bandeja @@ -597,9 +628,10 @@ El número de procesos no distingue «arrancó» de «dibujó». El framebuffer ## Lo que falta, en orden -1. **Más aplicaciones.** `cosmic-term` ya está y es la única. `cosmic-files` **ya se compila entero** - como dep de la terminal, así que empaquetarlo como aplicación es casi gratis; después - `cosmic-settings` y `cosmic-edit`. +1. **Más aplicaciones**: `cosmic-settings` (el panel de control) y `cosmic-edit`. +2. **La cadena glib COMPARTIDA** (`glib` + `pcre2` + `libffi` + `zlib` con `.so`), que destrabaría + `gvfs` en cosmic-files y su applet del panel. Es una campaña propia y hay que decidir antes si la + imagen puede tener una sola glib. 2. `xdg-desktop-portal-cosmic` — sin él no hay captura de pantalla, ni file-chooser, ni compartir. 3. `cosmic-settings` (el panel de control) y `cosmic-files`: la suite tiene aplicaciones y el catálogo todavía no. diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json index c49ceacf..650d856e 100644 --- a/docs/state/build-state-cosmic.json +++ b/docs/state/build-state-cosmic.json @@ -3,8 +3,8 @@ "totals": { "recipes": 802, "nodes": 802, - "sealed": 799, - "never": 3 + "sealed": 800, + "never": 2 }, "by_class": { "c": 160, @@ -14,8 +14,7 @@ "rust": 243 }, "debt_by_class": { - "c": 2, - "rust": 1 + "c": 2 }, "by_queue": { "corpus": { @@ -23,8 +22,7 @@ "never": 2 }, "incoming-cosmic": { - "sealed": 31, - "never": 1 + "sealed": 32 } }, "by_profile": { @@ -39,9 +37,9 @@ "sealed": 74 }, "escritorio-cosmic": { - "raices": 21, - "clausura": 69, - "sealed": 69 + "raices": 22, + "clausura": 70, + "sealed": 70 }, "escritorio-mirada": { "raices": 14, @@ -49,7 +47,7 @@ "sealed": 31 } }, - "sin_perfil": 650, + "sin_perfil": 649, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -2453,10 +2451,12 @@ "cls": "rust", "queue": "incoming-cosmic", "hash": "b3:48d2b072f96cf45f0287b347c208d22d877eb52d388f72916bbded9e4fb69166", - "state": "never", + "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-cosmic" + ], "dependientes_total": 0 }, "cosmic-icons": { @@ -8162,7 +8162,7 @@ "hash": "b3:5ac3a6a211364c8dd3c5d75c840493caf5fc2df169d49727f61fb5c3e8d5d738", "state": "sealed", "blocked_by": [], - "unblocks": 1, + "unblocks": 0, "perfiles": [ "escritorio-cosmic", "escritorio-gnome", @@ -8388,7 +8388,7 @@ "hash": "b3:6d26d5f414d83c0cf72864467f3fdba6357e9a60bb79cbdf9202e1d6456abdd7", "state": "sealed", "blocked_by": [], - "unblocks": 1, + "unblocks": 0, "perfiles": [ "base", "cli", @@ -8472,7 +8472,7 @@ "hash": "b3:14d29058553e8b2a93ade023ecf80815749117d66d183ced6605d701675aeda1", "state": "sealed", "blocked_by": [], - "unblocks": 1, + "unblocks": 0, "perfiles": [ "escritorio-cosmic", "escritorio-gnome", @@ -10658,7 +10658,7 @@ "hash": "b3:f0b5d0b1cb4321b3c61f24a871b9a58da3ebb7eb903af4015e35bd41a6465437", "state": "sealed", "blocked_by": [], - "unblocks": 1, + "unblocks": 0, "perfiles": [ "base", "cli", diff --git a/docs/state/targets.toml b/docs/state/targets.toml index d00d94d6..bb273634 100644 --- a/docs/state/targets.toml +++ b/docs/state/targets.toml @@ -110,6 +110,9 @@ paquetes = [ # La primera APLICACIÓN con ventana del catálogo, y la primera entrada de la biblioteca que no es # `NoDisplay`. Hasta acá el perfil listaba escritorio; desde acá lista también lo que se abre. "cosmic-term", + # La segunda: el gestor de ficheros. Sin `gvfs` (no hay glib compartida) ⇒ navegación local sí, + # montajes remotos no. + "cosmic-files", # Datos, no binarios: el tema de iconos (y el hicolor del que hereda), las tablas de xkb y una # tipografía. Ninguno es dep de build de nadie y sin ellos el escritorio arranca roto — sin puntero, # sin teclado o con tofu. diff --git a/recipes/incoming-cosmic/cosmic-files.toml b/recipes/incoming-cosmic/cosmic-files.toml new file mode 100644 index 00000000..1132846a --- /dev/null +++ b/recipes/incoming-cosmic/cosmic-files.toml @@ -0,0 +1,94 @@ +# cosmic-files — el gestor de ficheros. Segunda aplicación con ventana del catálogo, y la más barata +# de todas: **su código ya se compiló entero** cuando entró `cosmic-term`, que lo usa como CRATE (el +# selector de ficheros y el arrastrar-y-soltar). Acá sólo se lo construye como PROGRAMA. +# +# ── PERO NO ES GRATIS DEL TODO, Y LA DIFERENCIA ES UNA LÍNEA DE `cosmic-term` ─────────────────── +# `cosmic-term` lo declara con `default-features = false`. Sus features por defecto incluyen +# **`gvfs`**, que trae los crates `gio`/`glib` — bindings a la **glib de C** por pkg-config. O sea que +# el gestor de ficheros como APLICACIÓN cuesta más que como librería, por una línea del Cargo.toml +# del vecino: *lo que un paquete cuesta depende de con qué features lo pide quien lo usa*, y +# «ya se compiló» puede ser falso. +# +# ── `gvfs` APAGADA, Y POR QUÉ NO SE PUDO DEJAR ────────────────────────────────────────────────── +# Con `gvfs` el enlace final pide las glib **COMPARTIDAS**: +# error: unable to find dynamic system library 'gio-2.0' +# …y detrás: gobject-2.0, glib-2.0, ffi, pcre2-8, z +# El corpus las empaqueta **sólo estáticas**, así que haría falta una cadena `-shared` entera (glib + +# pcre2 + libffi + zlib), que es una campaña aparte y mete una segunda glib en la imagen — justo lo +# que la campaña GNOME midió y evitó. Se apaga `gvfs`: **se pierden los montajes remotos/de red** +# (SFTP, MTP, trash sobre gvfs), no la navegación local, que es lo que esta imagen tiene. +# +# ⚠ Y por eso **NO se construye `cosmic-files-applet`**: su `Cargo.toml` fija `features = [… "gvfs" …]` +# a mano, así que apagarla en el paquete raíz no lo alcanza. Es un applet del panel, no el gestor; +# queda como deuda junto con la cadena glib compartida. +# +# `bzip2` 0.6 NO trae C: resuelve a `libbz2-rs-sys`, que es Rust puro. Se comprobó en el `Cargo.lock` +# (`bzip2-sys` no aparece) antes de agregar una dep que no hacía falta. +name = "cosmic-files" +version = "1.5.0" + +[source] +tarball = "https://github.com/pop-os/cosmic-files/archive/epoch-1.5.0/cosmic-files-epoch-1.5.0.tar.gz" +sha256 = "da8567bcd0a15ca6522a8800ec800701f8e994ef5da52513b3afdf95370e3bf1" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" + +[build.phases] +# Fase compile CUSTOM: hay que elegir features a mano (`--no-default-features`), que la fase que +# autogenera el lab no permite. Se construye SÓLO el paquete raíz —no `--workspace`— porque el otro +# miembro es el applet, que exige gvfs. +# +# La lista es la `default` de upstream MENOS `gvfs` (ver arriba) y MENOS **`wgpu`**. Lo de wgpu no es +# una preferencia estética: con él el árbol de build (wgpu + naga + ash + glow + spirv, todo a +# `codegen-units=1`) desbordó el filesystem —`No space left on device` creando un temp dir en +# `/src/target`— dos veces. Y no se pierde nada real: **todo el resto de los clientes que sellamos +# pinta con tiny-skia** porque su libcosmic entra sin esa feature, y la imagen no tiene GPU (mesa es +# llvmpipe por software), así que el backend wgpu se caería a software de todos modos. +# +# `INSTALL_DIR` y `APPID` los exporta el justfile de upstream y los lee el `build.rs` (crate `xdgen`) +# para generar el `.desktop` y el `.metainfo.xml` en `target/xdgen/`. Sin ellos el `.desktop` sale +# con rutas equivocadas — y ese fichero es justamente lo que hace que la aplicación aparezca en la +# biblioteca. +compile = ''' +printf '%s\n' '#!/bin/sh' 'for a do' 'case "$a" in --target=*) a=--target=x86_64-linux-musl ;; esac' 'set -- "$@" "$a"' 'shift' 'done' 'exec zig cc -mcpu=baseline "$@"' > "$PWD/.hammer-zig-cc" +chmod +x "$PWD/.hammer-zig-cc" +RF="-C linker=$PWD/.hammer-zig-cc -C target-feature=-crt-static" +rustc -vV | grep -q 'host: .*-alpine-' || RF="$RF -C link-self-contained=no" +export INSTALL_DIR=/usr/share APPID=com.system76.CosmicFiles +CC="$PWD/.hammer-zig-cc" RUSTFLAGS="$RF" cargo build --release --locked --offline \ + -p cosmic-files --no-default-features \ + --features bzip2,dbus-config,desktop,io-uring,lzma-rust2,notify,wayland +''' +install = ''' +mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/metainfo +cp target/release/cosmic-files /out/usr/bin/cosmic-files +chmod 755 /out/usr/bin/cosmic-files +cp target/xdgen/com.system76.CosmicFiles.desktop /out/usr/share/applications/ 2>/dev/null || true +cp target/xdgen/com.system76.CosmicFiles.metainfo.xml /out/usr/share/metainfo/ 2>/dev/null || true +for size in res/icons/hicolor/*; do + [ -d "$size" ] || continue + s=$(basename "$size") + if [ -f "$size/apps/com.system76.CosmicFiles.svg" ]; then + mkdir -p "/out/usr/share/icons/hicolor/$s/apps" + cp "$size/apps/com.system76.CosmicFiles.svg" "/out/usr/share/icons/hicolor/$s/apps/" + fi +done +''' + +[deps] +# El juego fijo de todo cliente, más la cadena de `gvfs` (crates `gio`/`glib` → pkg-config sobre +# `gio-2.0`/`glib-2.0`). `notify-rust` e `io-uring` no suman C: zbus y syscalls directas. +# +# Sin `gvfs` no hay glib: queda el juego fijo de todo cliente de la suite. `notify-rust`, `io-uring`, +# `bzip2` y `lzma-rust2` no suman C (zbus, syscalls directas y backends en Rust). +# +# Queda anotado el intento anterior, que costó dos builds y vale como regla: cuando SÍ se declaró +# `glib`, el error fue «Package 'libpcre2-8', required by 'glib-2.0', not found» — o sea que el que +# falla no es la dep sino **lo que su `.pc` declara en `Requires`**. Declarar una dep trae su +# artefacto, no su clausura de pkg-config. Se lee de una con `grep ^Requires` sobre los `.pc` del +# artefacto, antes de gastar el build: `glib-2.0.pc → libpcre2-8`, `gobject-2.0.pc → libffi`, +# `gio-2.0.pc → zlib`. +build = ["libxkbcommon", "pkgconf", "libudev-zero", "libinput"] diff --git a/scripts/cosmic/hydrate-cosmic.sh b/scripts/cosmic/hydrate-cosmic.sh index 73807ed5..00c3dfb7 100755 --- a/scripts/cosmic/hydrate-cosmic.sh +++ b/scripts/cosmic/hydrate-cosmic.sh @@ -59,6 +59,8 @@ else # alcanzable «desde el escritorio»: su `.desktop` no es `NoDisplay`, así que aparece en la # biblioteca. Sigue siendo raíz a mano porque nadie la declara como dep de nada. recipes/incoming-cosmic/cosmic-term.toml + # …y el gestor de ficheros, la segunda. Su `.desktop` tampoco es `NoDisplay`. + recipes/incoming-cosmic/cosmic-files.toml recipes/incoming-cosmic/cosmic-app-library.toml recipes/incoming-cosmic/cosmic-workspaces-epoch.toml # Ni binario ni librería: DATOS. El tema de iconos de COSMIC — sin él el escritorio no se ve