From 2462913db469786c92da0135618de0915ad0cb46 Mon Sep 17 00:00:00 2001 From: bkauler Date: Sat, 29 Apr 2023 17:21:52 +0800 Subject: [PATCH] support for fscrypt v2 in initrd, not tested --- .../target/boot/initrd-tree/bin/fscryptctl | Bin 0 -> 75344 bytes .../target/boot/initrd-tree/bin/fscryptctl | Bin 0 -> 63016 bytes easyos/easy-code/boot/initrd-tree/init | 84 ++++++++++++------ .../amd64/debian/bookworm/build-choices | 4 + .../amd64/oe/kirkstone/build-choices | 4 + 5 files changed, 67 insertions(+), 25 deletions(-) create mode 100755 easyos/easy-arch/aarch64/target/boot/initrd-tree/bin/fscryptctl create mode 100755 easyos/easy-arch/amd64/target/boot/initrd-tree/bin/fscryptctl diff --git a/easyos/easy-arch/aarch64/target/boot/initrd-tree/bin/fscryptctl b/easyos/easy-arch/aarch64/target/boot/initrd-tree/bin/fscryptctl new file mode 100755 index 0000000000000000000000000000000000000000..5a0afbdb021b26811d558eedde76326b541c6318 GIT binary patch literal 75344 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 literal 0 HcmV?d00001 diff --git a/easyos/easy-arch/amd64/target/boot/initrd-tree/bin/fscryptctl b/easyos/easy-arch/amd64/target/boot/initrd-tree/bin/fscryptctl new file mode 100755 index 0000000000000000000000000000000000000000..50bdebeae67056ef35d283ff6f709c2a9aa1e9e8 GIT binary patch literal 63016 zcmeFa3v^V~_4q#%GLRs6gF=al66;tK5ls|oMu=o!B6oD6C|GGl#YQP@t))5>(5fWf z8Q?mO+SY!xZ~fM`w)I_$0TuE90{G&g$fH6)g?kwu5s`#f=KtB}&Lk5b-~V_0*ZQsX zTmNNP%-nk(`|PvN-uvvc&pv17R)sFhal2iazZ}=4E_wU!L6s`W`ELHY2~hd zu1eR5u7Rp-Zci3ZmFYL3*zqSE>S; zZ?AfDxia5UR{pO3IDCt=_rLwikl`BY35>78vptPR<~#kWa2!m%KK!3}<+U#Bf!jQT ze)4SX=E93_Sa{7xPc9ArHT=KD~3Vcn0 zuPN~VKMG8m+S032*P6$z&LJ+Bb&!v;M(fJIxm@OcEBOHijcX zqcN}Aw=sN5FzyOy3yW3VKhxOA$b4xmQePdv$D0>QjJ}G+f3^8pRoO?uc*GSlQ&wVz z%N1)3UlBBxxr4^?f}nBC6WO81N4`tZkaEtP~+TgwuaUB6F#neBR0XCJ+3 z-#Fd9LSNhUWfkfw_U;Etj!p(Edw{+A3Yvb94*=}he9Sms8y*$(Tr(c&VKCi19yC8I+Y(Bg-LZ!b8!c|#INCp4 z5{!@fj~+V|hAjK7H*b*vjBNKWxWUz+NN6m}b4cD&)~NTqRB8*~udGYu&-Usy&3aQ=QdSCl0hMpq>A=uWGwB`J|S;K^YiNM9Ns3IN6jO~jy`(Av*%TpD?aKG^0%nc zRzLC&wd6*I86O@y)RGrD_fShgWK48RB(zkx^?LiNF$&zPPVtTKknv$BCBqv4@{*I< ztWrCu8eUH7vrg(WDs_K!OZa7N;ishk)k%Mp^fd4T!YK87o~Gxw=<(dMi)m6fqu$3! zC~GuQr-VyEdMG?)q;86wrpI4aS-0pHjZ$SJKh*1&N$nPEFP^U%k0k%2C+_hUSidP# zf{{<{n;}FJv_jqidSZ$%82v2}vMw46^v;~fyYYZG&*;p(Z-CM1iL5a0 z@eb%ScPRj#cn$zj>r@(;teZ!5^YG#td}A4oKT|lq=wc8~>AusiPvSz<9&NSmIGRd1 zss>Kb%}=Ws&cwjbVrh8D5gOLx-;R&7ZZDPAQ;{>`p0QLdsdDKxo(p->o7(#5?mi9+ zv>007)<)Mm10sV=x=JHshw%}i6sLE1FMx|iMH)iBFnyr+&3+(*nGK3@NR+pd)A4HND9J1_By@7oHqTQ15_(tfeaX>(Y1o0YVAj2hW(y0Y2~`u1nq+)Oe0dh2K@ zeUJAP+WL?r>k~Lj5>6#yizKwA6Hc>EI)+a2(XMs-iGnE{cj3z-JQd+Gp0`4GBXvdi zY$NrJa1jYr@S#ZAV4h!8&o_nhtpBENclX9qU-Uj|8)RY^c6V>xahmZ^v==|lfggwI zX4qTMiy>zU_me0rIn4S9Gz0OlcbMPka@f)f_{G968MgcsRISxQOeY1loSDUzmnybw zhb`yyVoUf@kApm-tm-X&1elh$$mI%}%XL^UnlE!wV(O$S#1&pB^1tS%NXXm~Dmij_ zB3ywOTdTiM8R64AVZ3mD(A^p|QkAuvtIcE8v6Qx88p)(++Cu^7sZx9R8$8L33!9qT ztkpM(*mUWpC5q=}9R+PPx>w}5bl=LzCw?9I%AR}AXCp1-KNEIX)$2#vbNleS&+CF17?q&2zV=1?_slFWBd5Eg+t-( zkhu$>k0TX9qZLbG8N7XqH!spAbI@uStg7sgKVDT#r^ADTi7B2*y17xrU(D=TuBe$)ip1v zJfD*{hP<*v*fRF}fLx4fkTPM)BsW_xoS@|F6a}2QZS+{D?(vTm+!QLpsrx%Y=YFU3 zzYZgBJ*ez-P+9F%d6OzatmmfFi9u)s>vC$L5dT5`;xlPI!+C$lI!*0>_zJ<-jF zmixMFr|5~(7a~l~{Bz!ik}%|M@PsV_jOyMJ#c9kzTJ$V9%5NO&tIdB`$yb|RlWXYi zjmq*XIS5@IxL$gZt3@j)V07kb(Mt7DphZO_jm{!1I+h1LKIHJH($r|-aX4baM{4A% z&ZmX$iKaM9qHm{`GtrcGci4C<&kiWfUGZZXl_Kuvf&vi} z5GEk(Drup{^9Tw4lI7UyIpJcs=oa1=pPR)+pHk8457RllwFgo!n8;lbiWi0AGxPq3 znUj$#$U$JO_V3ZQP&D=lfJ2V@WTun6TVYK)tQH$G(Ve&;;2k6n8V@H`F1XEma@NHA zt^CZyyILTb2bP>XV?dpnZBIbyIkdg8GE{svgUm9!fA z$k%pMGVHU3CK;k!2S(o>7_Z6nvw$TS^YJHqb+>xmf2$hnwyRd(9nszD1JnT2A~LLt z7;Q_ZntzH~4hGF**l2odUz)};xr}b8Z&6F~o;GeSE0TBXJKrUdkqLj(LGs%Uk~cX` z-b|B7vVkG*pVp!$?#z=B`xlcm*2vqfeWaI}T(w@n0)B$DFR|pXgvk(1lQ!o5@tI@H z<%BPX>-M$5btv_2-F5squzR$dNP64>kR@hMA>txt^~;{1o?7;$tvQwx@TFMKi=@|O zji2iO3?**y7NEjHW~;T1L5ns<@|-bD{yB@kRzNl}?B-kvJ(iq0qt2PAorADn&<8Plb*0L%Z{Y^+h@fN4}@}A<`M9>oz<7m@rMJ?HHI|-vD zVWA|v?j&rbK@|803@hkQHQP@Jc&CI%Q1?wIr^U&cQh8{FJ9441vkUWQO5~KKwB@oi zAgR@k=@^bl&euLrN~T{>dbgrRyij!sD}Es$MT^^uJa(qq5Qe z`YC)SPpCHch+QzxozeDP|Do@RArAr^y9BdD_W5PC@g6Gdt*tCKT8yJu$G-tlOo!zV zsyq~*l~=Z^Y@NAAHwWbEW+)doKq$9BJ_?QIBI8Kq9UlhGkFkrbrPy(zg@B*2^E;r_ zE1>S!`45wUl^ig4DrNJ>voZ{E4icnH`+raZ+phR&(0GLBr`=+yR=oBMq$@+=CeMP; z`+{mOJ|804&vcKa4g@`m$pw%zmrUxOOVVunt~CYqg3ge+QSsCPnB=TK@)EE3;|FS_ zpExJOQ^~)8i%S~&3p|;8%o^%c)<4OxSJ|Ib&0CzBGrDWqGi9QPS6o4cwVdMCX5_x5 z1zDfU_~_=55Vl&;qHlp}StIg=wCSyl)&N`{W`S;8;?kn8P*7yQNo+^m7~AZMfNbtt zBA&XN@$rn@Bdt@sF;9=-dwN(v8%NHbjdMkY?cE}>u!tvhk{$V2^g)pn!OEDV#~<`Q zA&|_03zK|_Zv~JK$g?@*s7gAdMJ2cf#Af0B(9Kf4wRw(ux=>r#7j-sNH&(dEUJ&V{ zn-|KXw(v4h5_?5qJUf+|@z=z(cUiwx%|^X-(xNZmouft7V{0xfDJ@{JXC9<~Vn*dr zN4^V`#x!>|ps!s^7y(z=I?WSnyvuzsO~=9|sz{<@*gtV+jPF|%K0!CzH4mMVLPm35 z(6=VCv(?kS8{ZB9(0?)vsJ^IIxJCCxy$kr(Vn32`GhXv<eU30YMZRbQsENa>{={%gV)9rWw^IlIg@#f z_d)LrMw#<$jxWBxh0dx1KWzTVl`H(ZnUmalutn)6RmNx>%d|JJ=>-|6hAE^aHKQ30 zZh}AjG7D)yY!lvx)Zu_!386P};&9$gjA7lyAZcSSn%#2mM=+a1o=7V2)@ z>`ZRg1IL4xYCT6Cy)mMp&t<*8Jj zisB(wWHsycG^6A3#1apg8sr-*U3}>CARue&V~f%GX%D8mQTHvc z^)PG^yna(T%CMB)epd?z8T= zIh4T3;eJmyNB&+?6BU0DI452sa8M6f8h<_@Lds30mP@c-#m}VdSf|Y!crM$byFZ|T zpny^h-1#TnJkN`F+S-0CX(+%8bf2e${O~Dy$p=AmnV1lLaw+0DnN)k05HLPO<5^Hk zen>O@d9i*@GqRMul>*i$%!=aRMFDr}9Xn^`>)P{O_CFYmN!I)1wYmm?EnfGQUY-*M zZLC+1(^`BIYx(zB!EfCJj~!a>)?zDF|17=9^5}+zD6uS6|P}C z&lmRuCHpb4{r*{ILYzf?kNFc53*g5Add)^Xao+WM)5m>uoCej2v6sd@+do$B(%J?Y zTmSri)rlYELXI;R$-Ck;Wdx?IJ(JS!{`o_hQMP69l>to*xISpy^LBwN><{{uYf)LX z_~Tk^RpdsTFRCBWatNe^uP`$)v*o~?CN) z0!9s>UZ}?_3v^#oIHH?=Y$p<+kg?LO$A`gA6Y_LpN0)94IN9xw_hSQKu%f&OXBJ(s z?|Stsy!n6XQ{=Twf08dD?BIfzP@LZD8{73WJ-=jMN;Mw80^}xO6im*uZ=%rWnGk)U zq)S$+iP6_n&3|YaEVx|Ju&p->+9YOJ@DgFWGz)%Lo)rrYJcTJ)SkRqe!Q3xp!5dM3 zu-u(JEcnweupl#5%KG7zpJzc-fjIpVgN2JWIQ+LP!+*l2@ZU1kiRc)`E}x_G7x}ME z@gMLKgE#2rj~Kikb@N|tHcQy!6u{o&q(xta`v22dVRBOf$KG5ZH(>Twj6p3)a@+s|7nH5YViHMDW0P;c#51cQ|| zGO0CQpc`#%y4g>??a8wqWCC+kX@gW_O!Imx)N)zW$0yQToUce56MA7Nao*72m?~Eo ztB@&#frWXXVlmCQ)XWx2RNRS54Ty)^P; zN(3B@{9Pvaj5rL(XibYl|EJXeyN_X*1Lr*balrw{crHqfEgxQrm^E36d$z5omb)eH z8Q-R4qr|l4_Yt)mO5B;7t(w`p*k)aQ1*kJh{TqRj7`#GvG;DMzIL1Bu zw<(Zi)bPw@ngQ(D*&w@^+I~Q~b>wmd*7H48D6%DsFtO(qs7jT?R*}4cpB8%yVv5h> zNqimv9xHViy{=%%vY<@d@~pe%0jgpv4R-7GM_hF|uG&F*S+nkIrckjqaXGXo7SHp$ zodQRT{y-Q!UX@*+O(5#``+R+@CvDiS>Ch*R(47J2IH?{CFMI z>LX)dj)yzO7uaj4T-IpzQ4>sjf|_53!*E|B-wZ=$emPF9ZuxF^KzP2vqQU{=(Rh?D zy+IbFJ|=4RixXA`+F!DvJuX$0wixpIUxb;aYF@@JJX*DxWTeHV$t&EfCAK~`Iq;}nR zV79v@l*qkUhxF**ps93I$pPJ1&5P(|IN7`ke_^X#hV1m3n#;wgFZ}$9L>zX7R>Kh` zAPdgL3U~Bcg{!U)rr;q_LZYG)lhBYyFd8ouRb*H>nOQs4t(u1X^v_B)<)E4dF?xg3 zO9rtb2J7q5y+|x3f&LCOP%gJ%{0#l9X@dtuWi9TE6{7UWGu|;#69Qd#Xa|L zQ3_@xJ{gQlG{RZciJ$h;U}|Q6_%d~KuW?P^w59`l(6Ovlx+y;}5kR7}vfSBu@j zgR-2osO)cl-cr({H-EW=W?6vaD3M{2?vBJRCe@*!(TEO^1)Qga`2eIZRdO=lQ~b7i zy?~9CGkNUMn!33a7Re{gT2_@_4bAr)MjOKKSlx(>H9H8QgrP<;GNJg{>&X>&Oi{?! z79OG-yJ=M364Q(H*2)69>0;YpFe{M1OGy|-H({mL%1+6uW(Tu9NQF)seuM(?ArDA% z>$F&ce9@h!taWz#@-7*;qw_mH| zB4~s>F0nnT6So!!S-uPXzc`u`Nc|GA%NoryvqsY%EQ6SMTvHEzN`$o57*~z1Hcq&<6(zT36k5e zP(js`^o+ZW(;d7@0k}c?fsFVV{eg#@=Ck+M@ zfzi-^5}c(&@A2ZHlg_fL+J2P$2ALz0 zf6#l@Jq77?&u>`;X86{=Bi&n2yC0XYgPKzN)|kDF1Hpk}G-fT{FAZtWv;DElnuUtR z_a~FFCQ6_;TGOyX4;AHLGld)1I4$hK{mdg|O zoK5$S)bEg5ugY0Hz2yC}L)Hpvuv7__>`6nceNIm_sCmlVq?a@$ag14*^R3}`nBuXX z@avv1sXfd_^8wv#O)h#w{CH)d#Kd+zKD$%xM-VhMv7HG;FKN};njkz57rXnQJ?cae z_f~t=LA++YCK^U1jA=%oLo}u2{aeFrq7Kxv`-+O5&u;KNJw#N>ANVg$xt@gPe4 zg^mo_S5dgfHckvK47!&o;K`?)uYbeakO7OO(`Xwm7DUNmhTYgPocO5%S>s_`5Ny(q z-GH5KY+0%aLT~k}qn5%TC99q3<2xX5b*Jubwck1b&u8KZBucFV*RpQDVSR*m8lO$v zqc0aNb=MtuMqXUzpnDNxLQ;Olc59IdB`{VpSK#%1fMRKn(S9pmSR091PsYzw{mm-O zLb|^fIJ&PT@(QshfWL-pXP<2AAVm3_=(%wuS>G6loC@U8r3%1)>m@iB1WvEQ86T}x zM6MW2UIroiNva4^&yUF<^;t_6QekNrq?Urzf5>3?x{;cyklGmev;9K=6VI6)G+gYL zUEtgx&x*t&cG-e5v#uvnYd#I?UyxWYvbdZINwVhvs_k4-Hu=_cAo$;mKA3@i~FpVBobR2 zpP*i=Jgb-@u@4jo`)<0TE&PsKqLWXMc8`qIq8r5?aO&tapc^@<8$x$YiKRvK3mg-9 zY=2gQI2=R=#3&Q20b8c?cxZVKq*C@>^u*XQ<$-2W%q5~%@G|@9kJpWLyR>KtRkekE z#)8AQc^o@Ji=NLnhW=ndowzIsbr_r+=y$gwp)zd@4qp?j>CoL<6(S)d@`Zfifw}+j z6V3$g?{^n0f&NcPdpUJuE(s5!Pk9VXyg*E%Q)os_6!u>cIivHE@Va2lJ9T4ExI~LR zDic|2t0H}?>@(4&WZ+_a$2NbutoHGEmj55~qAd|A(eK=v4Ci-qaEz z(Aj8c(IpC=g9>jO|8E0Y+<6z4nqIU2|c6M5|h2^2d)kPT1CJ~Y$%z;w#xCCq# z2h3Z%`he@jKc;FY+wbK@lrQX_{}42!RQD zMp}!5PJjXdnX+}kU=l%gT2ypmmAPH@NQ+$p12fv97o5Q+eL|LY5Rr^MNfkd^lvSqY z$e$*XBqY&dhebfdTyRc*?B><}HQ9oi!Ui(1M*9kkWTawC=^z;S6Mp*GFI01zcW|)j zV^7fimOsu~h$U5F-MEUd-#7yLZ4{Qs{(iJM*l&sfTfpQ}s5bd$)4EBlppr(+AX~i6 zj;0^XlSueqAwFPP$EZ%51**dY_`xQmb*seaNhAbC?HHqk(VJ)p7tiR=e#KjSjI|9P zt3!+&8Vw;9n=*=q<1Wgk;a%*E3Jrh90^FhD5;O=b zAi#m`vTvlKa23lQlv+0->>N;Z^zDPxpg^%&j{RE|m+cv&HOE?aq0?ARKRrGeBfL3> zz|tZaydr5h;rZYfd`VP1I1B{`q5CjEAk}siiy6N%qwPz0?AZZl^LVPzwe<5A4%^q* za=;CErz`a+Pet;CzlX`=P=jQ%YOU$CezINqm2I~~*mYYrwPnU5*1OxtryFh;Juf0y=Gklo0tNLtg|v%EwV9R3+zK!{7^0v&9j8POIDzC*Fqtd@2z06K$Arx6+ zd{}B6Eh3#YP%5Ma8k7GFAqa&585!tR;H;UaCM++AWsRtCS}tmD5#}fS?JkKuA7poxk;SL`o*CLeeq; z7AhRgx)t~hCn%uXSk*X#b~|*G@x1;9@L^rrRhF_T!W6ToxBHTK3^o6VmrH3jwV^HR zPF5Wl0|Xdp=I?lfN(0VTAmZi=3X%`G+sV_&WeGQQ{8Kg-39rpjUAnld;LvqeYJ&a665Ov`Lt%L3g5{wn(K@s z<7VGTZvL9Peu(wlC!KVKN;3O3h^|ZaH*sfbzm_>xI9@^$(jgnuAOVpUn9sR(8N;5) zy(STI9SN9?>)WVes!)NI{}C!ngp8W$ldl4o$=H>AsjM;i9514Tl7G>bG@hN>#(dh( zQF4!32`a|tKS*vjZ31zBxg2v@8t^r0(MQQ*Zq*Y@r4SSO%JzWv;{Ec%ymF7fULp!A zvr^3_(r>wT@~g6I{(2oBD2ikuCA1fZ`c{U|2snlNse+~E>Ut?y+0i7Q;f=^%RoOZ@ zHK5plJ@&}kB#1X;BXKIt3UN4s-8=ONYv2@5BRBsc!K;3|0(II~dalBF&(p3eiKCMU zEv2huN-7s|suY>jF)c3EN&?h^c?xmGH<9$NCzw8yp z(Mn$PHuBv|99h?;wH_jrTS~TwP@8U=*xDNPipBYZU8Z6b>BvZnL0KqPth076UzELKE6oJm8f|PgL@F>lFks} zGF2fn>5oTM2U#DVr`!_ztZ}p!bWf9=G|Lf7IqL~$PQbc3J=H&ajyQ2*TO?>NnOrSS z2wj|;%1O~vfinQ&<`BM^doO6d%|S`rY`akg4fIK7Eh}E{uSzU3?|G;E-Z%m~g5iV0+3L>wbQUk13u(=;? zkC=zQiAqz<8o*1#KJ-wmAivq@c+RF`z$711Ng-U&m z8DAb|!L&l1@~G4nw))4^DO|r1j87^Kj+s;xCIskmwh;8<$_1CS$N}tD`$^0p&bgL# zcXvqQUy2FCtTtK#V?6is8lFu2*B~DBF`gWGpWt+Q$nlq4t_8^Ze9v_x|D7&YhQ$LF z1Ja17hJe-iTX*}p-hE&VDCcP(WSLekc0L`7ui~ajDmrDgeVgnqHd*Y;_2xedt z9()mO?qV=#_42YUM#UZE^$*_(J={D&j{}ql*QDvOmzNc;{$-5_&|s7u1h05eKwL(L z5b6Pr=(MO=EB#E7hos1@9K%APBu3ZqCWKvYY z?Ef}>UPxf}SL$=^JuIC6%O;?EFp$0y;Tzw@6|^tk=o&N|IUjiGJj&MOzNoubrrP2; zM&|{yM-XM+=kfvq$;})+4tw=u(CJcF*y|B%m2et|hY_X9WJ(sdVR%xK zzn=j}C2e6(rP*V$GIVW8R?f-2a+a!`>`o3m?_QbrbG^xe`lJ*zKd3({>9wV1v$3NnV#}c%$q=9TKUvXBVU^Xp{OmP^VxOsF zK}g_zcW`aw9PAiD({VYs=r!!H>=0Nt0W0~AKR(z?Gs$MFb8YrgQX3vX8}|6mIrwn8 z^z}HC>oC9hZf5yZ)T{40Ww5&f-f8r}wdEP_BP48LSvBxHQD$0n5%zI9c~je#*Hk{m zi$M^r;`yh+7aFTPtLpp_vPO{mK0H$99`CfQ%w{q-Hg4Ltsd3ZlExSM1tUYiqEoiaX zdk{xpG%u|7(3|vZva|0M}w4@>vyIr7bwb1NRZ+Y+5B& zV;*Z-wcL_*Tj?fG2npP@dec4LE45bw-Ye_g954fZu1swwKuNb)U;{U7W;!ucfTEZ^Mj4@PsbHiDh)sM53uqthH9>0!{qP%?uiQ; z0=QHTpB^yR`n4;;=I6(B-~KypENhHktgqiGK7LkdO}q2i!wPn^@xKMh>{Ls z*EN0EH(0`^W$tD|GU~ejH?`&KB`eH}C9ZXUE+FrGUOZOjwa0X0FYh1RaRQs^Mv}*5 zZNK=P$JkYE_m`{^Bp?1ULJ@!irpa6MprFhx0H*`o30x{!BgbBvw)aIv5eVF@BJJ8V zy@a>iW_Fj)3?!zy!RZfFRg^98FBKLLFQFd7Em%sQJG4X*!-YdBe^EY};@t9mpcxX5 zS7mnk*SGl%%k5w6TK(HG{`HuB+)|Lti4Qe5tl#HWT??Gq=+~YnWTBOAY`f#5c(sc? zom>v?vJDdM>kJNzF$0mnbNZevfWW<}lLOWp@5@&ss3(TyNH^8d67g6{P?KVBD5K5) zsW6(^R+a+H40ZU&gK;E3@~Pik9f+UE@~>>2zvF=4L``V1wXFK}#CM>|dM)}d>Jcaz zJ2(KHbXcgVMLl$DlV_44pI7o}dr5$y3lA+LUg(F6RhHCt&UFT{+^)ikr_{6nA)$&v zdW&C-o%Ylr@o0qm>IPz-kBAoIFyz?siQ2pzu-fF=b-z&bZD@X1PRCY!Q=!Cb-XbJI zG20~|$@(DJ@Yb8oAMDEv(C+YlANcE+I!72d0aC&ub)(T(x`3dpb|J0NnLm4N$cKaC zGihkGA8PuI?KIvrBCy~pHm+uOiQ7|ZX$vNH;mh7xRLv=X#E{8#^d29tu`BNjQlC5- zPgS=__tm1JL>yJHg?K8Z3TlvkZQ-z-{7?N03OC>4E!fBqR=TS>NYmV1^@K>iFwaAe zP~X3z(tUmquYU3`Mw^>S|FQdI#I8OHo5C4WyyYmAV*5P|x`4T=V-u_Ww0PXV9U99R zd&S`hr`xCTAl|GZztL8NlKrj%HS#<1rBzvJZMx06J10D(icR!{XPi@FY`O$>ixX4( zbTIs`A{=<9kTA^Ga_=B>6Dwd+)ZDbIley_om8(dLcG3e`P1k)^gj=A<{Z&<7riueg ztHv(*y;tUsZnu~gn~Vx7YFwFA&~ z?nX8&d~0eCYR|ueh?cChr$U-dt3<1B92l(=)nX6p)?;P?#1ws>_K}v_Cz7E1_G$AL zver9v*)d%E&+xQmOeO zs-$US(>D8qjoJeOPm8_4XTUr$Er+@`aq}0{?u29LsdiBt`NCHsq_6f{3& z{s=juB-uTpglM4AnVaWw?#*_ua1;8INxE-uQ);-eE5~RZQMuqQ;-373aO2~Vt51qZ zA)2_gx@KLq?|tpztDs?(yG!YU!|qcWJJxsv|A4Pud+;Li{O-49=SX)L5NlnquXLZ+B zggX^V%b0Lz;D%hG{enYMF!8dt1eOdg?bbo;a}cnSGK_!Wa@N9G12OiQUt_->lSDU-5OI9P>k>SCbgCXCBpmr6G79tg8io*Lc zneeF)Bq^#Yc{gaR$PJCbnS7^GN9IVzB4~afGyF-$k(2H_Y0*hwu_QyXc6{n-S~q_| z>`#aEVlxf%ZA4o%5voxnUBUWXL^U#W6{Z$ST;&G4@JI(yyOt(bM7_ljxl~8{%LDxn zbJp6SiaMn!?n3E+^1)e;5UQ0XJ5a=hUqqi}=#93#Kz^GRJ%;5@E6zO=(tDglPG#1! zQ|@9t8|s0f00>En?PcPMN@=l~r~}7bL*Xa;rXOqG4VlM7C7(5*W#^)dLN%*GNQJLi zdw4dyS6$LMJ~7QBk{cd~&X>W_62FB~L?gN1=w|5=G&Rh({@$}xuf!c%U~cNBR-6Oz zX^hB7llvIl`8n1;FAe3C41mliU9JH1)O{+gOdh(HPL-`9Znt|thf~yPAy!Ui#+le* zoljVieKtw{`eV{r?cx8T8-Dbq+qve)o`bJIufh8!m6$Kfts`=zRZR-9B%TG*)d^s6 zENmmo-asP56)ZUtG!NU~11yA!V4aIK==UAFFW*QV(-O^~Yuv`Jp5NHx#(*fy(_-yl zqU^!%lNpFlI3{Boy_S~=91}2`n|9>7*T`3%^Htzp<7ZY_yRzapzxmB6+Wb9~EIXub z^>YlS6>dC2W$QXVL4WVX?yyf3z@ng@;~_>ok@k>y#Qg3qdy@1N;v;&Nu3cvFrQQDy zIDbwl=w>o#uE6fp#Zt}{sZDDS!nGWgurk<@trCLf>R?H8$Xt_F30RRF_Yu=Y?9FIE zR7qM2&;+&TeohOB@n3?;auu{$O&AN3lwxXWCJuvW`84O8tMt+GT+u1>ZjurvXDiWR zJu@mH=84;4x!Lk_CbMT6z+|jJL1*6IfFz3XpWeZ8QeAl1fi4V>O6x(r zV|$h!44MaebvkR3@ujl+81i+_KB#6H`gk2K<@bB{QQ;TtH-%7P6huG>$Jnt!~mxyMcU|*1FJwStVizOErH9a}v>~R~{7Ol*}Py z_VhJ*znYPH%fW$N>1oOSDI5>!!e%xjqz6kXeXH4;>cvEhi4`gd9V+m?6!=I z)(W9#@M({wQQ@2%e`4BsIf0T!VVEh@SA#AK#1Ya3EKZhljUClBAJIgSv9ieMoWU(9 zHLY^BLrME$)qhQI=3qcbyRyxe3yMU8xf2uJ{*q<(#bC4PjZJMEw{LC2K3r|*i-tx$ zLQw>~V%Z(cN3VSh-j5<#dg3zHYAssqF>a9AWZD147n7I0Ont9OCj5)V@>R;r9!OlM z^48jahbzRqw4-ot*&(|E#=f_W7qNhr)AgRH9^S5m92 zktjcwe}w{qZ=54y6rFzMo#+DdFxvw`vn$}n{wG3P#W&4oo~S0md4SwsMq)oU`ED6| zc7(|0qyD;aXNNTwQDn)jT6JU2j`Xejx%=$!-s+N8$C3?f87;_5Xl3}*MQ`+1I6i=HM5 zj8LV;P$ZSOtBuKciHR4=NDZ$&J$a6@sPQl4FOx#rk`t(ZR~wnL2N-sd*|C1VvCAFV zH1=FACION7C+`%~*w|NUbivQ}qUSL{hKbwY7Z68)fUg!+W*eq^5n>^Z(M=Q-Z|0TC zb=x;yLXaRQWz35K>aTy(RpfGYd@%NWC&n^BP(Z2wb-`F$($4m7nZQK{v7eI|yIe*= z!o(9}8-j_kKi3wHx;SxP%1HIo=HCQ3^Al~!MaDkX62972Yv2;uy8Z@LWFQ5kcn)QB zyFG_m>_OJrB2Vd^(5xkxpi&u-WhjxIYSXS&c%{_p|DmJjD&dDqeZ z+LAuz3d1T5n8%sYYQJT#W*nee;XXw~Wt&>G8=)T)9R7!T^0>fWOEP z!MkD)%9S8$c-|pV;wUo1BYS39!xM;?1Wc=AO_McTI?JGQ2V6^z{WI#z=&HEXuG6&W zyU;PVj`?N5Z>9B`b)uh&%~6jLRhUcUsl>WnDBF~?^!PP6;-`4$sP?O{f3zi&Q|1Q3 z88!2LW0yuOCD$xX1dP99nX8Cho__xNk5Z|wRN{`MM%TsK{Plu#qT=b>rKM4?=mehb zR7@Vb3vjZjP}~}=uY|0kB4E`CZrp>plA*_+al53D(b7i*nO0o3)PmxD;HvCox%&XO z!h*>FvgP_N#?XG4o*ReZu=|yg8q(*df<*59C_%Y(4od3rEAyP)hRgC)0Fw+OW16^Z zO_jq0Ba=ZmV4|=d?N zHWe1X9-_-?bGoqjOuG`8N-CBJ6SJ}D2t{b1Xr$#z3^)$v;%*d2E)u7o3IO6hQCZgA z=%QBF6=0tcNqeU1g&M#Yvj;GzdjOGIHG+O~c{X3-;%v#aH!;UR}kMm(5 zprOw&;oA#wLuyNBN7f*s3`s# zjhXHCy@E3CEMdMQVBf@SDg>ORy+Xnav%s#-q)?}j_X>GW zM7^&&;twJ$-pX4FRMDNm5@$giDvYsVU;U;DB!d19Vs|ak5Cx1 zDS#Q^EZjP*Uu3EYn-SN0x zfX#v2$Sy#abL9i8yzz?83_0Wc(ht+)3>iyBasL|56ULntGFf!vN1~tr0&feu%p#Cji!KzKM+WDQNLhN`WgjoCU-p1-wtmSdm)AivJy~R=$o{udDWcWP z&TLE>{vm>->@4;(n!!hgqE93#!w^1+2nav~Yu>}vbWd&|G1HwMgXjWga3zz_Wzfv@ z04ZG01=n=*-87C}gY-#mEXYHEvEynZMiW8DLR@K20zIzfEKu>N0d2hHH{Q%s%)59F zMeIMT0fQ{&3N9LtlGN&4{UrcoT`Wm5q0Zt^4FWNpNp_H zLk{c2FA_z5o(K)ogLvTv(NVpoU3Y&*A)1WSq&B}lB}BzUmMhb4zcp%;Lg**tCSO#F z9nn%px+jSlb)o%V45k|6$_1}^W$lw5cf}aa)}9(>05eJ+`&Pb0Zv5#>JEE$ReGODn zeX)M>FSJs*wSljo>8Kj}D7=y3w7+E_s8;QJ$VzK*^tUX%i6}fEd6m}ejgBNu7c$DE z{nr^VQl)B2MIKTvj3y&sIYiNno~@Hoe~?lP0n~?WB&(7kp4waMMi|YvzIrs@*`|nB z3cQ}t^!x097JADTzg(tI>u*U@MH-aN{4Dvj{~>al@I0R>W1oSh&o1yc3Lr`4P*_Mj zue)H340BCWXD*5_G30hhcdt>@m*R|{%YKG#@=_?wYJUn!qR%=ui9Verh0?=zVK>Y| zL|ZCIV|FtYvPuo?E+xzEP{QLO!M>Cl!otOuC#KY4o-`JtNjQ;(V}j`S-1z0kFnRab zHNZ*>3F;lLitP=bhz#3n=*1(}lov&!SE;)_do5n)2vbXZCg=Osuwr!rt9A4D-kIcZ z#03N^1zUO0GY^w84^uM_)71m6ZjL5km}CEN+l_jF1-KImrey+{CbKv?lw~HHD57ri zIE?-r2Rub<#Az`e69JVIspM(qg(T7NV1dplL)Jh$i!lH5;)w-PY}MSpM%y+yK4{!K z9eeN<5;Rza0i?ttysxaCy3Du?%}atJ)#zIM1Ko8Zhsbwb5XiVjrTEEDeQ>SxZBr z&d@sC!?8>#pS3a+Vibb=R8dkYG~BFGXb7#p3JvMfofye%0ZjD2rnvA-J|+3Rb#O1Z zC_>uK8It|hz3XArTU8O7lX9b|&Rih_5c`&7K=?wt6%I-RyqH95@bdyyw$_*MI@i8H zd_Z>(0JHi%ogf%AJA1i1EYdJ2%w3Bp=#oo56P`C!v#^sWoT*GdGSZ}>fSmh!%KlVif%)EQ$vu?p|Z0@@qNCwkqN&S>ZR^abR-}qt%`KGag`; zS=YG%1qfMeHvmWF_vFZm%63kYB!8m~cX8c3hr1dWQCIoe@X5(jG0XbN@fI!->6iTt*85i^W`2$_TstNFkTRBNOd`X zmnR0~=pF0yGgs?N>e7FD>_B7~)d)%}$jXl$2=68e1#r%ll7LFz5~&U`Fq9m<|FZ<> zz&-sXnAu1lUa-2K*e5%ZcgNrkbr3T=;3++|+Ifx;!c1s|-RD#NFW5a{&r_+@k)tiT zws1wT!JYmKYR^OZBlpdogHoPVx!~f;1>vD7<48_z%?xv*o6w)3$BiR>Yp*pY_Tl-k zapc6>pl(hi?jSJq6XVDkwPSeG_&-!qw#$cY9J#cX;OL3N`F{@oFW^5n%LImE#Ri71 zk`LH4Fcc-++0xO!@@x1BcRGQ_&@{;xbp5Mjp+nIs~a2oI>yAv@CM>T0tY z3o^tUokxz14Tb5@?l;#mv3M2;z(&ahImN4Ux3pUR;C`OX1F0jy4c3Ci5(1` z9GkIl!?Gym-j`f2V9@3w({fGoQjBMQu0UmX8lA@)B%4)5r?u;!R59cX3INz15kBP* zbuS1Za~;#pNm5%Kkt(!bq?Yq5H{+~Hr^?XJxh~Sb)${zXWc!;rXhNlYHEfn<5*6M@ zG50*?1XA~^eV|CCYif;eoBmZn?8c*b(!_zlMD2?x@cV=@$+Kq z3g&t}ej3&|_gHM-n*xWT)#fwmZr^GQTm?c2yE+o#XoXPxCR`6!@mm<|w>?g0 ziChT82mUc89hqBHwnct^6N1Ye$vyqKf+soc>W@?~`P)8_pZbV3Pr zlLz2Zc$h=(x4Ab0Sr~2e#>noF!u4G;YuBFXU;IsK@KaqfWH6sPU{{t>_vpaL7{1>Y z`Fz$A}%|DqJ1&dth~fd^snLj=kA=q_vwhFIgxJ}#ANQVqK(t9cfW z{?^r{H+L<`aFQoY=B)dX-vB>Glgq3=|tsZ^vX!C^!bXfMQO4NE-AkIFm0b2sZ zx%GUFbS^P!5Jw!fCb97QMbMzUg(%=v5?^)qsgXkG$_0U`vU)vi9Qf4tR8+E@vMjXb3SF>#3yllrsKR)1 z!i2u=$tzoD{S*fuiFtDJjil_&FqS`MjhF)7q1@3^BqX>>k6*{Kra3&2OOw1q$IOSN zT#=FTLnT9H`gNtQ!$#*^PWo?H@pr~=pX``UzI2SYqGRSj)V$x=2C%! z=y@Vsg9xWJ_PTj3lpi?MYd#3N(f1|Ia)Vf~X6_tj0kx#r?BM$e9SZtZL|zHTCr%B< zubYnO2F>e=g670>{<9cE>V~?LR_ecnNHWWI2F*``=DJ?w5G9lFNDL6xm42vSB^R55xNh!HKB^@r zPf-F7zZ1HHt@E}x5@h8nXo{Ss(L4z>3tRlH>NFHAmrAa&Vzk_AM35`iuyT)2DE`Xh zbV5)3Rwi!tdc~;duoe&E1y&ocZf|G_m3$iVeHhX%`%ne-QzT^#WKX!-y_4l16XZ__ zOM6xTIoByE`y~BSk=2Rw&PX=JA6r0fVtgupjj7IQ#QQy+$Dx7Ni3OxHPfZl%?Sdnw z(to&uLFhAaI^RWz1pD5cYL(u!*iT+Wu`dx39TjcndXWu!C#oYpk@*qkisyQbE_ZDp zzyk}DGUAYuvJa}9tr((YhQGl!X>C$|0zk!wJE@V~+%i8An3d5~7Eew!vl5 zO9Z|;!pn-&JOv?ePCQ3{moEn1-m<;Q^BDHlr~}<&i?ry=(2>K+#_oLMNUk>TFTAn` zexkPUPIqNp*V$T3wytEDcUhaxlcFco9X?x&c3~r`yQP9-qFyl&xdEi>NTgs+Nj?tc&eftHfpw*}a6^FQu3uKQ>23by{e*SVobi5YzugZlWkdHW#U$KZ%wA}m zqZ9CnL={u9kXW!p=yFa)$f~!%+>l;mTcN}(8K$3TQMvmcXO340O%e8CN%v{<&m__1#G^G69YNHB7Q2ZD|56bmdkT-LWA+E~WUeUN zLLgY%1!LI*{vF^s4Y|7RNDVRjyb#=byB00&tDde8hn4S_u9Q0i^y_oe10?EFxh^wg z)S^KueQvb0=r)L$Vb1kD|8GXk@i*5rNwXqQI>v{LQK4!aR>&}IHxm5%u7}1UuVR&+ zM$#xUHhCmaPZTj7Ff$QVfHp2_+6u|g2_Qf{fo7T&W8;$6&n$C z<0v8fKY-WecaoyDJjks}-{+enSMKG>zh(;GFSKzurr3_~qAi@{c5s)i1^R=``Qclh z?&LNgV5?0V6(6uzeq?8f$gkBx95ufHH%s)x-Sp4J%Y81Q&RCVDNjjVdkw$JL0lA4# zhQaoV9{4kOsa|EUN>Eh!PqxEBPK0J*ve;qEt3~glZ@HK4o?PL|{ousCI_~icrkqS) zIN#~37haBV_5l`^cxM)$?+^(hp z_G-ECA3`gPpz$m%_B2pLq_{N+`8X)bz~l_MNP(~lRn$+VI-aaYWW4H*+{V!p3OWPV z!tR3_MhN4w|DArTJ2F#?ifVaPP_zG-DTF?C*^lssXk?>pGF}SpEOaw{P-tHQ+L-|x z2V4SzjH8~}h0Fq6xk0o{-7x4ePv2 z@`8dMDs@*nk=!MD(#JFCb_U;gCvvOs)#lITnf;+_9h`rgj^F`jv)HbYJO}?``#YJJ z$_2%CkQW*2N{7dGSyP!7)049dW+ng2?LV+E=~e1NO2rx_PZiS4&nRKHLH;cAh<-#$ z?T^_bl4JTZk6XW05s#wV6BD=-W^x~ADzGa+gejWYVN%YkYQ$TzQ&0>k`$bY@<~=Gg zp4>QhBcX$gdyp#u>se+i95=Az^+W#089sPqpX_YS$gPL5n^| zi+;s+RaoR~AN?%J{Z%O9Pq^cgaGA#g3#R4HQbn((j$GyVDLvK}{>&Xp{0z<=8Cg>q zJrrT#=$4{Cv)?5fv*HHsjD)E&$x11U2C?NfDl^H<6_l9^X$LvxJK3l(a91 zdjCjw6eq$TQAC?tSbA9F&#J|+sQWVeGAcVv4Xq%>SVanJ`jfzv&O-`^nPcxF72WN2 zW1=k7?}MA)cqe6lSBWBGAhayDP8BGuMpuF+1{Ko?BOq24w&3z)A3XAoDoQV0!dGUS zEj^Q0I8@CG6W0(<`Lsk<%ElU~PCJe9+bWxTr~OT}qeWX}7@bJE;^Y(R43Eq$A0iTF zvpTJld>S0+`E5X8t3GY`(s%Wvt;({oKU6Ba7eU_!u=y^s(al;vmX$^f;{zva8cQRw7uDcwT~(V270#q5`=aCFClHu zCBFP1uv+{-|F~k<+2!iib#W_|9FSvO;xL@JQSPe~&-l6g>{d{_Y#H$@3`0a;(GMnP zyVa~>0IHau+cHZzc1ku|pAt8!s=BuY+2U28OE%(GXAPGHC)~h<$L|YUEuSl2azkG7 z_w1Awq7~GZglxO?S{LV$Q`T55Mz|O+p+wXxH+P0i*5mNDOh6>!L{$5!oIK;4i?gfR zDNGLO)V{GC*pQc*?5_TvDl%2`_(b|q{IKk`iiO}`A<*Bk_HUy)riCETz2fJ`G%3QO zRuCq_r&Bk_dV}~n1U8pUXYi0;bbH4^Lqd7~KcErBKZyfcn|B*u)(h;NIgy+Vyr!HR z%6~&5O5~8*AU!R4CcD2lW25&AhAQ-Zw_CFK-7z+#c8I%?4TnxuDmS(m$4%{ zAD2q9$f+<{DmdA*FD4%N4dTJIhfV5CNCcjB1roPat>I!M+A@@}%4X^|tMN4GTw^)a zYF81zq#Lg`QpYuii;#Yt$N9sL!hM1rawArc(DXoI*+-A?S zmzm4$YZ!9C2bVlMar@napPT4TVynnXG8^yvt9_r%9dm`?ix;&wzU=#MvkDx1lUx;_ zsp}$eUXf%xEo67_KT=`asW@Oc#bq=KLUiWJAiG@ZuMXv)EjUYRNl(>BPo~{pGJx<0 zAlPT~V*QFIbNP%%Y`GyY4H6i4Ezhd;E?HT=%lbW!7eOEH2btmxGr!LYAY;m$n$$}} zET9y>#Mo6D9%8?QK5)7xi)@Zglo9~YvkK>jkkI}81eX<3;Ui}s+UVju#IKmVWfyfX zYN5{M{9)QDMmbcr#fcWL^-0;7O}3oGsG?4_`LS{@W;GL@nT10-%)FI~;WvVEqiucH zF_!RiZvlfUt?F1}vYQ>uJAyTb;;+3dEhokw;6HUt-^g6;osfAv|q3zkOmn=$%!>UXOq2em@ zSjn&mPkGuy%jGF?ZAW4NAr1WY@oFaNaALrz#^E#O4ltY7@0LmD1c8*8d&d3M7buL+u zf5tHj_xSjz7YQ2sB*<@?X5ZGb!nt^ao1#WxWVAECaPbIl!?>;G=$Qd?V^inwl9oj7 zmVmjXq=lm{fFuC)u0BRfzEc0h-8|0n@kiqsz_It^Zoa!gZW6(&C0LvtcPzxRL;R4e zTqE6-D`(l;b1CZPylqFo-Du+YeSWQknsc%CW%>#aR0g*qyk<3pnXC*R8 zX!4X;xQjqR{_1oe-h-b&Z27UU5zvLU{3TobpcXLKqY{FPdT!D=dg^_r`HiEeX|WUG z6}_g#cr987ltJ43<9u7h`}b2aUMV%@{nvf z$lxU21Zcvejx3FB5m_?Qj2{pZ2RRSb5u^oLT3X7|?N``kDU^N?*aEWMkOvKANn2t< z5~uVb)oqeOH*v{swEwwxW;Buwo9%YL{r3AjpGI?^=bm%!x#ymH=iWP!+Y{mUxBiaM zfgZD;!s@=>@C9a8V5bn8E-7syH#BJ4`Vl27Kc-xXTpThZfN73#yv*<}=EGV^*I`ws z#D4{Gu8CN_X$241s}|cERDZDR`y*Ksix|+o@(jo0w(d=j3FVw=f&8{fG!CNUT9sci zws!3Sqi8Pue3ALvJ(2uF;4%(y_$hY0zC;V451+JQl|>aQ_VB0pgwK0};~^59U~KTW z*SOxQ=3K}SA=;{_RIIvQ9j|`@=ugQm_t1P&BAFV(J;VJeoSLGJ2(=l zGI6|*;7bCoKZYNDj)C3F^d#z-MTT~wOqmwiYufr7 z;y~m!GI#cIH4GH7FW2$7if&Th^kS@LD}P6M{n(M?2dXg4MK}1DIZ&oI*36d8k>7$N zsK%X7Wr8u`Lokc6bAu%BKbD&xJ_qNUTi~^qoVM+;!ckQcqdsHPQ4C(ufwX^YE*wuE zS8FgA_r#7&gsS%9NGf`9UWj`G(*R}A0A+OSR+!?k;fK1IO?E62>drp140#=9Uo`dv zA`Qt2fOqx=fLbz}3X8phce?Na{PADmzxKmk^a$-XURgGL&}A+33u=q?d`lDVLziJQ z8W9JHT!Y?*pR|&yr0zrMyvz@QA|udV5)0vYuZIsJ>)=FWGUK$AgKRzFU=}&4w>fuY zj(xWLVQ>Gz<0m8SXr32<1}yIKbLNMB3N9V%r`aN4ZpUzNBM6I^!XmGxKIGvtXbX(r z_{-r_m{Qy}m6V9qNqm4YZTvh!K)Dz@-9`Pw6@Yux62poQP%j=iaQr~L zA1R>B;_Vm*vy^)cDc>=s`~gzZb|jhV7l4HLbhI$mFK?j9X4hVOxT~uZ5sMJ4&a40?ebZ7opX~>zBHo z=g?k~wHhzdh}ghLsRb$4{ul}^Oj2{l1OQMMY!D?7Ei0b2xHp);{3*1!d0PVi{juYH zBn0fWMWixIZItG1PgCT9_^a%3Wc;&>s0sbVgmJk@3ScV`1k4tDc^u~@m!B|4vLP?X zKs)}8a2B&*qT#`%z_S{mZNM)NkBO||nm8taoS5Pupj zCYAlH^e~Fu9lsMWb(uSUfc2b^f7W$gi{d|6_+VTifSO!F<|O!!9f_@fknF<@^A2X? z7!T~uHr)1iFm?z8tTrWXtgF`1wJ9Gu-*FR)rQS|;yP4x{lQ$|oW#*bAihLl-a- z+lvID3mA#Lk4DKiY0Nu{Z>z2bK+I?!6m8}=vSyX{DrJt)`5esaB%#aq8X(gooiV+P z_p0YJu_>1j=-w8k2bPS$C0wNZSAGoHejUYN(j9`y zP-CAMR8i|(RE(3X>239;0MCXRDY$%0^yp-$W8v2Iw0Z1A==b;v#?;oD&`_OxQ)s9} z1{seO?DCxylw-balI zCJz&-F6M(QVO)=D)54WM#Ghx$&SxqocgIO-;C(0N2T#YIABV;Pcl?J`00O>^032LA zkZlV%Zo8Bg3`$O)MH{Qk)Jh@EJnuUTRSEy9>8c^;E>v0 zMn?JV&`|m2F_5@O`?Ik1a<*L3b27{H7c%|S-2<;8xNysQI#})K^=KebI;-G=8ki2f z=qA|f!cAnopcB}D8&>?S=;G9xm<_^cR&^8ZcC8bjWrkK(KgHlGmgIc}Gpfq2{_HpB z+u2lK28~iz-2(Sj5<^r{nGgx4@Z!n0@&!6LUz4|5Hjbg0INUy3Lw`X z!^+|wQ-3ec_Q0aSK@&w^foRhKob~ti(NB&Y4W8&fh+|6+4i4ZImyQl?rlVSC&7+Ut zqON|%$iZY&n+GKXWOhsxxs@pY-eg#R#cJV8S48w+t9;PuZWDK4Ysz&LslB^k-;ATDcU z{eiJOmPzEWGr|efl>in07@aDesfCFSs0EQW@rg7BE$`i2i0=y7O3q^TKs4{9!zXcy z1&rlIa6zbQQA^f0>%b>_$vK$E+2a>tQT^+H30a~lEKIV9jA9uv05A)&G{;f9Wd<1{ z>_FBGdD7V)lQQwx5vo9h4(8z=!z~?x_8|`GgkI(I3OIYG_jp{-e5o=Kg^95j@6)YE z7*;3|b8AP4!sW1}$QB~0vWI_5lz)Iju=whco?k788m2OUlhwR!BbdnqAqK)Q3e}}# z4e2LlVmRP}WnfE|XIYH?h+r^l^=EjQ#rn1VR55I(qZ7kqZZn;V&!v`gB$i>wKF*kZ zH?pU&mw5Xk1U%-%Scpm)&f6(GhVeE2JrX%m=Tz65P#PB#GIrT(Kw>~K5aMt7?q}3+ zH2bqzCtCmvl3R?@zUMb3bYZr6M-gNII}dE(vv@TUK7=)ceBz5IO4Z+?y4<3hxVDC`JMw5uN=HPL-At#0At|rRwdKU)J9FUJCYLl>E z1mB3n!f8s8hZ9BNLUcZ&kq{{sPPRo>B<$PHz!XL9c}H#KXWQn+zriq}m3wSm5r)%9 ziajJ}&7n?2Z9V_iy)$r}#`odIaQC?B69XLzR#u&kox`-r;65}-bJqtbls-!s8UHA{ zsLmyMxveeLs+_cESCfp;Qn1spFC$NETDxw@K$=oMz(DiYLu~%qhP@g_&V5(ytyFyD zAE8PK;=OiArfqC)x%&R zcF?u<3}oW0#SH0u&tcR5K6L(MM`Z z2GV$kqbTWADDw|`@OJ0;V3~mdtah_G}g!A#8)zdLEQQVzBd+^oa5DDJp##|p#j$@>`NuaVIP-g-sV#TeRBC?*{i*`W^ zP;np~&4_8*Bs>YtGJYBUD2ZZb8s{C7z8@nDhT$=D2xrYCVjn6REPQ%{E!)Du&QCZ@ z2QVR0{RU3dqigD5xdB0U z))+s5GQv6Ri9}A@<%d7YO=*S))Ea6=nN&ePaqPoB4KVBQsll1)ASdNurzD+Z8hQ#K z>8rXAR+6M1{>YJg*g%5v7F2D%BfOAR{saO|{_cgd2VY^-yl7$6WMLsI-a4%XFdJL@ z6#p}v#H-^VDqabkQHOE?xTJ1;wIV)tnXFeIX1>^=n_QvYL0~(VOg5XhuRz{79pggK zb_3dOcJ`RY{r1^}E{yf-pwlzxtugxgm(=7=DttQ#qw&kP5XcqJCB*1xJc0ne@E11B zZye!Qq6lXT!f9DK&dLt&*v~?+G90th*vi;L+ZfCLv>7L_X5pkH_R`R>?~@iEc7G8s zx(_)@e&NXc0nfdIfyH_R?8S*~zK7mv)j|hgP;fi;l3{B75ngVv(9wMhd(Vo~6JKJZ zwC=UQ)V=0 zKm}~J(uCi?V6ipqy`HU!3+P}s&t&e?!21tv z7gpu=+d?OYWIOe8=y9KEp+<-G%UDbcB+&*iX+&E>mZ;0_>CGf{C)juT9@cN8n5u}Q z6AP`DxBVC&D#M!-`tqSIV(qLB{oZ8H-QWI84mz9@ez&IN-NEOpx}qJM*$Y-G(b3)c z0t2~7kTFpk>xIY0zOQx)}h7kMOJ$_2d{UK0HfXMh^xZ)&TLx;=!<8F+C!{}XCgfI zbw3i*@_r&J{xWGn4D0Zjn(oOc5_`f}S}Zw8$c>>3TUzT-V|?2MK%~&NYU>4>jyG@L zjtIChpVhi1vRx2K#%94&1&=@;?15|D5}SpRQ!4^(x(_?Kd5MwjoyZv)+S2w5EsPp{ zU-(SVP=09tz|I_U;fRLiq5YjZZ!(2`yFBzxr*&sr2HR?-r^N_4x-&#i!qRzrCzzUlyXEgw{bPv4ywhF z<){dpNUXJDI>)47J*0g$zIKV##rgsrWjuISsO}{m{3xb0qbT}}WMt{Hx1;DKJ@7}e zzXvyCGQz(Ccl;p2X`Az~%}Z?KTKP@Iat?8aw%hHi6oC~QVC5q9SxnFF%xAK&k*j;{ z21h1zco-Xyu|A_`V0zEctUKAZrc9=_@9blzzSgemqgTbL`_tJhRj-dcA{)p~fU zZ?CIfwYsjRqUM&m>lda4ESQgg+k6{+{x+XjTvRr{y+kN-mja3u2>1hwMSqLr^Y|K3 z4lk=Ji9n0r>v4664gLVd0*zW8&?*IjKoIHOc>;kHa#uQovJ?{~BdN(%w481?VMPFCzm8nd{HCV%BA|iq^&NFV$=d+G!r4;SK-^tg)?QS$ zs9mttv)t7_m%q8iE6I|#LkvjG{#MB?XnYLHPFV?pok~fbh6_uhqRbJoSehhni(s*+ z{1RH{m6ny3X&HQe5k)jReQq(>BDshKV5dsHMwyy|19W=57NRLAxHO(N=sZ<y5)HRs3NpGhT$8Px${i7^*yId?QpqQ}Jwa!^S8|IUA1g-X1Z1JX)5r>^ z(tHw9fHpKWBsQQYLZvXu48;@&B`^ZaT2p1SudHHCz1a_Z-IDAC6;xJG4k#{CNWl`u z9eir_wxF|7TAU|pJf`YeqKfJ=@lI!;QK3o;-YwqgXSytScV1p47j`I;lzgffic6ZQ zp|S^|KI zTtP9ZZAw$oNVWoT2`Qaq!et|&M*2XlgbuOIBR8dClgutMX*>CgBxDOVeDD zYj@_QATDBZ6Z8dXeG$qBZI-8QrPOLCFf4;4sxcxeP1RW}QBorHJQj=I1?XW^IC^N8 zWZ@Z@{$stw)uPMm^fZ$K)1{#}Al<8=hX{%Rzh5q4P?B8Mfm$qD53>~Q(k<~irK0H4 z;*6Z8RARAPYH%uEd9kQ<4(KR&A(YQzAz@)Az(`>A$cuoBPR9sW?fjN5sqc`bU@EpO zh?sky6!2@N0@HNK0+Wa@m~Vue>`Zmm5Fw=0nmzZSkAdK8eVhSnJ+Z}N>~ybRs7DNg za@&fv(6wHVPZC+T<%ix6xZBWo=y_6sEts!I3p}x$>YKW*dXLW;=s-htqgPZQ&>dp45|pVozkVT#11_c95E!OfkO7j5Ca(C1 zf<_-ROXY%XveHH2Kv{*+80RWnu%T3+q;p%(qE z5GFTc$S_udKq8{UP#2VNm<`Ma5QYH}1DBqTz%%8No)E2whB%9%fQ-#?!F*zi0_)M| z4>U7DB)I^U5HrGfmk)KqsDk>?`q{7$a zlQM9-K$Q=jAAa<}0ire#L<$cK=O!n!YtV}^GHJks6W%rc1^vyuK?ISBM341%EG2A4 z4#DH2F$%AswEx=GiNxJ26N%e!Ps2S1_l257Vkhpjq$7IiJ@r`Jg}6oB*Se+FYki8> z3pZWWUa!>X^fGZ4gXriWkdk2cH#?zr7*m8bQV{(Uv%v#W3m++xoh(2HqDE!8L#UMk z&7L3)aA5`eFenpNw@3je89}HS}aUwdRjmYnG zTl_v`Vl9`07VK<*33bG{2*}`BrQhensFQd`JVhhw0H36QfpzFHfgTLP)Wi*}tvN`i zKz_EPV#q3#a8zf)nB9YDQp1|A34*7REZ8OJO&?b;YJDUn zbfrpgvTpP;+X9d!Mn1DbRcLxNaW6?{O0YWl00P!B6gUvdkc^?Wko4)<8=TFgLsHXf zZF8hZrU+Cv>5VuQw^fqd<_~Pto4@8aHvf_Ii;w3ssuO2DtQ@YG>y?HENEz3qNk*s? zL)BmqLn0mZfk@`}ciRAPUp_|X?g?JmsYa8jT*JxVibS;5yTzR0Rw4PwH-5*?bS$&aBg zIwfdho{6a>h#l8ZP|WBbZ@v7AspCx@cYvwFjx@>vnO*gMxxBiYh@4EX-bsL;6jPe>i_iXeA zf^x@w_iw_RaDIuGUvcH^*+oTHU3K-<#kfjvU4v^5uDR-EQLj?mgwr`q(~eq1av zz%)s%_ATn*6~?HhWsydYN3}Ye>phJM)QmA)pLdg;8)3tyWJU>ZV~0r%mi>BglUuv@ zz+Z^_N!;7g;@)+^ekI9r)-^Aw$4)4KBuf*ENh2p+#po1S|RwHK4Fz@l~5{J z=3uy1whnQ{WV)1~{N0Zw60;voB$i?E0X@mD-Q>U6`}J=OPy3+?`}1IE<^KZtBVS9F zt%XyVG5?HjCK89Rh+@mv6N#BB&J=$&{PbLmcr87Zzwi+(lfc0)bYB7YCAixo$uL&Q z_$!+?f5F1*uD@YXxviqoUbR9C*Pc^_JYnio926i3SjR?JF8yJ53BRTam*gQnGcQLl zP0t-S1@U7LIZhZudDNU*VtN*69zY&X@z~6iA>>kUE=B6`S~~riue$_cBDvXLE)T}P zG2W0APBLD#%M3>r{Rz1|82`q2EggSOFnDPtp}_ufc`*L*n}*P7)98QXD%HoZ_Rg{C) zO5y5UZe>q$-mkevdSZPM9dj7PI3WrFiDE5%6zig*7&AmcY!t(^DC8lE%88<;qp02} zxE}?}qu^x}42+^4qaZ2@Y@r8kBd-C7=cYT@)uzg;Mg!fsQ`U8X*b=`>gr_7J}A zLQi8DxhZ_fKPM6s3^)0;+Zg`WxK9GUmhVS~GPE#yYUNY>YMd~tm92$8g)n1!%}qQX z2|mHl(op;+_^05Oa652|xXW-K!X3r^Biw%vUR;TD*yxE4!{hT{NQG-7ROCBYE8O=c zA0I;wh3jxzannUDKliPtrX_xJ^EKqBX$TD0g&2ge@M=MLYP(6WR+xp(uRSgZC;v^= znUs>QGiYygy{kTB>T^JS^2NG9A#q^~PpSUX&J6X6BBm4jygRoDri`qd%rR+YXzBQq zVEwl)0L{$G9+NYc)?d<1lS6uAVEdJSlhT2sR77J-A@zly8#Q^*x5y}H{srfuqP?R zR!|tq0JO1H<1*G2j3v4J7VgXiiNtdhe^bE=nVS)98^=0`JqUUPao18D%PR=QaK4NC z9}#}L8ooUPsD(1^1!9IRuV4yN+87L?@85C%9BFq$$r61J6MYY5RuqVltcrr-UD>vR zvh8DR1&cyC_JXHO8TaHBEJ6@SM-n8}C?;4A@NCNU*zI*OuwF1_-1`}@tbp|>U_HAi zL0=tVcs)dTMF_85#P{ulS7?mAz?#vP$Iw9q7|>yD`3PW~1&q}s2|)C-U~I^Ee?%B% z$TkDCn3ljMQ}Ni9GcA7G8FpY?xg^OMPKyfpuUUMmaM z{8}1qfV%WE;xW&~t|~QN_395AUeHzBYo*7qOPe&P>$MJxqX5jOUDW04wX$?wllik% z^&c0xf2-<`&gA}Gs{hZExc}>_|Kn-gFMP)Jw3;qG`gt|{HTC(H`V`Wx_tbDvu(24? z#GhI+;y>M5ycVwUN%L#Zo3>gt=S4jOYWjQB=fK$1^3#E6^=Ay%=1`1be=B!7KQy?1 zEBe3upp}8t=#Odie}laFcO?WpgJL`o~ zyquIu8+}S?y@I#;7LQvfrFlc4RK_v|p_C>Oh0=hZ-ggV7Qd3<+06Q;unmT77;OyXO zG&iLy4M<*O5lVTcdaRqE66)Miz0$}Qg#3+&rNKGo#X%vz_M5ECv0r8MY&Beaq*n{( z-C6t4^o~$yg9pWS0+anI63 z7q0)R{4%7W{2Kj2)CwQ2DEk*gkw3NnG_SA-5yt%DfR!Z`2iQX>OG98R57z%H;KI8H z9nZoGRu)%yiappGEAC45Yj9Q}nBH1x#Y|E2Pr1nacOWm}ujLoj{GytFfFcc-XmFFW z5w|fvCKY*#GyGAgGnV^B{?PwvI||XFm!HA&7k?8eI(<0TqBaMOHj8j381mOouy V(&aZ5_atypEq`k=h`G|s`cHirur2@q literal 0 HcmV?d00001 diff --git a/easyos/easy-code/boot/initrd-tree/init b/easyos/easy-code/boot/initrd-tree/init index c312b670..893a60db 100755 --- a/easyos/easy-code/boot/initrd-tree/init +++ b/easyos/easy-code/boot/initrd-tree/init @@ -157,12 +157,14 @@ #20230423 revert 20220601 do not delete PuppyPin. #20230425 maybe compressed 'gpg' 'mksquashfs' #20230429 fix workingdir when mount overlay fs. /build-choices has EOS_ variables. +#20230429 /build-choices has EOS_FSCRYPT_VER value 1 or 2 #20230429 . /build-choices #3buildeasydistro copies it here. [ ! "$EOS_TOP_LEVEL_ZRAM" ] && EOS_TOP_LEVEL_ZRAM='1' [ ! "$EOS_SUPPORT_CONTAINERS" ] && EOS_SUPPORT_CONTAINERS='1' EOS_LOGIN_ZEUS='0' #no longer supporting this. +[ ! "$EOS_FSCRYPT_VER" ] && EOS_FSCRYPT_VER='1' export EOS_SUPPORT_CONTAINERS #20220529 read in /sbin/rw-merge @@ -1175,26 +1177,42 @@ ${S133}\\033[0;39m" #red. sync mnt_wkg_ext4_func if [ $? -ne 0 ];then - err_exit "${S143}" + err_exit "${S143}" #'Mounting the working-partition has failed.' fi else - echo "${S144}" + echo "${S144}" #'Folder encrypt support not enabled.' fi fi fi - POLICY="$(echo "$PW" | e4crypt add_key -S "s:${SALT}" | tail -n 1 | cut -f 2 -d '[' | cut -f 1 -d ']')" #190308 - #need to check that ext4 f.s. is able to have encrypted folders... - e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}.session > e4crypt.log 2>&1 - if ! grep '^Error ' e4crypt.log >/dev/null; then - ALLOW_ASK_PW='yes' - cat e4crypt.log - [ "$EOS_SUPPORT_CONTAINERS" != "0" ] && e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}containers - e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}releases - e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}files - #e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}data #20211212 20230409 no longer encrypted. - else - echo "${S145}" + if [ "$EOS_FSCRYPT_VER" == "1" ];then #20230429 + POLICY="$(echo "$PW" | e4crypt add_key -S "s:${SALT}" | tail -n 1 | cut -f 2 -d '[' | cut -f 1 -d ']')" #190308 + #need to check that ext4 f.s. is able to have encrypted folders... + e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}.session > e4crypt.log 2>&1 + if ! grep '^Error ' e4crypt.log >/dev/null; then + ALLOW_ASK_PW='yes' + cat e4crypt.log + [ "$EOS_SUPPORT_CONTAINERS" != "0" ] && e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}containers + e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}releases + e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}files + #e4crypt set_policy ${POLICY} /mnt/${WKG_DEV}/${WKG_DIR}data #20211212 20230409 no longer encrypted. + else + echo "${S145}" #'Sorry, the folders in the working partition cannot be encrypted. The password will only be set for root login.' + fi + else #20230429 v2 + PASSPHRASE="$(printf %64s ${PW} | tr ' ' 'X')" #password padded to 64 bytes. + echo -n "$PASSPHRASE" > /PASSPHRASE + fscryptctl add_key /mnt/${WKG_DEV} < /PASSPHRASE > /FSKEYID + if [ $? -eq 0 ];then + FSKEYID="$(cat /FSKEYID)" + if [ "$EOS_SUPPORT_CONTAINERS" != "0" ];then + fscryptctl set_policy ${FSKEYID} /mnt/${WKG_DEV}/${WKG_DIR}containers + fi + fscryptctl set_policy ${FSKEYID} /mnt/${WKG_DEV}/${WKG_DIR}releases + fscryptctl set_policy ${FSKEYID} /mnt/${WKG_DEV}/${WKG_DIR}files + else + echo "${S145}" #'Sorry, the folders in the working partition cannot be encrypted. The password will only be set for root login.' + fi fi fi @@ -1214,7 +1232,16 @@ ${S133}\\033[0;39m" #red. echo "ALLOW_ASK_PW='${ALLOW_ASK_PW}'" >> /mnt/${WKG_DEV}/${WKG_DIR}sfs/settings/initrd/CONFIG else #20211006 crap, if updating to 3.0+, have 'home' folder, not 'files'. here test 'releases' instead... - POLICYflg="$(e4crypt get_policy /mnt/${WKG_DEV}/${WKG_DIR}releases | grep -o '^Error')" #"Error" if no encryption. + if [ "$EOS_FSCRYPT_VER" == "1" ];then #20230429 + POLICYflg="$(e4crypt get_policy /mnt/${WKG_DEV}/${WKG_DIR}releases | grep -o '^Error')" #"Error" if no encryption. + else + fscryptctl get_policy /mnt/${WKG_DEV}/${WKG_DIR}releases >/dev/null 2>&1 + if [ $? -eq 0 ];then + POLICYflg='' + else + POLICYflg='xxx' + fi + fi if [ "$POLICYflg" == "" ];then #folder has fscrypt enabled. ###precaution stuff... upgrading from pre-1.0.12 @@ -1232,16 +1259,23 @@ else if [ "$ALLOW_ASK_PW" == "yes" ];then while [ 1 ];do ask_pw 1 #sets $PW - #190308 problem, earlier releases used a different salt, $WKG_DISKID... - POLICY="$(echo "$PW" | e4crypt add_key -S "s:${SALT}" | tail -n 1 | cut -f 2 -d '[' | cut -f 1 -d ']')" - [ -d /mnt/${WKG_DEV}/${WKG_DIR}home/downloads ] && break #20211006 fix - [ -d /mnt/${WKG_DEV}/${WKG_DIR}files/downloads ] && break - fdisk -l /dev/${WKG_DRV} > /fdisk.log 2>&1 - WKG_DISKID="$(grep '^Disk identifier:' /fdisk.log | cut -f 3 -d ' ')" - POLICY="$(echo "$PW" | e4crypt add_key -S "s:${WKG_DISKID}" | tail -n 1 | cut -f 2 -d '[' | cut -f 1 -d ']')" - [ -d /mnt/${WKG_DEV}/${WKG_DIR}home/downloads ] && break #20211006 fix - [ -d /mnt/${WKG_DEV}/${WKG_DIR}files/downloads ] && break - echo -e "\n\\e[1;30;43m ${S146} \\e[0;;m" + if [ "$EOS_FSCRYPT_VER" == "1" ];then #20230429 + POLICY="$(echo "$PW" | e4crypt add_key -S "s:${SALT}" | tail -n 1 | cut -f 2 -d '[' | cut -f 1 -d ']')" + if [ -d /mnt/${WKG_DEV}/${WKG_DIR}files/downloads ];then + break + fi + else #v2 + PASSPHRASE="$(printf %64s ${PW} | tr ' ' 'X')" #password padded to 64 bytes. + echo -n "$PASSPHRASE" > /PASSPHRASE + fscryptctl add_key /mnt/${WKG_DEV} < /PASSPHRASE > /FSKEYID + if [ -d /mnt/${WKG_DEV}/${WKG_DIR}files/downloads ];then + break + else + FSKEYID="$(cat /FSKEYID)" + fscryptctl remove_key ${FSKEYID} /mnt/${WKG_DEV} + fi + fi + echo -e "\n\\e[1;30;43m ${S146} \\e[0;;m" #'Password incorrect. Try again' done menu_delay_func #20220623 ask_pw calls menu_func, but some operations have to be done after pw entry. echo diff --git a/easyos/easy-distro/amd64/debian/bookworm/build-choices b/easyos/easy-distro/amd64/debian/bookworm/build-choices index c73a1a4f..c75fe1bb 100644 --- a/easyos/easy-distro/amd64/debian/bookworm/build-choices +++ b/easyos/easy-distro/amd64/debian/bookworm/build-choices @@ -79,3 +79,7 @@ EOS_SUPPORT_CONTAINERS='1' BUILD_SUPPORT_LANGS='bg:Bulgarian cs:Czech da:Danish de:German el:Greek en:English es:Spanish et:Estonian fi:Finnish fr:French hr:Croatian hu:Hungarian is:Icelandic it:Italian lt:Lithuanian lv:Latvian mk:Macedonian nl:Dutch no:Norwegian pl:Polish pt:Portuguese ro:Romanian ru:Russian sk:Slovak sl:Slovenian sq:Albanian sr:Serbian sv:Swedish tr:Turkish uk:Ukrainian' #BUILD_SUPPORT_LANGS='bg:български cs:čeština da:dansk de:Deutsch el:Ελληνικά en:English es:Español et:eesti-keel fi:Suomalainen fr:Français hr:Hrvatski hu:mađarski is:íslenskur it:Italiano lt:lietuvių lv:latviski mk:македонски nl:Nederlands no:norsk pl:Polski pt:Português ro:Română ru:Русский sk:slovenský sl:slovenska sq:shqiptare sr:Српски sv:svenska tr:Türkçe uk:українська uz:Ózbekça' +#20230429 +#v1 uses e4crypt utility, v2 uses fscryptctl utility in initrd. if nothing, default is v1. +EOS_FSCRYPT_VER='2' + diff --git a/easyos/easy-distro/amd64/oe/kirkstone/build-choices b/easyos/easy-distro/amd64/oe/kirkstone/build-choices index 2b09db7d..021d399d 100644 --- a/easyos/easy-distro/amd64/oe/kirkstone/build-choices +++ b/easyos/easy-distro/amd64/oe/kirkstone/build-choices @@ -82,3 +82,7 @@ EOS_SUPPORT_CONTAINERS='1' #list of languages supported by easyOS... BUILD_SUPPORT_LANGS='bg:Bulgarian cs:Czech da:Danish de:German el:Greek en:English es:Spanish et:Estonian fi:Finnish fr:French hr:Croatian hu:Hungarian is:Icelandic it:Italian lt:Lithuanian lv:Latvian mk:Macedonian nl:Dutch no:Norwegian pl:Polish pt:Portuguese ro:Romanian ru:Russian sk:Slovak sl:Slovenian sq:Albanian sr:Serbian sv:Swedish tr:Turkish uk:Ukrainian' #BUILD_SUPPORT_LANGS='bg:български cs:čeština da:dansk de:Deutsch el:Ελληνικά en:English es:Español et:eesti-keel fi:Suomalainen fr:Français hr:Hrvatski hu:mađarski is:íslenskur it:Italiano lt:lietuvių lv:latviski mk:македонски nl:Nederlands no:norsk pl:Polski pt:Português ro:Română ru:Русский sk:slovenský sl:slovenska sq:shqiptare sr:Српски sv:svenska tr:Türkçe uk:українська uz:Ózbekça' + +#20230429 +#v1 uses e4crypt utility, v2 uses fscryptctl utility in initrd. if nothing, default is v1. +EOS_FSCRYPT_VER='2'