From 485b35dcefe9df7a05756e8aea5d1a23cd517d3f Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Mon, 8 Jul 2013 13:49:10 +0300 Subject: [PATCH] documentation: Removed deprecated kernel-manual. Fixes [YOCTO #4810] I removed this manual from the tip of the repo. We carried a symlink to it for the 1.4 and 1.4.1 release. Now it is time to get rid of it. Removing this manual should get rid of the folder in the poky/documentation folder for future clones of that repo. This bug was entered because someone tried to make the manual for YP 1.5. It is debatable as to whether this is a fix or not. You might argue that the bug is not even a bug. (From yocto-docs rev: 6e2a14f9be5f37f16b91c0c8931df558aa9ef155) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- .../figures/kernel-architecture-overview.png | Bin 40748 -> 0 bytes .../kernel-manual/figures/kernel-title.png | Bin 13970 -> 0 bytes .../kernel-manual/kernel-concepts.xml | 392 ------- .../kernel-manual/kernel-doc-intro.xml | 78 -- documentation/kernel-manual/kernel-how-to.xml | 918 ---------------- .../kernel-manual-customization.xsl | 11 - .../kernel-manual-eclipse-customization.xsl | 27 - documentation/kernel-manual/kernel-manual.xml | 106 -- documentation/kernel-manual/kernel-style.css | 979 ------------------ 9 files changed, 2511 deletions(-) delete mode 100755 documentation/kernel-manual/figures/kernel-architecture-overview.png delete mode 100644 documentation/kernel-manual/figures/kernel-title.png delete mode 100644 documentation/kernel-manual/kernel-concepts.xml delete mode 100644 documentation/kernel-manual/kernel-doc-intro.xml delete mode 100644 documentation/kernel-manual/kernel-how-to.xml delete mode 100644 documentation/kernel-manual/kernel-manual-customization.xsl delete mode 100644 documentation/kernel-manual/kernel-manual-eclipse-customization.xsl delete mode 100644 documentation/kernel-manual/kernel-manual.xml delete mode 100644 documentation/kernel-manual/kernel-style.css diff --git a/documentation/kernel-manual/figures/kernel-architecture-overview.png b/documentation/kernel-manual/figures/kernel-architecture-overview.png deleted file mode 100755 index 2aad172db3b84382f5be412447a005f3846a5c9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40748 zcmdqIbyQVf+crwbMqvXYwUGvu?rszW6bb2O(@1ysrW;f`1q7wLg-uHeh;(;%*I8SA zzxVk)&wI`|g1`-ky)+=cVMI@DH+sqSOnd;sMeP;Kx1F=d#a{kjkPlul3P@-w$l1H5`zTu-g!Sk-Kd2 zjgXMi;jbi~E4%9MG+`#HjHa!6b=q+xrN5DX_TGqtoq}v6jutO1!sG+(+w{HnC||?E zc_LX|^_8Dn8fv-x`zMKKI% zWcrvylsXCv#zHZJ^4>E1nBPzRdQ)Rh@-wtP;{85LJ z46Pl?&X*ROr}#$?%Ck5?!n$^)2-ROzQvYjMdm8!lzsiCMVJGx|r|F0g2&kFF`Mm#!QEy%K%_y5L(&;T6TEDLg3#ch1}x*EE&5x_*dTVwWCBEeoJ{qV--m7Lx?Z! z?Uz4_L?TuRq4+c;1Eosw_aaB37?eU%2fCHM{85b(6b`?{|2v2P#hEP9D(%NVlef5x_4%|qRy8l$N3Jlth$d;gA z51C+~ElgddUYxBr-fn-}Y4@RXJYroR)KE(6zA;C7D22rOwgT8mL$KkW)l^8pXm5e0 zq&y1dBa(e+ur&Qscx{_{1QPL`kwcRuy&RhpLXSKfOdPSnn%6O!5%No@mPM+Pff->z z`4njOqJ;)2KPzTj=Db>FalH3YT~RJ3r>0O@VrwlYIAj9Ym!yrRsjVdiOnZW`NKj1Z zu-%fZv2nXD)&zHJQL!~L7nmv_r2ztm6qGY|BQXpc7#ZewS}E89;``??z-( zHVmx8_;}~P@Y{Gq5h17cR%l02uFwkBKN$bquPJPLSRuNe}`MdARBa)puFsczY!UD46*?KiIcwg z(!iGRkR16Y^)dmO$K6sy*)<#8*G6vEe4L#I~$;&P@&5aySDGm zMo7rC2JCccPXM_#1m&QYIr_IR)~f)oHg8oodMandpme!cFLgzCl{5(b@pV~1fm?Ds z-*7tHT2s`Zr7<1yKVI?K7eeY2ZRLHD|AGpb-8p(H;tPcuK#c>JnN=Mre84q8U83{L zZvlt@J4pJBlLRn`f$cS_970aM7UI(eIV6@(fVex~_fiNuR7H$gj0a?@bE%IAsq@*0 zPnzmCa%nIE@qyHHi%g49{$~;5xehH75n{SNE#DEdbSgk-HWmsb+w1Jth*9?6A_VFZ z{D;8HKAB(w40<5{9pLb}efZ}B{kxLZOTS7siSg-4o;oo{u_Bu(fNm6yB2Ob&<^B@CKJX=LYnK1U+xJ zIx<4rM+3S^Q}zXKr*C)Cv3O+SnTSO^&y%?=s;#C7ZEz2t0qGv}+aNyJmn~1ehbP`n zT0*3r>uqzqx$6{~%s4d7Lm4(=z`8u82xyk(RUh^ZwzMWQsY@cxnt2p!C)sslE3v#q4;X_#3Hv`6i@NWilym zmpa=XP>+~8Ar*6p1$3_Vq_%B0-ok1<{BKN89`G3z6O)BM^fMJG;ZyFMmrdcRs;Pk~ zc0xZttW4}SXaheYafY)cQpqL8TBRBcWQb;HB$D~y;;=y)kg{aOb!12wZBf)#`-f*V zv$PX6=nL~2w#bd~raw&(7MOpZ@Vs79N0^heE?`dHk<&ROs`_VPf<*F%1C}53In| z{$hINBSJ9^`)%40%f_W-_A~X^vDhRW<4AgTB#cnDq26XAw$Ih$VoYz;Uva!3a*%p~ z{V))jx>Id?kxua;6=o7y9SRtv5laRV<8w&LjU*6|(sj`tz-UP{3&z_npUi(kO@}R& z6oSu#fmS9mUT9{rhI2oWUG17i<+o;9Kq!tN=d)jy#@`CNFuK?A1XB3)v>Pfm^uiH@ zniL<7x3w?ChXIpMEfguh@gY?n5m+wrg-av|>aPe9kf=+$>pNg|7m3A-&1szO*O?s- zignXl&U5iSZhco!_tcnw(D|s`z0)I(q}DjCP6H3+rPfq7SZD%~kXrGA`6h50?AIcUK6bx6}{z5_al}~$;6G!rNim(vHonmr4kdJyi zcaZz8HW>GbCcVpPAFR%T{MpPnwh_o2g%d(^U_lm6C^8!wVqs!8M%C*t{3t0mSpgY# zgfjZ0*UeS~3{rse*vH~6BI&h(S1U&^$tn~V=Zx8+3_#$FMii@Hbz!3#J+P25Ss?t^ zX`vUPG9q~xyruL4xi~qU5YHYTXlaSsp2bXm#l#iibJ>44#sllYT}vywkK6GbKm<|| z5Wfrzyk~F3sxXb+%-6EQ+H&9LrHyfgOh{Elnx+a#lHRi-6A6-%XFG55-_`y$YhOnW z^)xt~d~dffDK}1oZ72zSg~J8SOxlV8*}k-)h3dUTMOXw{6}!um`=}LdbYPyuy6fyU zYOo|rx;pk7t?z1;9mZ^|qD!nc8?98jBONT5fp}5G*d-AR3 zC`Ml2ZScFT1@0o|FK5;1mU4(C(Q`j`%S>D)zStFz@4+eE=Mmq$KtC~=1#X>ZpRhyr z7uh+2GGtLMpeNlA1Q)U(-vd61PD(b=`wN2^AyIpzw8vH`Go+weE zt4IRjpMgL+2|lLlv4h?$%y+hr=GI1=$2I3Prqg^iv-j1~C}P5ndJ@vty**KZdUO(Y z@nIq&)h9Yd2+N0^w)k_pF*{#pR6$cg%e&1r{-uG(VQ|R>(JHf6a4EDuo+0HIAGn&> zN;0VUE7k8XDE%JJs8%dwb=WdpP8HZ1yjpqdBdfn`%w@d(BP*Pcx%K-I1O1B2X{Wv| zNOb3G9FS-w1g&YI$wdAwQqm8vk#W&dNzZNq0JOw7sfRXbZ%5~np zvA%)o5UzO?G^jgy7b`{Xb~37Vwmspn{$npe{dEF7oQTz#SO|zKIrCisS_SLtJL=U@ zRPOO1@n=P|!yJ}xaF^C!&e?ahh6GBo%Y?&sF-V5yZWOLLiD~!@9Y6M*gS6MlV_xlS#LqEO(Fq8VP9Z#7&QvXiTU2Cg2ByFe-yjtjqU zEw$ztUtqPLrF)8kgZ681kqYAQ(#&MpL}NQmM%pN}5-ge{W2<>`o?12vFQ;K0-pLJE z*bH2QuZ9(P-rM}HsK6*Y;oS!Uj@u6^siXyiEqD*c12hGv3vK0gB2=@iKEp?@44FcqTxPj;aC%kj5g6G_wBsaM=&KTaYDP9U*{<`g75=qH zy!3%GYadi=G#t~t)US|s3!3|LPc7P<1uX{&UpfPx-!8btP>mkrE%nW87f*wVeYo=yQv&ivw|}#3tMoV(wmw62 zv+6}07Ha}LfKj4)CC%!iiJ;F`x|Yc&=7GMdd=%OYt1(#@H4~nYxXc_rnqBHay56r+ zZ-yybOo+;uo+>mU!Dcj(Yy9ROdhWzQQe*e-sfc4Je-V2IiQt+4x(Ngp-U3stCUzQ0Yf4GH)B+MrqW*(a1^uuS-} zlbQD?E@GY)j`7cVVz|CN8mt|x1JG|DVz!wQ;Gn}eaP{UyK%$cKEjIMD5$s%`768}I zn=BI5%L}0(Jk?!x?W%5k1td`!wDMMHp|#&gV{OMq4`Yev`9kpBM#k;N$(UZ(b#1(6 zyNasBW8!DH$TT|1_2j#5mYh-4wcyWwS@=B2gpURFR|RS!T13l{>Vr&q2QpBQL0VYh zKdX(VdX3ox0>`{!W0l)XFgYrETaTa~A6c>M*78wLttE%?>4Q{YX0dLiD$ze)cFg;& z6@;_#DF_>~u~IoC6ua(D7SXcGG}!otSWNds1F^44jZzD|x+CX0fIcTk?CGN4zUyXi z1*cnxLYIFd+5gBc2RbHueK@w}ecI>n&2A85Y#hvVuty;bht?>NzL5NkltgIyI@9b~ z9NgN=?0aJ%DX52eVjsvswBE#JYUC3W?@sUQO|{e-FKB4b%B?)EJ@s=mVOOiZr3+iS zfJjVFWulCVKWB;sJ14Mm%g8tun2v&6Hs-YL#)@c7Tds?sDv^8~#)uO47XZ_i_G05m zF<>zY+Sg4x$RHA;aL&X!Uvr6hBb7Bq0yfv{$|SldrwUhmPJMqWYAQx{83ZGZ5qzl@Ub+6QHm?qyr{1!vNrqIVTib-2cE_X#nKz68(yRTgVi@%lgr(DI7X{ zMSz(6H*_{>h5kRGvtO2inF`Vftn?4e@;}0>BJV7%|9vEPIgUB=KOwoZ@gv0Z|Cn#I z$XwC?Th0C*_}S z1Pu2#M+xxP5#ma9c=t(|66lB(ZX&{6t?V+gr zhVu#%$n4{53k&QpK_5?LsuC0t9J4A}3|D}9+SW-Bz&cEXYw3!7jZs6+K(Cy9hSsPg z20ks8>6q{A{C$U!m)0tD_5mHx}YhlcKaiQr&GxFs8@>M z5U`-D>sZyPzcNSy;0;lhs@;gUj-)iLj^qGU8d$8rAkl`ckQcfDSCJt)Y@Xr*0Q*^| zFOcbRS3;QAt#pCaEP(Gl#&Q9k*Ymvem&DNp3>XaHJ+|MP@(gTtM-PtGXM9x#Wdt>I4SJ|`=gYBzx8|5Ymj7zxRsLFpjHyQ+Rc zK(oDiWq{sx(yJV#u&C;11fG=CbN+xtkA=^k59j7`p!?MY}#HOH}(7bh`(6R@ldpz2v0c)YwjSv`Q!o;_O)5_nr6m zJdE5qwiy)*Q$bR}APppzX{Wjk5~Dv4*M3Suo(6{!gjAXIC(kx{B!ugWQJrcqWf}g`U6P5H`9)WYH&^AJR&7Y9A z1W7!^e{@6DJon|wvk|->P^?eJ(9*)I9>NwbK(c@__}POS^_?va9&P#KAnt&syyiJz}7&Z z&%MU_NFm7^1-q!w*Pt6kCTvMnB-7}|(5oFeJol@m@#nyw(EO zK4kjky#{^Id#!l#QeF_vOz~LU^fg&a&-go|6n4%s1+?w=1f`||p&?jwRms8fstwZ4 z(J0?{_rOGDJdvw|Xm~x4H>gLe=~U8NQ(`M7071-`a`Q;OXfqaW({%C+0Ms(ocK{C% z_K0Oizf^DQ!T%MrXE2%i2xd4#(r=6xn<@vYiCk>tUqf_tu0`_ z{wryqEf?S1``E3tEGEC@9zLgB`}dd5e*KRhFj(%^nYoaYLTy`SA${+7BXRwF>YYN3 znQA0x>@rc_0?(SZsBGc24`Ei$)~CqrK?IELP^I$amiXt{h`=+q z&gC0Y%dttHbfbG+>u8Syo8wG(6c1F z1Lru8^_Sv3)(*)*cXr0mrQ|AX3K){iljO3xat1h5dCIlkpE%;}qMIy?2`xTf@w;k5 z2lNnU9nI0r1Tw+@ZYflCJ5DTsE5fa{`do<5(gy5o8sE6sD^P11-3De+Mkb*u6dHVq z9uvBnNqN2oPB#sD9T4?dpMd>W$RJPtC2O=~KohGN~qzS5Vn%el|AS92^FnBz!wHyBE{Ll(XL!yDV zdax~8E474asc=erZ%Ym?@ppXxc)Qva7UBpA%Tvoo9EZGkBWdi~#$C%M z(j7TuWcsv_T`c!a1GWO*7)z4A$SQo2vaxE6v3F4IuijQF&d~NXh`=G`otw_nt%WOb zr@}NKSngC7YrF!8Chd#`*^Kn*>jN!xuTsNq+HaGWNd+mvSR|*dn5;hwu}ASMy>HyF zHhd9eLqkIYDt0y!UoQ`I|9WNXeZIaUNNq%_hY={Xn1F;=)}2U2o0gVls>?BdgBiT4 zs=FS9<7wKxCUrJfWuX?dshP>ZN4CR}c#vXU|D~Xy*Z#@#lH`kaVw2P~xqLo$zAGAS z?hhycSH3+8ZAqG{km6~w8Tv8ZMikJNF)eHaoF+D3j+T_qtpb18f?_%JTkl0b5of+NdIquu6WAtGPl5s9OmLbWXx! zNoiQU?TYsN2{xkw5qLE$(OJ~_crd~bT^>&bL?x0Ka8>38b9qHun>#^x7p5z(2_jc9 zFqr?IZ}0VZ234M4ZB?pH5eUX|O_+;?NOHs9?gU}>G9V%hifa>0mM^(IOI@JGW$QF)mWIN>n2$!zuhGdq))yVOV5P6p!R9{|~5TugowJd+=~ z;54;{=MJ(WpYY0yxa!m=)Y>(~cv2P1)Fj%w7{P4K z%T$)@<-WOI!!b`2dWSlnIe2!w;KNMlo^PDs7>-a!UA;i ziR}VpMaNutXOxuDX%k}`&ydo*U#BfZIKkq9Wb*rw!A+&Ij2F3WqSHaqk{ReEceYh= zm;x_!m#Eb~zQCY9sMVywwOjB#rI+TZsVqj@F2y*?|}s$tw(wm!90YZe3KshcWG6O z3aSSVLxoudkIIh{kZF6aLzf<_8#Bem6KHD;Zg({gF+2lZ{aWIKhesc*u~=V1uY9My z`tQ@;cpU|sfX}bHy=!KiNt!d~T$dtUX5DC0n5AyYB+)lbkOs5{_jZ8^8+t$@+EwO! zR@#Nm0UBfOdM8kCdn`;G;4Wxdnb=6!PZ^&0JB)Ye<@^9`RQd(m1{5czNgb`OWYx*Y z_rXfiMc!AHLvv}$m%r>3;-I`X^@?HCei%hv>c|y#i<+(>Apx4gJfSPO5+?W6Lj$kA zn|jQa$jDRiKm>F1$X@jepY$Tpq+Zxo*?4vMxCHkhOr87Gz#CgC2&O-&vF=Y&f*pNZbEqU z>Q{N3XCynH#5HB$$aBa&prC1(e~q*2NK8;ISb3ov+>$yB(av$Y<_hd(Xoo6)WFWS< zC}wC)RB5$#CAXY0B5IuQ5}--DVXb_@jSt(Z*$W#b9nqeqssh?bN<3E>E8MGr18o>Q z5&7WOy!kQURAHzp2o$Om!o*LqSSh|~G=*9uoSR3k`N zLi((wZwliD-n4e=54Axk7&U#9D}d5^a8tcL7eBPNQzBayi>5nx3o03WrZKrx#M)uH z+GD@Yy5(62T*T$F+_<;6`Svo2)6^ecpjy;QBw-@|JYfn;-cl5DKk+q!=t*?#g3+>t z-XCP+jHM@Zbrwh^XRFpGWM2zB1Z}b{mXsJgzaK(#&pgV!E$?X%=4GcaW8piKAf^Qg z(nwd9dTlrfoE-19V8zV+9Tk#_OaLbb>PmmbJ~_Xg57ERoVCxQmdJ5Zx)&#rh-Cl-X z&`}o%=phd$zTomVTFUFs5hu4_&`gE99f2Ty)cY1lu_d$L9v*beO+}s0iPjT;To_se z2MK?L*HcABT&Gciq)3@@`@@>c1wP>=z49vukY{gP!9WB_7`&YX)lX{Rpq*7wS{phz zAcSX3!sZ@%D-HLc6V0?yek5ISgA3?^X2p^P$8 zg49a%orTZa=Wnjgn)h2VbL%vt&>+|AM>FYY?0gLr(xY!M0)Q>{BFEq0IG4XWmcKh> zy*osuIQP{*Xuher! z1`W^NXI$q@WH?X0+qWIyUsL801sDx4V|Ij^&uO|@o*pJqk@6F#?tcWxbF z1SUrS1AM$QRg=oU|3HiFJa$d@gvpFtd!y^+MUEH-kOJvLbStPwjM*s9wkrm2uh&Go zatIHA4lfuYR>rgFgz?2(069_Du7kid)vmMFZs~UK?xuNWW+svSZp!D%rp9UtL#C?Exo&oj5{|Ch{#bN z=c~dn-fPOlli6zTn@jOvY?W<>*$8)2@qQ6w25Ags1Q8bLt}&P*07K?Ca~zT7MULb& z=@Yxornp&unxO69{gOz>sF9Sz=)U6QF0S=LuOg!hVX4Oc)k8=KJPtfgx@=cCdG{ToqshmKle$gVAbf25=mVBxCZwKaExe@SVt7Z zUvmp=n8vLs{PbyCH9~!VF(y*lY)}0%BsmJ5`+%7|^ z8er)>fv%L(T-u{58ccBKg?_5D_fFNA!t)r2gm$ehm7?wQvGtIKO7E+wIcG=5X&{xe z39fulI^;-H^DkR?!`;Vr=G2c(%2#UGg)M`;MB%=k1t4c4eKzaWujN;$7)zez&oWhB zf8AEh%t9FU?k*D>Gl)~# zywj~RA5Hjn{Irz#fHvLLU&?OxaRc8@#L+NtemPTRLBxu)1b>pMck`>}Tb1j9!Ss7H zxwh>j({y+%8PI*myQrh1v+JPn7Rm%t6DS9~T-whSP;?W&ZA*;*Lgc(EF@m z&M7OT%MF2z7W6?LOM0i83_jN_a4cI|%IzRB(VNjT;=FJkz zR$hkpr8vdqLq*$kx4Ca#d_|G%d!B28uKDyBE;=Lt3$cXgP>TfYa@#>KZ(!c%ZtqTb zmo%td{S6H(rJYLckHg2cnc*H)D0Qv$`_OBIU-tukjp!g6@6z=uk)`K=7$NXNpH`V< z1mrCXnT27A+kZqgB_lRU_q8+^gGUi-K0Rm*a#Cykivun*4r4+v9c%hhA{Zl?Mh`83 zGKByyK3GqbW!>PYy^rtLr)6EY5+%5M4#Zm&PNqe6k5fw#!ibk8w#}m|YC2Ab-)Rlc z%6nPbIJDHQmiBIU_lg@2U#Et5em5OQ_-2>C23zgvq(vE*6j}}u(2i&Zv?Kmd00t3p zaWNqVe=ummw)DhzUFrD=!xtBEP^K+_)R=LTM1+ zr}liFi~ zB6R%DQ4|KY!%d7J+M?2H8RTZfAiH|(d>gX_u=lF!x4FJ^2)Sn^kW|OLF!(D*raQ$J zo8P5|8d$F0rDHyaAl`?5z6KEsZvZhf4S+n1-e&xLphIYU?G_NTs{@cOfh&3#=RnWn zw!@&_77!gce8s?r^UF z7`H^&iIzLb#E``8%+o}A+s3lRX{TFD{rNLxk)+%>8Ai_c5bUPni9yil<2BW zAYuVc{NTUOD(X>y6U@3Ok{_*(MUHvhe$m2)8_s4?NwN z-Be`pY=+cKWxZ~k3=uld$|XK8nIeA;;Ct57xAM7#!0S`>>OJ!HuQBY5P&fWNNkYPa zT5haRqC!t3p5I#!O0t#a8K!a8z+7y(HCn~PD=MxoK06{+<)cM`Tmp@urk}^ zTVS(C2Z8l;+b9M0M7aeT15!tE3Q;^OXE_hhF=WGuP41L4Eb{mXYTSzPj&R8Ty459S zrh$Zzn!oh=oTLT+1fCHj5e z8E2A(AGukLYUA$gqN&9PV)f_9|Kiz0mD4wD@WTvNAiW;p--6xO3ec(T$nw=nKkEz{ zF4}3V+=hR4D@9LJFMVKO`>APaW=0qw$v9a^#i61sN?3JWoI`4Pf?48zD6 z-uiiTiSuImQ8>Q-sN|FQ4jAd6$# z`IofdX`~z-0k_9WVk3eHB~tf7Bh*`1qU_Hs9Ejk)u|PxO3+LTcEVe{P@hfqX23yDe zU&8k>$DB1WD(2}Fp&RbL#6nA~cp4Pjp9#*O25-^PHXb{>{D zG!!4jS}iSLfI=wK;-%p%J({J}c%kRL0+d77KOXrET0EBE{AIO>wG-0v2v7VGgtX(+1bmpH(aTgu}$Bdo-){gSYVL zSKsq+wdwt0wn4L{OX!6&qhR>=`*Uj*R$GRr;GV`CeAE|538cow${T!Pt?z5HTBObZ z#-46U{b80cB>`kfypO!bYrqPV{ivy%`yLKji^rzN|HfCTcT&r|s6Sq+@4Tj#2p2=c zLw=b+oJpw|Lfi_rgP`gZ<0Zh`sZbn{i|_GwOPOhC#AAZ)Jwaj5Nci#+qP;BTd*hg? z^%J?7TwVAcDyL>x5N9qENXr4E&KP$W2luraCur(s*p(06MI^!Vb>8w#n|493>QJjx zCt>e$|DaG$F8hTagNE6Q3_;eJFu1Ps)*i`I5be(fHEp{N^j))lW@2r+R33e?7vN6f z4St8!?diJrdY5MNm&Ie#NYa(E$({HTrCa1X>-r3eOpm(LdDU7>T95I@vvaiw=K~}@ z@U6{$w2se}-^*+wVM0622jj3GTqcqEnQL|0R=rgnhj2fCI`KwulMtVU>qly%wFVaH z3*kMjrVcB)eu$;`@7ox%5_vtZ>GkEqB*U1@>hu-g(TnVx1-g5 z2eNV}fM9k&UAG?^KY-#Kph_;9^_H^Zh%~`)_aESr-nf=1p}HkSZA&PhuYX7)lMY~9 z4Rnw&nQJ(V^%;+35(?X<3v{y!!6ik*$Mx%PDyX3}$ZarYkG)MwIH`G9Tx}6i%inwv z6==zN-Qbjo{Sf&i$8R)1l-?|LjM=N4pQ-zW1~{lp@MJlHFrdPT*7c|J4jsp0IuZ+M z-^8tH${OcQP#7K#Bz2V(J=NyDh%z636JXP&WyEo6LBbeD0Qnip7 z$$01z+?a81HT1`fP_AF65T^CiJQT6Vc5kEj9Gx ziX=vycryZOY^5Kc79tAMe4yQBYvy10b>t0B(*dR}8GZ%%!hz?YnyM<{!)}^gQi17D zNY5uU_kV;oC<7e z8VMD`E=Y9w`RJe_HuS4V;uG_F_by92 zbeW+Q$}(U{&S$u40>;)8dS=$&LIzY4bs1YPPXE{FjwPM|7XLQykC~jDJaAp`85tFH zeWG{A9UsACdkcWR!b}vtq5i}r zQEfQi-Wy=tKI?a@)Ocnz)r?~ zh+4f3I1mFGw43j4w~8CEP16r{s?A3kJYVk4HD_?nZ_csr>W(uG$8^G1kFgw#I!r3~OV%m~=dalg(JuHHm< z8_xK#eFcESIjN6h3gBYx1~dLI`vA|LC!133eq!#awV-P@9jtPIp)nM8LsNk0BFiZT z$~ET(g*7Ke$my&RF05&zM+gfSfDtpkt-;u2UvFmuSAMx6D91013Rti3Kb*_<+l0F&P@9;0HWA>o#`D+0D>vUi?C*a3y#cN4{{FQ3<>|jFGni6yBO% z?0f`2jjI&^x$>z#fZV&wV;ts3h{xZa$)Nkkz z41ZOl4B#<*=@)=n4^%1^l>l97fin01ECBoeC@%c}n_3!B+qLLu2EZGJX=HD`fSYsw zuuo=I3KhUFbEJ~5uf76N)M79UUbQ~K#P+-MPEl=MebD*({6G^d_;Dc?@OP;+V)L-o zKZbw3T}%V`&hJ}x@5${C_mY4YOvx^#03Q7}Sa&)%&Ov#{?y58xf6O=6Jhka8GknMjM0ss^9HaQ|NagVVr09=8)>$5dBdZk6lZ^O1fx*^fO^=ky6nW$(? zlzXv8#p+JYT$JKyNasE%<1Oi>70rL6{NJ!005R`<<{v^WvwuEI4!QR%?RZbqJ^_qP z%FUUBer-8b-7g%*cT;O({n2dubBoCQ69xB{@ssVuM#5kKN_u!w?<(dxjDU6t(>;_R{P?eI8xz-cFlp`yyH*K4mOX>a7+p zt37*3uWN0f{223BxOv6ve17Wjmkx2aj$@t85N(pQ5qhAA(L4))crJIxu5-^JItG6d z&?Uf~Sti9SAQi>DLNK>`hTsF|_Tse{;4#aONr{3+nID*!g@u4d{ z=xtFq4zq~(G&51^_v^8NoHmH$r-ra9NuXxKCm+djOL~xLoy*sv6o___f9_!e#$Ylx zW3iy&!f6;|@%rW_gUW5_5{a%*ArQd;3Zl4U((xC|mO)T(cIvZwvnSj$O0^5wEU0Rerp~C;9>dNE;D$p%ZCjp?V>cF#&364( z*2(>F@;z`~LnxOxoi*V;#n|q#2AN|ZLzgr=_7z=v@wsiFNk4aQ7nBZH#*qtI zSY0(aHjM3{KcY4b_3ltDE9H;m)SwULrxa%rTr6XS+MwXUms6D=6V%+s9HF0O_V*{**8Evu zI!qI2CW!~b^d;yc%zKfagxA`wpQk#mHpzsm`M>jJT5Tu$eo8_O?X##a^o1vSn}tS- zVr$nJ@pFE9aNg8f%WIm`F~9sRcjSx-L_3C_nB`sB#9g!KZ!31$&pW4WJS3CA@)TAV zNiJMpQNdXpi zOo`hOcVtV_Ck~$hB`pQwdfr+mcDJzS^DN(NdEoR5xEG>ihX$1Jzy6(Rw=Po%91EznW0q zJ|pTdv7rdhqi-KWgic{I_uo9YGNLZ0e8Fi_(_)^j4a#AiDs9{J{gpQLvq!?D?j$PE z`DalhNlkJoKND|>7UW()d6;n|{6VB=T_mD1ael?QtN>smPFs`n8y``=-+;M;>c#+W zMMVp6!&MLL65;dr)X`S`=z_!(k>5&Fy@dL1!CP=LUnXi~Y9P&0GAc^bqt^KWv`8_X zfAB-8=SJq4=`SG>0$OOmu>@GsIHHGcjN{XVgoy^2hyJiWP(I!`f(V9p8NwX}ptH4a zgfP5K9m@UXK$txaHVeLp+f2(c#Iu*V27r|#s`#37C&?tfsnxGW68-Nx&t#JcA4%t^ zKZ&`C7bI+*|2C?{L>7NP-d`F(XpWe73*|940F>+tMB+5k&$2GXul+=ff=ByC6h7}O z?9w(Wsc}623y)hu3?rJOL`$LehnNGPQvYzCOXl}{T54-7ZXCJwiq$5BW-JKJW`I_? zjW#`-0cLV#x_P?YscGQavb^^pp0{8^1GC;Yp*MEfC2r!V;cSU?{>ULOINP*zL7YP& zkk6TZ!KF`@D1g?h5JM5HwFpRJKkD|{bVD3C+Y1-;eu4{A`I)xW802&{l~^Y=`|Ek2 zzR>4q=N8;{K8nju7X2=`a>3k&Y%JpYukTUNbQTRYcGWIoorxZ)8jZnHT5E4sVZ;^6 z+MhV;5$t+2f>@f>sk2{shX-2TwPD7$bp&p-mVCS1{N{DllgqjT@HW;7@Jx}lZ!BID z^-hA=^$XM9MHG8Z4C1||LqY-VBZET0S%w<|IrFUGu;q@on)S#N8=IfX)To-Q7M1az z*GT8BAUcciB@+37MkGEXT?l2zYpG8JMxp!BwOjGthpHr_Y-_$OeKBcn#EA(eg~I?) z>}JYuwm>4Wuo<_iEi=*P1fkY@>JmmH;dU;dRa=gu#y`zifWH^jR_@gyL~Zc2B`!8= zq5Z5*ss`t}3J@{IT2uwd{cIp2xf5-vd(CV0*S#!S@I9`s=JBS#TO?}EFT_6ew4JRh z**apAP@@epTzUD;0$Jz5XKH^P4@@e(JJW{Ux8DZ*3KZ-(%o%A% z@~*U5Gagj)GddS3ki0lmwsYM8Pu7C`f`ewh+Ziuu*C`s>Li_y!e$80zV*{)q2~zFT z&AaQ2yQ8cUoIYkVJ5)uMZ|4T-4Q;AMR*}?BO9C1Q>W=Ho=}4sP2CC@?mMb`Z^HGZs zb^+Y&eWXapwPLQIEsTm=oC24~8Mh}j;^gU5hz;*`x0MB(n6i+NCzd7?M^O{Ku0*Q< zmlcNQIxMCT4YN45F}|cdvpX7hFb8*P;DhgLvt`!?LL!_V?8_?Od=)2m(U1Kc3J*QK zO0oIIZ#`W*7`=VA!Fc6kZ|`$03|#vA{+<@7RC=!^Zzl%5RW;B69=KzSCji)Rvd2+8A)b)Rv2O)!}#&{4Slx9%g&}92Ip>f<|ap3uboqPZDxV4 z0^khNPvXR}LmU7?>h&SSWyz!5W7-bD?ad{|2RK+Z0Of^fqZ9yT6=-C`2tw?O_YQW@ z@d0w036yPmK}e}vh{Xm`kPxWr9_f7x*-m$;9sV=GNbWeZU-m zD@wz`Sd6%jYH+NMS#wT9%H~VlRdZRc4e+q`1dL3N)jdjSZvYNofI};MG$6!p6>(hsJjlin13+sZp2z7Ta*Cb5b3n1I5EO>*apiv%7t~TfwoS-z7G+G- zv@5LboJ%~))*e?#=dV|N{c--Wt>>YHyRo54T`S_o>Q9hT@FKW#CJV*316A$M)MXc_ z#DnG~&5-!wH*DI6-&H$LAtUO!aJUdrKW+FASR?uNw_x7}2@Y_J+AcM=V%(2TIo?Hq zh5gb9)qKGRL4F@Q{x9y{GAhdU{}%<6L19QqN$F-t=@JA1>699}VF(F9iIHxR5)cp& zq$HHCp`;O{b7&AGBm@J`H9XJnzyEumv({Pr#Xc|2n`f~e@44^m&g=Sq>ia+OySAQkxwmQ6PEJ_^o?+7t|Z<|8tbkv7)Rj z=4T5nBI=o_&*a3il$|hkN*sh}7f7AC-^v*P3fM^jA0ALVhyn}(5ifLRyB3MFBi!&= z|6Jg5RY2rsrB_lk$^hS3sF^xj^0$y~s57;hS4Mw_4eq!Dth>hxZ{^+L+(#Etu;KbY z8wOHR|HgQx-T`_p{dZL#(|epuIE(>@2sV>OGyd)KB-Bi>;r8j9bx;;CK5a7vWkENZ zGnZ=iIYr-fWS5@R!!R3~a%%*y5T)k}TuAK`|JwtUC)%uhxSt6g5KCPA(7?p6to6o= zQM7#@;3?oGUN_NV9izk4y5_mFRxrw*>sTL(%H-|TQ`lwHHsl8JZNpL2&1Mt?^HUY3 zkJ-f26j&gim~G65kSXr(0GY{^^c=^;3N{z<1BKn;uW6QoZg}ztnxNjV_^d{lShJ}J z6TTu(hHo2%%EosgqqDgiixP~Ny?DB_F&-7{|sD`D(5QY<$s&#{Qp})ivdCY z&(XsFpIt^;0s)hC7h?eD=n-gdSZ?Hm0MxqbCc{XbRb|CHY44pPs4`}0NQ z3>*R%obR*EqON}qOen`niDimGPf{ zWdi?ly1geFDC=QP=4z92S$wy2 z;Hdep=%f<|X{W#c1H=2XPTk@%T^W_Se7=e)<4ZzNOoUa}zmgQ~+nFEUZ0?0KFpI|L z^gjAg5>GRI=MVLkw!w5_=;s=8Nvdy@!?z*aUE`TKbVXW7Nz(!IyB--R-^@l@Iq!jjz$+s(C zeDWaZ%?ssCl%duPVs0R1r9^BCb*2}RCf?1C_qI<}DLgZ(WhRLfs7SuH+pgd71QX9X zD}-f~VfOF6<=fe&kMn7haL5h-EBy0~N+QEU=-s<_3wQ`B{*s_S(Kwu9k9KezLS5I! zK;{n%{fB$cUE2U8A+GlN4$cWPX(T-4o{z3fW=z3L6%)Z;b?eCr-v?{*J0#tIK9YLu z4%k%j!pmRrO*=_&rXd%bn~~h39;o{0pnv9eksKHurX>d@UZG0g2HJQj>S) zI;KLvCF0P?I1Fu$ST{5yAyWOD)qatMksH3NIhn0>NI@-xtdES0RQ*%cC;5V^UIW|g zz^sjdlvT(YyIFi-@%^y*b)=%owM!4vD(7*+Z^UkUia%df1d>oze)~XvdksT8Z-&!w zN3?6$KCOy(tBc`@x68Vk!5tW zY_)jXrsEb6Cm^jVE(+ospg`Wz4FKw|Vsl~GkI$bKu~n#ejSuISFY8|6H!M1^wgK_j zwXLTA7w*}dqe|t5fA4-@-H~c!uu@g*4IyUSW=oF?n4z;1|=x4QaonfFd4!^WV< z{=kBxuEa}9no*r6-?QLsdTMNXds)&i*;Grf3;&I{Y9!ASSn4*ma_wWQdW2@Am1j*a z+|Sy4m`Q)B5W@r*ia!Kzy5d)@9Ldvr-jBR7o~B?i+^xi{MHAN+PpRN2i0nnz^aA3i z$x|$fh_n@(J(5-Tffl>ns@V4B77w->jTS3*zD!cCL9snBZ2obNR-62y#4M5F7_53~ zx%zjLuJAVh7view$?NkF`F-J=pB?Vh z!{mjJ4S8LlnvUy(ZhK&=saAh=ClU-aXY7ArpIbf?2GUCV!#KLFAlE1~u9KVFhlHu# zvA-eQZ3Xqg&Bp34WcQ5fFbm;PAo@=F$dHn`ke-w%@Vd3EfL<(Y#w^^)L5_Z#5>n0` zD-0{xbQIScu&xpp?%4by;er01&V>=82@2^4-fFa=Buae_s@0M+=>& znYzz5dULe@nD%Skgvh^f8y9)Y6lVUzQ3d3!SSQQ-&WF>uerL#m{keX&z05~|P-Iri z_C8R%y9NsR&r5`9IDtG-(bJ=QH}vO)BFf@xI(tiQa`)TM>0mBM=;r$4L1#3{*8pIb za`y&$f&XbdJ&U@Gzns0@kMh9d7TRxQ`SdXmXa4rBgl7pmXi~59KMink%s^4a(-WVO z$l2Ng-~sCn3#*+4q$|TwZ~&5xOi%?mlMEs_DHz`sXRL~jq?(|aU|7L(W>;e+QpguM z1^2k(T*OCno9^KYK0jXDKyyd|(F8Vg-fNMnR}FFiB`MMp#%{p!k z_qXh3FzjtQyge-8i?vd5b1NShFyO~X)TGI-G!NIj`~Th;GbV& zc0oO@s0RfCik;6YR-|0kW?aCoNTCYr#IvmyrFZyfupIr=EUJh+MJZQIp@3+}Qx|72MWEc3t z1vc(3`LFr4|1!6G-0_2#9mUjY{$ry)XlDM_Jn>tKKJ*8*QT;{``*gU9-4TaoO}*y9 z#Y8T+)bI><6za{UUTLpPIY&#s;8gv~;(5m|r7P1NdZGaPtmvSW=M^-Hkb+PVI6Yi% zL*j5img;hY4EbmGi`)lQ42^gsD&qJ#FD)%i_;0CGU(y{ab05;S)4g#I(f7WyKp>yY zqH?}y1TKpCTkVOeRIXT5C>8O{^A|ycEk#UKa}nPj@!yA5?`PD1WL;EdYutMYrggQX z{a@IPQS1&&hl%(2Q>}*XGH(6R$vBA|5&rw%NSwuA2kndmN^530Xq!#@xuRS%Js$XegGc>L|N;TS2lXS+vY1)}gsuhi1qToMT z{Kj)dEdinOU&~v5injCB*!J(K@1=ik7udoqs6wphQ``u_U23<)+P>Ykj^Igq51jQTv-r}=#!%wXb z)Ml*_v!_fzOnSGn^L#|o{}66=z#nIEEILnw;fGD2L@oYUu(b=Th3g&9{FZe?%-fVg zQ#1p``i)&kH4(!%&1cJ}Uvt$Ev{qsZJ(8@Qp}Pw>X-lq^ITgmT8Yo6!D$R`%2;R+u zwSmHJ!ZSk+cfc9}H~tD)E0ilX0aC^P&Z9VlqRK2WgfJ+R%W31(pN<5{@&oz`qjhb~ z!iC74Db{18j9utLm3O}#OaMAN*sABY*o}6k;7yeSOXrh|f4FA#r-nY#n5fTDmV5tD z&G0(X>HKdGtd+-g^UnOPvC4FA$T@)(Od*Blmv&Hz{qU2o9Ai{`Yq*>hg4l z@ewOVX$y+t*Q$`KqL?q2K@7C5yo7arZSn*h&{jYIT`zf<3b8Km6q2 z|9F)dIz@bDEcpPMpnP8<8HW&)e4#actqda(0vuhN-+@IP_Yj=7Aj-}MZZCHEK`uTm z3guK%DO41K39Y?6VS7~LwV~E_`V?SAn5?y;bPH#JP)1Sb2_RJL!N9KlW%k9>)PmwN z-wbNV4;4TO6KU~549+cW-F;)tJ^uzfO2?vaEmfpnI{M1xp_?}bE^g~LPw9|#A?g(L z{=PeGW*$;J1``w~oHTe#eh4B|XL8%1_1!rDPRLf$0z!il?p)nGPmIud-=$nb0)dtv zia7eQk#0G~DtW1c zAbCDX7+Ht3OMk)ypT@?S_`Tsl-8@aA&NhJ@uM)trwWl#ZRR%w$q}eD`pis?0Wm#S& zzz8-d$fcZ4xq|BJiN@*h3xFW`PbUxKUx4$eJyFmx#|JZ*3qmz?0P~~K{i_rf!G`Zv z71^TTu2kmFa1Vg&6!g#~4!Cf?K3vQ)feZi4pv)QAB0$iwec?NDON`?Do5{yAO8mkR z^g{u99gxJbiTZesRT5VU{;e!co9MPN7+h^TRyP`QX*Q+zr3d}wE8nE33%I-1RZ{Hp z^Ybn+rD`m`I%E8>To6AfMQK!-@=zwLsM}c0jXc3TiJ7Pe{iw8}CPE3l5+sCH+u+0X7CoigCDrLw752?_;FYSzCG3M|*TncCsvdgZTpHsb%L z^t7U};ld8jzt1aKxUB@$)Cr<6{{hC4`3Dz-;PvMNLOF?!wHh^Aq>m<1siH|Du__fb zVxn)32ulC6ziXhK+c6}NMCMCoACPA@Ew@A6N7mXpF)%!`D9;v;s+8-vCpURM)Bpag!5V{RCQwzfevVo)jfQ36MWt-&GI=z{ee~{O}t`IfX%*Qxa(YWM< z@ytPTBK^sQx0m#+km4oWQh9owBuV7mHXre^!yF1N_OHv2pA8$$<@!JKNM1#di;?c? zO-W~1{yA5~yEs>76z3X_riVRJ}bzk&)z&r*c0}Hjj(PHH_*N-mO;s z7sH;y5oNchxGUb@5fta!FsLNPFC0Zv5qt37HkAJI7?Xx;=4}(`xpp|FceyvQYI5nd zFnMF6iEzI5HQS#KNE+KP9NfzQ3v!clii2lk-uyk$<{2ofDKBFxHIDg(0^10|jP00C zbXCgXq+=FM!Oe_Mw2s5=64m#{=3N|c{YS7)KH^`GO3*Er>Ajm@doBRe@;EJ^>6! z9^W1sn{ckUbyrG&XZ6>sFT6->tqw1>Ei#`7)oe-O-`Wy5j0w@B)(eMiiXtEb7ZSMm7% zgYsr~b@TSoNQaK?2j9lX&Hw^YOX$eYNRIuVR{Sobvbg-JpUm~MFT2s=lP}-j*URIl z)`%dDw59cr7Vj967rWI9jQ9mY$JUzzN=h-X3>XphXXGF9Dn)bORYy|Azz+2NUuGq( zW8lkM;KHWPMWT=SVxAV<>*>mo@h>3Ud{@EJ%M_-BC7MLaWw~oiF76y)Ze!eeO^?6T z{&pCx!h$G_IKVv9^oL_d&AEI2rh_wRJCQ)niAgE1zJtqc)M0lBY<)!)ru7U`zU5wi znj_}TzRE|(6C;>o3SuVuzmNBSLHNv-Cjiu<`{e^r+=uH~yvl4f9RO)I zk0KKl?z48@45Q8GIlt*IPkFs?xeiWI+klPBXEvXSiT>*`eqi|Cw#3_#}9(Y!Ad4+eCd5r%&-32gFe0z`iQ;)6uRjbn} znKgDT;VcZkfZMF$VBA(sz;!;j2$E`wN4~--@4lDFXEVElE3b@Ti8AHFCRTMI9a@E; zGl{ywJE=|FbDEFg8s zH#ABfsIw0|NmRCb+FiO@_kN(pg(3SLY01DuD-Lke0`I}oZBwLo8Nbgp-K2y9gE|sR zk>TOtt=!;eo@6TdI_5K2A2QHs<=n1^xAF^38ljsh+$*B&1do~Ht`Rtmkww>$DW_h` zv-Q>Hur>*IHm!+ThwcGQ>jCvA?}z)HwuW6b?ww)odu=t(up4+@^_0YI0#<~}h_JBZ zD(U4v=u`X2xcYLyRu1<@!_M2R4!C=`DqZ;fQ)}cq*w%J9&gODe^i1~lF`S9}kXv3> z*f~1m2fV95AZYyMXe0B;O`7T48l%%>lJnStL->w}cRxL1a15v3uoBg~M6|w&$As#Y zpvnF7v8I8xl26@M!B9)TpJB~YJ(AFw%wJF^uX<>=?JdmA;N>>HGA_PgLt(HB4!-qH z<-J{&y0OV@nla|zcJqz?X*s_+XN?6L1_VTa6Rw)8%4=ibOQq9@j1NYDLO{uT{>>xU z^kFh!JQD>QNTUCZ!-*O}cj(8taId(`EeXO26hfwyh-yNDgR1i?7O?~U2vvuw8>n%I z&bPS}ni}vMdbID%B@db(T~jtDZ0yDh#yeCJ*$OwC>oiQVHwkhIHJxwSwY>wPUn9d) z-I-^oiA2&A^O=66W9vo*Ok~DyNK*gq>G-J7rx~_PAr}*Tmt|i4VW)M3`Z|#EMqU@i z_Q~w5tNlbEI#oK*G8t5PEkKkwK}Vy}nH(2(@6Ta*+EtJ+$9vkD@o_RHN3-VrY-23` zLirwOuTkwVLD!(s5v|;zvId&87yFtJ5>AlaMnsalYjIQ~!V-k0u#dtb4v7r>K3j9l zx%W-wnsZ-t;L-pB-!W2k0I^fosgKrki)TYFT2fT4UtBYM&0}B1G$PLDkskoty)Ov# zSq_DUE4frFWDjL_Wq*8n2=5&=G_~tS-@ouOlG;@aZ5#fhX(1wB?*j}SJ^6oDnceTm zF$q>m#-gfWGp&QYZNq}(68S??PuFd4&`2b%FDpVL*o<+rT1Z5@l`e^`lRMpz##5{BFZ$ziLxd6{-W@Le%_f#SZDfZ%OFpF9r&Ck_ zS#S;s|V z78F2o`5*Phpa_pPD(_E);{eP0`F6!{V-FG^m#%dsg7yrMDjv(SugNRmT@)LzK0IQE z7T|V1uCx2Z1G1OPJ|O@O7Huf?v(a%pJl&`tYknhDvssQn{7yxHduBcEQ6Z0lBjoHl z!SOglR^ZNuBvYx_*s#54f)z!0vO(b2R2-XKtu3!|HZ%dh1Ibo0LGni$Xz_ZJ+Vsz#*^#RapY8ANn|AA9%jha z+Rae^Y=36|3B(tFGM(CSINdR>y zZpD*7yAH6@w~vAO!0b~_acOZ0)<|(Yquixl%FkRMEp>O)L0A8>lfpo%kwyRPS6UG2 z+r0dzvPO+T!s|H}11NFu|=lh3hh%KRDfW(abY!dj^I$w>{nIBNX!2!#B= zZz2IS$9Qqcb3@z*0CN!6{im+NP!jv)+Ax}xg~zmkz@s<-dF?d`${Qd?EE9iEem-E- zHa;;ivDNv^;c_y%y}>wkSGRYtCHAYb>)-Jr^=eJZse<0&QJ;*vYZxSrGwz!etP}V> zDxyej-a9jhJ=q_BY^0TY(etcA1Fw)Ya<=rKJ?!305#jevC`A4BTmo1HD8Z?tqu_V* z2f8Y#={yVjdCftM=5uPab6U~y=f`p)?i&T`g@tOwiX!+gXm4WN_UEqqLf_+Jg0b{Y zwofn^wTLp}L9{u~*lJWrjRuDuO(b4N25CnY*eg&-9C*H;`vmNIbh&BYC;agbTOUwa z1_{D`Zx6ubeIPAFdwYS~%EINk(h9M4@ z<4Scp&!;w(FC2;Y(nP7xMPN1PY&DZ&UFN9@Tf1@`dlRLk7fZIeG`44zP9esX6D*!4GN zmoLz-D1u&0mab2QMzgZjG$(F7B1KrM+egrER$whQg&kr$mPOBVns&Y-zHHifbJHw- z_NxZ!g5{dZPHp*v;0?yPxD9fo@YJ1BO>-`^AX34^iwb)}WR;oJ^E&lR(Dd6{5N}g$ zW<}g*r$QR)Nx6wSKikruoNDs2EJph9iz~lfCD9`FHowPzApgB_@F7;_i9JpHT~@Zs z&YJ>fU3aFJ(YlkNxB`tatQl@Q_XY9>%_}n}?W0#>?$Do!llvN%;QZzte?9C_=7w7> zU(k>g)mj@m>n7uHKg!wO_D`1_``52hd2<6Xs7daU-|^)kpP-rv2_KK>{+NBpaa5)Z zM1@F|E_&DQbN^M{I(eD0*ijP;q&7DhTRo3#UwIm^3(Zgly#;c|I<=ysEVj9c%uCOg zAMQ(=3H}l#ao5bp&$uDhwRwS67pCt^YnSrOki7%`S`~e#{xX{pZ|Tox@nvpn#M;Tn zN4MK?-U**$bW7j4LDz?ieWr9qI>8>AA?1kbM!%~0M#tmctQPU&LesX%kZ`h@!bjwg zFBxb2TyCUln%#>r6b^_b{O2?p95dpxgd*IM$ZMxtJC3ir-9J2px_@9W3S0xY$jF{R z$TqZ>HSYcVHHg2iB!b{Y>-4CM(rwSL8gClvwL|Y0-rg!0x?#gQF2O9$GnmqK=4;ix z=smJ20V8IwblkJJ_mM`7QI}Z1{05T1fT;sc)x`dCp7Zq=G3l;|Z$(66#6%N}O{klr zT`a4w#}kihUl~|hBMbxYpO)g`>N*_GU7a6E4vO0GddOmj>xU{q)oXimcLEWd2R5o{ zj3c(?3nt@}<$KCI1He-kBDySH@T8o>l+=;jrSH+v z@TaKbNSw~~925LP5SWmi z_MLnBYCx|*O7vA)@FBKKh*%Vg@N>Vjwe>%+3V?ydzHW$Xf^XD6C5=1?Af$C0Dr-Fg z=+mdN;ug^~aMS!xLC$jkXcpH{EgSQA{*hpVd$T6RXb6}#016g`qB##L!7l=3jk*gf z0T(9W8PjSGM7aYf3M9u2%x`1xCyedq3V({fTq#dEi$y&i*D1AUrvMT5qkeL4le9n$ zk&;Vozzvd>%LOsz45mE#8B~u+FGdeUe)O6GUxtPV>oQJEys+>u0sv0#f7x_E0;c4b zK}Bgi=J^8YItJh<)Mi$`zWWRxSCDQu`PuEr4v z-#F{IM!dJ&{uhM2YgNk{ioAT+;+Lw2&-xzRj+S0-lqIfECwc-mjp&_UD7SVoxCM{r zJWGAq$w>ld2*>Z->e5Lqxd(M5fLk{mv*oN?sn30I+CAtvsIozU zCb-(WAJ+80X@K#>qB5zYN|i9F;?r)^?^bC*iYz5k7zQ;6mjoFQm1`qH46*2!e>>?70LG}Z zR}b~Z?6|4|f9%)n@dz)0uwz4y_}50zgvwOjB6-Y58{Bke9o(v)JBP2``d_e3l3y1A zy)5d5h&g3EdSMd)OVnAZDdmP3O>u#?6__gtx(TwfmSSD}04Wh5v#0r0w5upcM&-{V zs&_x`;$rI|MXIZ@UgOfn-1&U!mW_=9{Ax~;KT5M1BKYL(JOw-B`BLU+z0fN9j!0=R*WFVkIQrGOo@Nd5*h+#N@D* zf+2OWFBHsG*P}yCH?8wedXI;qlKxZ%yCe)F`EX#uRM|<})`*j(^dfRj&_-=R`=6K$ zUi`z27dlJ4PRH;(QW!zD?j|{T7*%tIaIuTQ8`d30sWqaSI5&12ZLD~qn>XFEs+xH5LO@d* zEwxw_o75wSZXOwUs3NQn-=-&UcE6GLfgnMnBj%P7=M-~|SV7|6eBgl5%&~$`BPGnP z9oy`UQ^*vMQx3G)Gup$v8yzy-h}@LtmF0%$_`gZNEWNu;3QMu7b< z)+Rr$V}8D7m}}(F(lD*8Ge??93A>A|%v}9IhFsIvYr~KU#{V8k3QDA5;qsS|{XYnk zHR7J2{~CyB01beETkpp&zzZ4$r&?e#RTyB@T760Zst~?KjFiV1yf@!swV;(Akdm_< zaEG_-4gn5PJ%IW+Z6O6rGpRgAZKqSFJHC2H>g>rNK>Mk5oGfV zlOmlVTh=9N)5OOAq$R~(HQ3)K-9@6nhLkKeef87WHgq$mf6`;ytg?mlAR?=ztQ^F} zc_j9k+5iF~l13UNypDb(+H2QPue^7dT@gv?sG?A9rxl1(>AD!_pxLr|6t zc{^7ko`8H>&1Z*UqZSfX<>~zs{zH!+KMqCJ4ZoHF(YjJ*k-*BrO(y>tL@h*OUovZ| z#~SylbL57I_<^=bD)Q^V(y~|wPYvYM{@nR7M>TZ#g9*KFRJ3Y!9p@r{OEf6c`G!No39t6t5n)l?B$c@$~h69DEqI{0Cv1MvXxy(}Tl`rhV9 z`PtY0@|2vjgRR|N^tm;&XLt@gFBCUBzJYLHE7(!Q+3_pL7@3AMy=?EWXeF?`(9DW4 zpc0xQad7Vt;KZ#A*9enx={Y>^U?9CN+4y*$xsZ1|lvy`PFe#R+gk$l|_n|O$rUajL z#p`Yg%xeIwLU_Z8ImGdWmEb03WuWcLBZ%Il?%?@z{pFc{*`fZ%y-=*=0-?(-IB-q}<$`Xm^ ziULUvxdDSy58V#rC80wc#2b7#JDayW*TZR;Hz}X-VnQAI#berl7sjVgktV;)j@CC1 zM?(oejugdDmWdm{=bkKos*PXr4kUOsDg=2jlGqe)@^&>TJC1yg$TH@c)_`b4Z*Xo z4BzixjURqqd9glhxc~I~#t2e<$;QJ{(i*X`+&;hs79#1W+zc@ofKifRfSd$??zh?6 zNJ~`a9O&{&c^UnAYO2nv3sUCr0AeXudu^eqXp5X5?FXQX^)Ep6L!C+xN=YMdTdIwu zD=7g>Zk?GK8^RJEUL#H(e}k?LO55d38@I^(T}V8AF!`v@W%hyqxdC}*3Lu0Qt6KR= z;7%9pJ?@V}P`Vt$U)vJFGNRW@hMxpnO#K;H<#G?C02_*n1wN><`;>@vNtAcj5XqzC zJ}fz;pBIVf6-V zVuk2Tf{18V?S23NP~O}+bHM-rBqW(YQ}YN6cK8G+b24$1?g*l{KvN=Nfv$fd7np@Q zDZ=Q(8Er+>$p^+4@y$fexZfJ*yYm+cOa1qqtW=()pOP(!d8Y zy*baZ#F0KwT1#z~W+s$|6O8G5Aw*3b`1f}jh=vI0Dt`a99Y8`s7Ys5_PC)0~;R)5w zy#?yHn@5;z=@UD*_U1MCBkbQ<%|7OYYARfuJUd}Rz#+-oXuqZht<0R@?!&C;u#j?o z557G3QMXPB>B4g$Yyl$ti{UJkT`gjbXL>sWxIlmz$qcKx;4JzZ-WPn3@%!Wxa@Sc~ zQcc0+0o6-UNb&h1AOktuVk!f#_V?>_*AInD6?F0zn`3!0yZJ!ryuS!tVQahI-4V zR(;Wt$q3Ug-!}&1-Q@mWjMh$}p%5`KA9>j=U-+taBuoQIsu-h{D&uQ-ENipd% zamL2VM~qX$m^^9(UX?`P^KxOe>0M0XomActtfAZ+W>mML%}QPnSXon%79x_>D_P>p z82pI_o`K9_(xS9X@;*#O5`_Z&439m!yTceILUBlG;`*6Chex_gxOD4v%BK&DCnuPP z#mBlLnw*9MbI0FsIQ@IjlF0i=0OO7;Z|6Bo9H>7~d!*L3#z;Q@1BfK`NAml2-#3j+lS{E(z zCc%HRX7u_U-G+S%q4Aj<=Pt4{*rpC0bLvXcu16Jl7GAAk`Rifix5zL-YRx@mB5MS` z8NS6K;iEATpZabsc5LuQFzBG(dnVaRU_LO1X!J6{{K*|}-D8W+jH zTyc{Z0^%Ro1+KgpE{wK){WgLy)`rx&DqUQ=Ko?wjcg}z6Ena+mz!Jw67f4hnEods> zO~v|dp?cv;Q3zKh0kg()rI;K8-v>8o(|??q+ibltKbzOWe%(N{ki-TlK73fgjB(V1 zebrVsOwczhn>MF%k!-xh&YEaazt`MBFpB*4t@HT@!PLXr*yeo~iiNDIp(V<9n-||; zb~jx|QYDIdEy<>9fad?%MVWc#RV~BQmFT4q$_a(21Xxlq>aIdMNt46}%6eevYsxLe zvGy4}$cCAZ1l6#$aw=NsJfgUH2?xq`i-sa>0cumbz4=d1(~+|cCdSx5=3};s0>W>z5zz+~=!i{`SFeT6?q2i?$Ccj??bMY+_ z1Af~3m^G<;2C6cG9f&@%qsqPJn66$6B=oVUFs6y_^XIAa5m&>ewazO`jt1*L4)zMV zyP#gKqF%u2GJB{2${BG5&y6|oGQ$ODekoK!*g?`jc1erZej{e9y$cefV=_>?X&S>D ze>}n*^6W`SnP)Vp*f{vB@ecv43I3PAf0>ggI8tS3A9tte)xPFY6%mu54^acVP#K99 zIDsCxR%G2P0~Ro_+czt$TflouiEO2tan>IOr{u!^5&!#D?RJJRE_?9br6pis%?jV# zkT?e<8kIRg;fU^s&;-txLxu7Tm?If8#wk%$QJt(Vw)!u6h}x~Bw%U!24Ri)ZRd4V~ z4n1z6p!N{z9gJo%H2CLd;LSrox9g*18E$f6IoH+KcU}CxIKCMF6;mHWV^-LWu}LIE z=*1WrLn|BZrRw1SE}Qw{c#OuxF_c(@ZZFe=M-WS=liJ%lFG0UI;sjIqk!{}O<6?jQ$nNK>}XL`oW`0>=U2u<;SKhH7#xVRaM8pA{W zr)aHYP$k^H^V8_&XM%+=@8|qN){k7H*n|j2^H|(ERFx2l86+E&;GrBFFj| zj;8GBvSeZYZvAucCQqn?LzdIpqlm;ND7#6&7mMVd=4WvYhT3-^RGwsxHNY+g?UTnR z*U$5u(F-CGNg%@Lf3#b1&FTIt(zoV+KiYJ~XPKCHNvlf!%QKDvZNr64O-@rOZT993Fk2g<0Te&TblJ z=hV^ioO!Ex32t{dz4n;;~i=rRIuo}ez?EQu=!Jeg zVjF1zfu5$)Dgd=Ug*Hm`BH`n$b>WOEloV~Qj!Llddi)k%(FRf#w{D#TZuOh?FI=1 zk;9ZSOEj9i7G{4K;z!^Md=yW=ZLBU*74XzEnJSm9qsJPz2UvCauP_R60pyQw^OzWC zMLKEUMi5#VN6ZBC2U0$e)2j2;Zk9K{GGx$kA5pvl~TUbRjS>F5=pC&7bW7)c5maSCpB(Uq)&AYk5Z%< zAETXr>IcwbNcbW2gB120sfOjPIY^L~^I$Q@-CUW{zo1-bYHqHTHUy^ax5uM$jHi1b zu)+f4X5c2@H+vR_l76zYek({BBwhi@Ty>)0&I7TlUhRksRPIl&!3V^a z8K$R^hsDQ{*)lbM6)lh+*Be7OvvA7mwAR*_ ze-2WEg@1j_i}0?f9xv+u;|-JtfiXM3|M33NB7&-xkL z3^|8P>xhbzu~{QLmg--m)h|^ap49$iV(KKP%b8ok{srt3BxaE!L{!)|>q3!n!bjDN zd-gvYA66J%&qi;9^t~b4uU!qh0~H-N7b<6Qke(@TO)5I{dy{!QdS>WcTuFuNb?gK) zj5nTBc>0+?5XxAz6%mEczeriP17a|*7k%#Qn=z?oHnFcW>4U#bVVe@o1qtD3rfiSh z6%=nWta*v^&jQ~e(N)rE2e&cudt~C%ic{cNxHx?uoHJ}Sv9Lhb0nCrSclt`toPxSAl^agIhQnf9@p29 zj@2kPp&2q#K`&Zla$n5Y&?9rYNsthG=WPRUm_MY`&&`F;_E%2DYZLvO2OMqBjh5N9bXy;3R$eJnszCl zZS9kq))j}R(=OqPD#QxkI9F9Y<55*0Z6S$F_IbC;U#q+0?{jC9r{&D(t!O_9qaLvNj{lP^KD!Sm4W8fn zaykc3IGM`NZ7S=BnFvDNW~A90U1&LLY&j^!jn+gr zS(mR4*kK{JT*8Z3#wy(I2v4*Blom&69WXWnx0@(WGHx_Vl+x@9F# zUDbcCG&sP76byLG7*IO<<0ZA3@H>N~NU#FrN4CR0EI%N4(&6qBQyG1 z#>58J7Gw@dq?7PETI~_P*c(shdkXrj>UYu;SN;Myf^*~#AsmkkAvD=j(<%SqZZMU9 z$BdH^aUY*6VdRg+Ss~{MPTg<0Ah^GF>c>^s%>3LO1IWYgm{_QAdt>WNw`E;L$So-D zvJ5HJk^#$3JnDt^;J?C`O*>DIv%Co&@doYnVgttb2$;GrhJOK9hmgzDxR2b`B6yVj z+=`Y{7Z`dDGe=S)YtPv7eoho!eWWtfFy=%m3;&hbu3t|#Yu*Ca#m(uEBjdwCf%c*I zi+7iUgh8b~W$NK+ReqScg)o?Qm&*fFG5DekYAUx3i>HnCY~&rw_K}~BZZzRczgQ&i zUHmCbVD7{~r=H&b012L&NSe4`8D|H}?SS*$7)%GD2dLKKn-2NGAV=QLx10ppQ&x{D z{=QOR6hzL3%1`jLel#T#83_-a)9EV_n{6P8g#-!G%es5<5}dGd&4j+BjTW|2)9E;X zz95){cHoEfn8B2iO#EqqO20A9c)3%JXVIXrulQl5FY|028(+x*mOHRfPTD9hT8JR` zq@oR$APo%qFnvSKhSeI$mS`=iCO`Jf0~JxV9uXQtmfXiS?&x};r6g&d*(#Ga^rUGp z;&ZQP6_qLzJ%L9)sMcD8IZ7^_!1+;G9|B|n< zIv*1rCG&`A?IBh3a}odkkK%}lA||Sg>q-~)xHGpV&1|p93i2pZ7S6vZjOxk|ufHpT zct8@CauA82fqL}W?Rw4pOb5DCjz`A8(z`I4w^!7`2v+!jMQE@7j_K4o$pdIfhHww2VASkwewf2<7vsbhxF0Ns4X1^7b$*d3*v~`VM zY3lAZAjj{3N0F}-)77#-@O*5m8LX%Ba3IGoN?ZM~uO(6$K9JJ%z1i4u3}4IrRjM$e zCXwPRfE7tIWYVCp_$RGeZ#Wx&{!Up0&CH$4*XYVkl<1!UL#x-|Nxgd;IcAYqq_nGhWQ#6jDHgmqQ-9XL>WGJ9Tfd-RZTqivHx|p>mx2qQ6>~OD0$ZOvN zK}LtwNi(vE{Wq)LDhnOzkF329(iHjkUsX@uk$$&f%4keiGn49cyhE0*T1O~NiBzWM z(gxKT;+hb(UnVxgT&YpV(hZXfj;c%V7}V)R)XqRrHPfYOkm3y5 z#sNLPYt=g@0Z@*$?iq@f-Ur)(AmNBtF-Q7fvo8q-wa%cJ1e@9By(96!Z1(MuXgTC+ zGs1|>7)-r4vo>Pzh3x9xyv1nC-QfbNu=mYI@#1xe9P1Mx-r> zMS*ig`h0km3H|{5UthY(;k`9&xY4NnYka};iuxr<&{3WacPf(j59PbW zXS#f~m_X@PS)F*HaxC=R!UEtv9JPzf%636Z1o6MEghxOHCVkX>3xm$P!ZTNVyUj!e z#qAX~Dy=ZXcw094IfJ|-RyDpkocXL~JY!&}33Pqfl_~sbX8_i?Wika%z#p37v2bb? z&|=iCEnlWAKC02e8Zi_$VBUp+UNnr#@{hQ*gSe#~MzSMtU_KPcHCnUpFJI!E&$I!r z_k)07&|zz_8E}$EcdZqy5lZ>C?6{YC^2zTG!Bj=-M#c--txe9x0Zm_nC=BQJh58sD=iE?tHIh0(}b}hV{UoGQ7~kn&|#O zc8M*99>%YUW{2**A!Z4cDDeczd!yQX>48T#j$lLLvmqkD5XYBKaG%r{(x4^AY@@lg1)l8hkt2JwX-hbFa#)1h374xDVpl_ z-<>KZg!WeanjZxYW-~g;b{K<1|B4K5c=>1=rG<@S%n9ztJ?L$uLYgi*k^F{MIPIYt zjKV2<7d5%2!jLC_@}3NqvEF4VpR9C!$&6Uq^5Lp=lk3Fw!pv|}w4*pZ)_sMJ;)e~% z^o-u=DCvIJ;*SKw$YaTy`dQ#XD!UiYSP&Gz0x6>_0yUgI@m_B6#kV^exNqmy|IEMJTs{7*&j zjDABh2ZndVxM2XQ0CH@08(L~yfWAPv;p8LF&Ztre+)jXIHDyk}ZK4~kZ)=oq0c?B+OOPP;8CppC zsc(EdXqpTLry(f5D8M2pZvMxhNe*9Rfqq; z@`<}YNYFn8UjeZhOhAm(tSab6uYsM8N@0H}>4#_s4CMLxM4FbCyKJETUyvs6ugg zEy^)vyY~R$Yg@7D6{#0jsr_M*VA!;v+E?X7^v&Wc7X~wTxd98%R3;Cn7j5yy)QgAz zMr2Al^qX+Y4w$n?-};Kv)BDq~P5qGtAD)Iftv}n^`G~E1yILSV@RAv;2*~I=yjIq7 zR9oCorIBL3=1+!2HkAheD+$`@@@7UAROR2Aq2l69y;nm0jQJ(6Vy zreoprW#1pIIg$9`7lT^p6qQd8Uqc$0!<6nXUTHLGSzmLbI|dDuJeKqWL8lNX+rY>O=dX+PQQ3K;tKd*Q{lEi1@20Eu!? zk_AQ*jY4eNFy?K#Ji@<)OckCbQ6{3$&0QK*Sy{E`MG_=i&f|5Z!j|hH_s;O~_Jjz& zgFbIX<>*imHSj!F;Mg9j zIDA;YN`*%#{K1}i#thp0hSjIafcyaba6o#l@JSZuPU5X}zw{gzdBi_oRREF$3$d~_ ztmq(BBDL?n(E|zCD?Z~|Tv<|*PnL9clB+Op7L7<0AVr-#H$R$*cQ<53IX8T?HYs_* z#{A4(&xL8)MsDWeR#cUQW5MLG8t)qelVi9k(e0nNlH{4*?ePz~M%gi2zI@(Lf%EWM zNJ=!w&MtNH3#oEA22G~{FnLftcAkyedxr+g=|xy2JLN8JNTJH z>&k6w3SHi?I`1vb*P*;4@HeE`2t_&)(Lil{uK%mBGY@Ji%fdJb1T-BQq5%Ukh_o$x zgeZuJ-C@(PRwf{uAOQps1jAxLK_o;GAqr{)1edTQn~_B}i6KaEL8WOyQIMd3A|Q(+ zi>*C<9!^iqOifkiuUDyh+r9U_cTSz}{63i~6C!SNOjAS~BR~ni>WVRxN!G;8WcZHQ zF-XdU(@s{<1`Ocub*Os*xLdZr(^ib+LQU8mhd1kdKW&kb-j;JLs^@-_UP->3=8V^g zw#(XU)x$NpKJqR?|IFGE8BTkDp>bof4p8Wu6{7BWirjrrvW+fx()VWxTYFl(YwI8kq%U%3Bh=q~)Ov@l#qy>o5~Z)W{7 zoS6W}LwjT)bbG^l&UZ;T=DkNmW9j;>_@J8(U5~Lpj27H{b14-e6%N-7&=~C;Yx>(ZeV6yR>aCiB{;H}h_Nu@4MWU5Q% zkFUdf0+{tfKRp2Yl#JS!llfo4FEzL2=i`fapQ3VT0R5|opP#(1&Y7*6BF6zRHhs+| zFkQ+PPL3Y-y`h2?Jpo0tLpgg7Mcq)XbGW1`@@+Wv*=%j8i~JU4Ij#JEmLDKj}naAADQPORmxRe9<4rjC7SyF2`z{{V^k?buJM?%b9L zO7oPeNpvmZq)d||&55g8i%_EW>22|PH@v*HH;o1qI!pUE2s==DzLsNo$}8g!vL}ff zEYsG>xt~~ynHaawTN(vE7$V@HV0kprRcDKEane9RA2V*q*9h$Yw0nOCQ@3ql$sk|h z;UdDq;=wBoeIdHx*3e+2fJ)pRsgLmMA58*u{!$}Yf;!nI^e*_VT(nZneI(p(*O=Pm z_zZy{Y&{;IKcV3w9WX7i5=lZku#HW$EENThN|hrs9wgo55 z%&q5WGzWbANbXj2(H;!9O;#Rf{^myBtF3poHSjycoe>($*^V`!sWasa-JV=kx%+hS zHUZTg|GB5eoO5BjgS^h$p-)cBS@16O*aQ6ZzOxH~hVqC8(Vo52P2{T+CgH06pA=Nk z>hT`}>)2nuG#T~+n8FmndV!N#fIxpp1BDdriGN7)Hs z0DWJMJGd>y%+kpFt^|{_qyhXRg>!|ABh4DmD^pS%^|&ur<*<0!*PsMJV`2I7_C&l6kXVjj4+oj{d$Dx71pG+!62 z11y~HMjddMg8;3flWubaYNyKS4}FJaB?_!5HX}YU`$n|XwJD)A+1dX9PPTf^f0MVs zoVz5tX>=V$iBb$D1>QfE5{_{o7Osd-AvA_mYSjP{P&(gJaV$@G9 zH}b>HffTB_JHY_&FR3R}-M^eP5O?kMA91;IBsH2=w7U0JpMq{!%Y0;#;!qz&NETzr zc(#o(vARoB;^Y0W+p+AW!_!Km_x7@jr&?P*tv^bMcTz_juv^N|XWExlq|2vZ4V@J& z>6-0nR!ge$-D5`H#0l39OQ-(2_HC!cF)?Y%r%q*`++mM1B_>boK4!BoqEE5x)V$1h zHP9Kj%yyZG4ypXt9=FEga&^*VR|7`8TIxRYnD_NcQa4x1U z-e?=RA+>|*{EIGz})!5KnRCtp$EsFAfQRRes zW$Bl&SrEC=fi<^}Jk1u{W|hf4kvZ_{AeWGHvh<$0?Z9i@;9}7RpEi5x6^?|lmyu!; zHCq&O4uLlmq7z!Q$#bDGNo~}9WP;1OrZ(*gYo*C3eUy}!jLmKmI`|~++AYUbbdHv9u zzX8C2&qFJAFf2dd;zBC+qONIbZ2E-Pi}L{9+I?q+s13JN3B~0ZLKC3|(E8&i97%hpMfR6e~i7yYnQ)FY0md=VuGF7V=bi4VLoLo_Q*v@qpRoUV4a z8igCDd}N$~c;Y{aJBbj-@t$UN^w8S`T`1pHqO{?=-jBTv zQbOn&M34`;reV#^&ER=j{c-4JM9UP?|77`PrX3n;k`xUe&R65;{6BMEnx1k6I(n?j z2QUf+6%^FqpebstxOo747KV>a5-sVp67Gh=KXK&|XTW!rq{sRSg B3<&@L diff --git a/documentation/kernel-manual/figures/kernel-title.png b/documentation/kernel-manual/figures/kernel-title.png deleted file mode 100644 index 59d86c00dca5e2475f7cdee54f82d6ff8c027a47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13970 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 %poky; ] > - - - -Yocto Project Kernel Concepts - -
- Introduction - - This chapter provides conceptual information about the kernel: - - Kernel Goals - Kernel Development and Maintenance Overview - Kernel Architecture - Kernel Tools - - -
- -
- Kernel Goals - - The complexity of embedded kernel design has increased dramatically. - Whether it is managing multiple implementations of a particular feature or tuning and - optimizing board specific features, both flexibility and maintainability are key concerns. - The Linux kernels available through the Yocto Project are presented with the embedded - developer's needs in mind and have evolved to assist in these key concerns. - For example, prior methods such as applying hundreds of patches to an extracted - tarball have been replaced with proven techniques that allow easy inspection, - bisection and analysis of changes. - Application of these techniques also creates a platform for performing integration and - collaboration with the thousands of upstream development projects. - - - With all these considerations in mind, the Yocto Project's kernel and development team - strives to attain these goals: - - Allow the end user to leverage community best practices to seamlessly - manage the development, build and debug cycles. - Create a platform for performing integration and collaboration with the - thousands of upstream development projects that exist. - Provide mechanisms that support many different work flows, front-ends and - management techniques. - Deliver the most up-to-date kernel possible while still ensuring that - the baseline kernel is the most stable official release. - Include major technological features as part of the Yocto Project's - upward revision strategy. - Present a kernel Git repository that, similar to the upstream - kernel.org tree, - has a clear and continuous history. - Deliver a key set of supported kernel types, where each type is tailored - to meet a specific use (e.g. networking, consumer, devices, and so forth). - Employ a Git branching strategy that, from a developer's point of view, - results in a linear path from the baseline kernel.org, - through a select group of features and - ends with their BSP-specific commits. - - -
- -
- Yocto Project Kernel Development and Maintenance Overview - - Kernels available through the Yocto Project, like other kernels, are based off the Linux - kernel releases from . - At the beginning of a major development cycle, the Yocto Project team - chooses its kernel based on factors such as release timing, the anticipated release - timing of final upstream kernel.org versions, and Yocto Project - feature requirements. - Typically, the kernel chosen is in the - final stages of development by the community. - In other words, the kernel is in the release - candidate or "rc" phase and not yet a final release. - But, by being in the final stages of external development, the team knows that the - kernel.org final release will clearly be within the early stages of - the Yocto Project development window. - - - This balance allows the team to deliver the most up-to-date kernel - possible, while still ensuring that the team has a stable official release for - the baseline Linux kernel version. - - - The ultimate source for kernels available through the Yocto Project are released kernels - from kernel.org. - In addition to a foundational kernel from kernel.org, the - kernels available contain a mix of important new mainline - developments, non-mainline developments (when there is no alternative), - Board Support Package (BSP) developments, - and custom features. - These additions result in a commercially released Yocto Project Linux kernel that caters - to specific embedded designer needs for targeted hardware. - - - Once a kernel is officially released, the Yocto Project team goes into - their next development cycle, or upward revision (uprev) cycle, while still - continuing maintenance on the released kernel. - It is important to note that the most sustainable and stable way - to include feature development upstream is through a kernel uprev process. - Back-porting hundreds of individual fixes and minor features from various - kernel versions is not sustainable and can easily compromise quality. - - - During the uprev cycle, the Yocto Project team uses an ongoing analysis of - kernel development, BSP support, and release timing to select the best - possible kernel.org version. - The team continually monitors community kernel - development to look for significant features of interest. - The team does consider back-porting large features if they have a significant advantage. - User or community demand can also trigger a back-port or creation of new - functionality in the Yocto Project baseline kernel during the uprev cycle. - - - Generally speaking, every new kernel both adds features and introduces new bugs. - These consequences are the basic properties of upstream kernel development and are - managed by the Yocto Project team's kernel strategy. - It is the Yocto Project team's policy to not back-port minor features to the released kernel. - They only consider back-porting significant technological jumps - and, that is done - after a complete gap analysis. - The reason for this policy is that back-porting any small to medium sized change - from an evolving kernel can easily create mismatches, incompatibilities and very - subtle errors. - - - These policies result in both a stable and a cutting - edge kernel that mixes forward ports of existing features and significant and critical - new functionality. - Forward porting functionality in the kernels available through the Yocto Project kernel - can be thought of as a "micro uprev." - The many “micro uprevs” produce a kernel version with a mix of - important new mainline, non-mainline, BSP developments and feature integrations. - This kernel gives insight into new features and allows focused - amounts of testing to be done on the kernel, which prevents - surprises when selecting the next major uprev. - The quality of these cutting edge kernels is evolving and the kernels are used in leading edge - feature and BSP development. - -
- -
- Kernel Architecture - - This section describes the architecture of the kernels available through the - Yocto Project and provides information - on the mechanisms used to achieve that architecture. - - -
- Overview - - As mentioned earlier, a key goal of the Yocto Project is to present the - developer with - a kernel that has a clear and continuous history that is visible to the user. - The architecture and mechanisms used achieve that goal in a manner similar to the - upstream kernel.org. - - - You can think of a Yocto Project kernel as consisting of a baseline Linux kernel with - added features logically structured on top of the baseline. - The features are tagged and organized by way of a branching strategy implemented by the - source code manager (SCM) Git. - For information on Git as applied to the Yocto Project, see the - "Git" section in the - Yocto Project Development Manual. - - - The result is that the user has the ability to see the added features and - the commits that make up those features. - In addition to being able to see added features, the user can also view the history of what - made up the baseline kernel. - - - The following illustration shows the conceptual Yocto Project kernel. - - - - - - In the illustration, the "Kernel.org Branch Point" - marks the specific spot (or release) from - which the Yocto Project kernel is created. - From this point "up" in the tree, features and differences are organized and tagged. - - - The "Yocto Project Baseline Kernel" contains functionality that is common to every kernel - type and BSP that is organized further up the tree. - Placing these common features in the - tree this way means features don't have to be duplicated along individual branches of the - structure. - - - From the Yocto Project Baseline Kernel, branch points represent specific functionality - for individual BSPs as well as real-time kernels. - The illustration represents this through three BSP-specific branches and a real-time - kernel branch. - Each branch represents some unique functionality for the BSP or a real-time kernel. - - - In this example structure, the real-time kernel branch has common features for all - real-time kernels and contains - more branches for individual BSP-specific real-time kernels. - The illustration shows three branches as an example. - Each branch points the way to specific, unique features for a respective real-time - kernel as they apply to a given BSP. - - - The resulting tree structure presents a clear path of markers (or branches) to the - developer that, for all practical purposes, is the kernel needed for any given set - of requirements. - -
- -
- Branching Strategy and Workflow - - The Yocto Project team creates kernel branches at points where functionality is - no longer shared and thus, needs to be isolated. - For example, board-specific incompatibilities would require different functionality - and would require a branch to separate the features. - Likewise, for specific kernel features, the same branching strategy is used. - - - This branching strategy results in a tree that has features organized to be specific - for particular functionality, single kernel types, or a subset of kernel types. - This strategy also results in not having to store the same feature twice - internally in the tree. - Rather, the kernel team stores the unique differences required to apply the - feature onto the kernel type in question. - - The Yocto Project team strives to place features in the tree such that they can be - shared by all boards and kernel types where possible. - However, during development cycles or when large features are merged, - the team cannot always follow this practice. - In those cases, the team uses isolated branches to merge features. - - - - BSP-specific code additions are handled in a similar manner to kernel-specific additions. - Some BSPs only make sense given certain kernel types. - So, for these types, the team creates branches off the end of that kernel type for all - of the BSPs that are supported on that kernel type. - From the perspective of the tools that create the BSP branch, the BSP is really no - different than a feature. - Consequently, the same branching strategy applies to BSPs as it does to features. - So again, rather than store the BSP twice, the team only stores the unique - differences for the BSP across the supported multiple kernels. - - - While this strategy can result in a tree with a significant number of branches, it is - important to realize that from the developer's point of view, there is a linear - path that travels from the baseline kernel.org, through a select - group of features and ends with their BSP-specific commits. - In other words, the divisions of the kernel are transparent and are not relevant - to the developer on a day-to-day basis. - From the developer's perspective, this path is the "master" branch. - The developer does not need to be aware of the existence of any other branches at all. - Of course, there is value in the existence of these branches - in the tree, should a person decide to explore them. - For example, a comparison between two BSPs at either the commit level or at the line-by-line - code diff level is now a trivial operation. - - - Working with the kernel as a structured tree follows recognized community best practices. - In particular, the kernel as shipped with the product, should be - considered an "upstream source" and viewed as a series of - historical and documented modifications (commits). - These modifications represent the development and stabilization done - by the Yocto Project kernel development team. - - - Because commits only change at significant release points in the product life cycle, - developers can work on a branch created - from the last relevant commit in the shipped Yocto Project kernel. - As mentioned previously, the structure is transparent to the developer - because the kernel tree is left in this state after cloning and building the kernel. - -
- -
- Source Code Manager - Git - - The Source Code Manager (SCM) is Git. - This SCM is the obvious mechanism for meeting the previously mentioned goals. - Not only is it the SCM for kernel.org but, - Git continues to grow in popularity and supports many different work flows, - front-ends and management techniques. - - - You can find documentation on Git at . - You can also get an introduction to Git as it applies to the Yocto Project in the - "Git" - section in the Yocto Project Development Manual. - These referenced sections overview Git and describe a minimal set of - commands that allows you to be functional using Git. - - You can use as much, or as little, of what Git has to offer to accomplish what - you need for your project. - You do not have to be a "Git Master" in order to use it with the Yocto Project. - - -
-
- -
- Kernel Configuration - - Kernel configuration, along with kernel features, defines how a kernel - image is built for the Yocto Project. - Through configuration settings, you can customize a Yocto Project kernel to be - specific to particular hardware. - For example, you can specify sound support or networking support. - This section describes basic concepts behind Kernel configuration within the - Yocto Project and references you to other areas for specific configuration - applications. - - - - Conceptually, configuration of a Yocto Project kernel occurs similarly to that needed for any - Linux kernel. - The build process for a Yocto Project kernel uses a .config file, which - is created through the Linux Kernel Configuration (LKC) tool. - You can directly set various configurations in the - .config file by using the menuconfig - tool as built by BitBake. - You can also define configurations in the file by using configuration fragments. - - It is not recommended that you edit the .config file directly. - - Here are some brief descriptions of the ways you can affect the - .config file: - - The menuconfig Tool: - One of many front-ends that allows you to define kernel configurations. - Some others are make config, - make nconfig, and make gconfig. - In the Yocto Project environment, you must use BitBake to build the - menuconfig tool before you can use it to define - configurations: - - $ bitbake linux-yocto -c menuconfig - - After the tool is built, you can interact with it normally. - You can see how menuconfig is used to change a simple - kernel configuration in the - "Configuring the Kernel" - section of the Yocto Project Development Manual. - For general information on menuconfig, see - . - - Configuration Fragments: A file with a - list of kernel options just as they would appear syntactically in the - .config file. - Configuration fragments are typically logical groupings and are assembled - by the OpenEmbedded build system to produce input used by the LKC - that ultimately generates the .config file. - The - KERNEL_FEATURES - variable can be used to list configuration fragments. - For further discussion on applying configuration fragments, see the - "Linux Kernel Configuration" - section in the Yocto Project Board Support Package (BSP) Guide. - - - -
- -
- Kernel Tools - - Since most standard workflows involve moving forward with an existing tree by - continuing to add and alter the underlying baseline, the tools that manage - the Yocto Project's kernel construction are largely hidden from the developer to - present a simplified view of the kernel for ease of use. - - - Fundamentally, the kernel tools that manage and construct the - Yocto Project kernel accomplish the following: - - Group patches into named, reusable features. - Allow top-down control of included features. - Bind kernel configurations to kernel patches and features. - Present a seamless Git repository that blends Yocto Project value - with the kernel.org history and development. - - -
-
- diff --git a/documentation/kernel-manual/kernel-doc-intro.xml b/documentation/kernel-manual/kernel-doc-intro.xml deleted file mode 100644 index c1cc22bb7a..0000000000 --- a/documentation/kernel-manual/kernel-doc-intro.xml +++ /dev/null @@ -1,78 +0,0 @@ - %poky; ] > - - - -Yocto Project Kernel Architecture and Use Manual - -
- Introduction - - The Yocto Project presents kernels as a fully patched, history-clean Git - repositories. - Each repository represents selected features, board support, - and configurations extensively tested by the Yocto Project. - Yocto Project kernels allow the end user to leverage community - best practices to seamlessly manage the development, build and debug cycles. - - - This manual describes Yocto Project kernels by providing information - on history, organization, benefits, and use. - The manual consists of two sections: - - Concepts: Describes concepts behind a kernel. - You will understand how a kernel is organized and why it is organized in - the way it is. You will understand the benefits of a kernel's organization - and the mechanisms used to work with the kernel and how to apply it in your - design process. - Using a Kernel: Describes best practices - and "how-to" information - that lets you put a kernel to practical use. - Some examples are how to examine changes in a branch and how to - save kernel modifications. - - - - - For more information on the Linux kernel, see the following links: - - The Linux Foundation's guide for kernel development - process - - A fairly encompassing guide on Linux kernel development - - - - - - - For more discussion on the Yocto Project kernel, you can see these sections - in the Yocto Project Development Manual: - - - "Kernel Overview" - - "Kernel Modification Workflow" - - - "Patching the Kernel" - - "Configuring the Kernel" - - - - - For general information on the Yocto Project, visit the website at - . - -
- - - - - - - -
- diff --git a/documentation/kernel-manual/kernel-how-to.xml b/documentation/kernel-manual/kernel-how-to.xml deleted file mode 100644 index 9d9aef6d06..0000000000 --- a/documentation/kernel-manual/kernel-how-to.xml +++ /dev/null @@ -1,918 +0,0 @@ - %poky; ] > - - - -Working with the Yocto Project Kernel - - -
- Introduction - - This chapter describes how to accomplish tasks involving a kernel's tree structure. - The information is designed to help the developer that wants to modify the Yocto - Project kernel and contribute changes upstream to the Yocto Project. - The information covers the following: - - Tree construction - Build strategies - Workflow examples - - -
- -
- Tree Construction - - This section describes construction of the Yocto Project kernel source repositories - as accomplished by the Yocto Project team to create kernel repositories. - These kernel repositories are found under the heading "Yocto Linux Kernel" at - &YOCTO_GIT_URL;/cgit.cgi - and can be shipped as part of a Yocto Project release. - The team creates these repositories by - compiling and executing the set of feature descriptions for every BSP/feature - in the product. - Those feature descriptions list all necessary patches, - configuration, branching, tagging and feature divisions found in a kernel. - Thus, the Yocto Project kernel repository (or tree) is built. - - - The existence of this tree allows you to access and clone a particular - Yocto Project kernel repository and use it to build images based on their configurations - and features. - - - You can find the files used to describe all the valid features and BSPs - in the Yocto Project kernel in any clone of the Yocto Project kernel source repository - Git tree. - For example, the following command clones the Yocto Project baseline kernel that - branched off of linux.org version 3.4: - - $ git clone git://git.yoctoproject.org/linux-yocto-3.4 - - For another example of how to set up a local Git repository of the Yocto Project - kernel files, see the - "Yocto Project Kernel" bulleted - item in the Yocto Project Development Manual. - - - Once you have cloned the kernel Git repository on your local machine, you can - switch to the meta branch within the repository. - Here is an example that assumes the local Git repository for the kernel is in - a top-level directory named linux-yocto-3.4: - - $ cd ~/linux-yocto-3.4 - $ git checkout -b meta origin/meta - - Once you have checked out and switched to the meta branch, - you can see a snapshot of all the kernel configuration and feature descriptions that are - used to build that particular kernel repository. - These descriptions are in the form of .scc files. - - - You should realize, however, that browsing your local kernel repository - for feature descriptions and patches is not an effective way to determine what is in a - particular kernel branch. - Instead, you should use Git directly to discover the changes in a branch. - Using Git is an efficient and flexible way to inspect changes to the kernel. - For examples showing how to use Git to inspect kernel commits, see the following sections - in this chapter. - - Ground up reconstruction of the complete kernel tree is an action only taken by the - Yocto Project team during an active development cycle. - When you create a clone of the kernel Git repository, you are simply making it - efficiently available for building and development. - - - - The following steps describe what happens when the Yocto Project Team constructs - the Yocto Project kernel source Git repository (or tree) found at - given the - introduction of a new top-level kernel feature or BSP. - These are the actions that effectively create the tree - that includes the new feature, patch or BSP: - - A top-level kernel feature is passed to the kernel build subsystem. - Normally, this feature is a BSP for a particular kernel type. - The file that describes the top-level feature is located by searching - these system directories: - - The in-tree kernel-cache directories, which are located - in meta/cfg/kernel-cache - Areas pointed to by SRC_URI statements - found in recipes - - For a typical build, the target of the search is a - feature description in an .scc file - whose name follows this format: - - <bsp_name>-<kernel_type>.scc - - - Once located, the feature description is either compiled into a simple script - of actions, or into an existing equivalent script that is already part of the - shipped kernel. - Extra features are appended to the top-level feature description. - These features can come from the - KERNEL_FEATURES - variable in recipes. - Each extra feature is located, compiled and appended to the script - as described in step three. - The script is executed to produce a series of meta-* - directories. - These directories are descriptions of all the branches, tags, patches and configurations that - need to be applied to the base Git repository to completely create the - source (build) branch for the new BSP or feature. - The base repository is cloned, and the actions - listed in the meta-* directories are applied to the - tree. - The Git repository is left with the desired branch checked out and any - required branching, patching and tagging has been performed. - - - - The kernel tree is now ready for developer consumption to be locally cloned, - configured, and built into a Yocto Project kernel specific to some target hardware. - The generated meta-* directories add to the kernel - as shipped with the Yocto Project release. - Any add-ons and configuration data are applied to the end of an existing branch. - The full repository generation that is found in the - official Yocto Project kernel repositories at - http://git.yoctoproject.org/cgit.cgi - is the combination of all supported boards and configurations. - The technique the Yocto Project team uses is flexible and allows for seamless - blending of an immutable history with additional patches specific to a - deployment. - Any additions to the kernel become an integrated part of the branches. - - -
- -
- Build Strategy - - Once a local Git repository of the Yocto Project kernel exists on a development system, - you can consider the compilation phase of kernel development - building a kernel image. - Some prerequisites exist that are validated by the build process before compilation - starts: - - - - The - SRC_URI points - to the kernel Git repository. - A BSP build branch exists. - This branch has the following form: - - <kernel_type>/<bsp_name> - - - - - The OpenEmbedded build system makes sure these conditions exist before attempting compilation. - Other means, however, do exist, such as as bootstrapping a BSP, see - the "Workflow Examples". - - - - Before building a kernel, the build process verifies the tree - and configures the kernel by processing all of the - configuration "fragments" specified by feature descriptions in the .scc - files. - As the features are compiled, associated kernel configuration fragments are noted - and recorded in the meta-* series of directories in their compilation order. - The fragments are migrated, pre-processed and passed to the Linux Kernel - Configuration subsystem (lkc) as raw input in the form - of a .config file. - The lkc uses its own internal dependency constraints to do the final - processing of that information and generates the final .config file - that is used during compilation. - - - - Using the board's architecture and other relevant values from the board's template, - kernel compilation is started and a kernel image is produced. - - - - The other thing that you notice once you configure a kernel is that - the build process generates a build tree that is separate from your kernel's local Git - source repository tree. - This build tree has a name that uses the following form, where - ${MACHINE} is the metadata name of the machine (BSP) and "kernel_type" is one - of the Yocto Project supported kernel types (e.g. "standard"): - - linux-${MACHINE}-<kernel_type>-build - - - - - The existing support in the kernel.org tree achieves this - default functionality. - - - - This behavior means that all the generated files for a particular machine or BSP are now in - the build tree directory. - The files include the final .config file, all the .o - files, the .a files, and so forth. - Since each machine or BSP has its own separate build directory in its own separate branch - of the Git repository, you can easily switch between different builds. - -
- -
- Workflow Examples - - - As previously noted, the Yocto Project kernel has built-in Git integration. - However, these utilities are not the only way to work with the kernel repository. - The Yocto Project has not made changes to Git or to other tools that - would invalidate alternate workflows. - Additionally, the way the kernel repository is constructed results in using - only core Git functionality, thus allowing any number of tools or front ends to use the - resulting tree. - - - - This section contains several workflow examples. - Many of the examples use Git commands. - You can find Git documentation at - . - You can find a simple overview of using Git with the Yocto Project in the - "Git" - section of the Yocto Project Development Manual. - - -
- Change Inspection: Changes/Commits - - - A common question when working with a kernel is: - "What changes have been applied to this tree?" - - - - In projects that have a collection of directories that - contain patches to the kernel, it is possible to inspect or "grep" the contents - of the directories to get a general feel for the changes. - This sort of patch inspection is not an efficient way to determine what has been - done to the kernel. - The reason it is inefficient is because there are many optional patches that are - selected based on the kernel type and the feature description. - Additionally, patches could exist in directories that are not included in the search. - - - - A more efficient way to determine what has changed in the branch is to use - Git and inspect or search the kernel tree. - This method gives you a full view of not only the source code modifications, - but also provides the reasons for the changes. - - -
- What Changed in a Kernel? - - - Following are a few examples that show how to use Git commands to examine changes. - Because Git repositories in the Yocto Project do not break existing Git - functionality, and because there exists many permutations of these types of - Git commands, many methods exist by which you can discover changes. - - In the following examples, unless you provide a commit range, - kernel.org history is blended with Yocto Project - kernel changes. - You can form ranges by using branch names from the kernel tree as the - upper and lower commit markers with the Git commands. - You can see the branch names through the web interface to the - Yocto Project source repositories at - . - For example, the branch names for the linux-yocto-3.4 - kernel repository can be seen at - . - - To see a full range of the changes, use the - git whatchanged command and specify a commit range - for the branch (<commit>..<commit>). - - - - Here is an example that looks at what has changed in the - emenlow branch of the - linux-yocto-3.4 kernel. - The lower commit range is the commit associated with the - standard/base branch, while - the upper commit range is the commit associated with the - standard/emenlow branch. - - $ git whatchanged origin/standard/base..origin/standard/emenlow - - - - - To see a summary of changes use the git log command. - Here is an example using the same branches: - - $ git log --oneline origin/standard/base..origin/standard/emenlow - - The git log output might be more useful than - the git whatchanged as you get - a short, one-line summary of each change and not the entire commit. - - - - If you want to see code differences associated with all the changes, use - the git diff command. - Here is an example: - - $ git diff origin/standard/base..origin/standard/emenlow - - - - - You can see the commit log messages and the text differences using the - git show command: - Here is an example: - - $ git show origin/standard/base..origin/standard/emenlow - - - - - You can create individual patches for each change by using the - git format-patch command. - Here is an example that that creates patch files for each commit and - places them in your Documents directory: - - $ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow - - -
- -
- Show a Particular Feature or Branch Change - - - Developers use tags in the Yocto Project kernel tree to divide changes for significant - features or branches. - Once you know a particular tag, you can use Git commands - to show changes associated with the tag and find the branches that contain - the feature. - - Because BSP branch, kernel.org, and feature tags are all - present, there could be many tags. - - The git show <tag> command shows changes that are tagged by - a feature. - Here is an example that shows changes tagged by the systemtap - feature: - - $ git show systemtap - - You can use the git branch --contains <tag> command - to show the branches that contain a particular feature. - This command shows the branches that contain the systemtap - feature: - - $ git branch --contains systemtap - - - - - You can use many other comparisons to isolate BSP and kernel changes. - For example, you can compare against kernel.org tags - such as the v3.4 tag. - -
-
- -
- Development: Saving Kernel Modifications - - - Another common operation is to build a BSP supplied by the Yocto Project, make some - changes, rebuild, and then test. - Those local changes often need to be exported, shared or otherwise maintained. - - - - Since the Yocto Project kernel source tree is backed by Git, this activity is - much easier as compared to with previous releases. - Because Git tracks file modifications, additions and deletions, it is easy - to modify the code and later realize that you need to save the changes. - It is also easy to determine what has changed. - This method also provides many tools to commit, undo and export those modifications. - - - - This section and its sub-sections, describe general application of Git's - push and pull commands, which are used to - get your changes upstream or source your code from an upstream repository. - The Yocto Project provides scripts that help you work in a collaborative development - environment. - For information on these scripts, see the - "Using Scripts to Push a Change - Upstream and Request a Pull" and - "Using Email to Submit a Patch" - sections in the Yocto Project Development Manual. - - - - There are many ways to save kernel modifications. - The technique employed - depends on the destination for the patches: - - - Bulk storage - Internal sharing either through patches or by using Git - External submissions - Exporting for integration into another Source Code - Manager (SCM) - - - - - Because of the following list of issues, the destination of the patches also influences - the method for gathering them: - - - Bisectability - Commit headers - Division of subsystems for separate submission or review - - - -
- Bulk Export - - - This section describes how you can "bulk" export changes that have not - been separated or divided. - This situation works well when you are simply storing patches outside of the kernel - source repository, either permanently or temporarily, and you are not committing - incremental changes during development. - - This technique is not appropriate for full integration of upstream submission - because changes are not properly divided and do not provide an avenue for per-change - commit messages. - Therefore, this example assumes that changes have not been committed incrementally - during development and that you simply must gather and export them. - - - # bulk export of ALL modifications without separation or division - # of the changes - - $ git add . - $ git commit -s -a -m <msg> - or - $ git commit -s -a # and interact with $EDITOR - - - - - The previous operations capture all the local changes in the project source - tree in a single Git commit. - And, that commit is also stored in the project's source tree. - - - - Once the changes are exported, you can restore them manually using a template - or through integration with the default_kernel. - - -
- -
- Incremental/Planned Sharing - - - This section describes how to save modifications when you are making incremental - commits or practicing planned sharing. - The examples in this section assume that you have incrementally committed - changes to the tree during development and now need to export them. - The sections that follow - describe how you can export your changes internally through either patches or by - using Git commands. - - - - During development, the following commands are of interest. - For full Git documentation, refer to the Git documentation at - . - - - # edit a file - $ vi <path>/file - # stage the change - $ git add <path>/file - # commit the change - $ git commit -s - # remove a file - $ git rm <path>/file - # commit the change - $ git commit -s - - ... etc. - - - - - Distributed development with Git is possible when you use a universally - agreed-upon unique commit identifier (set by the creator of the commit) that maps to a - specific change set with a specific parent. - This identifier is created for you when - you create a commit, and is re-created when you amend, alter or re-apply - a commit. - As an individual in isolation, this is of no interest. - However, if you - intend to share your tree with normal Git push and - pull operations for - distributed development, you should consider the ramifications of changing a - commit that you have already shared with others. - - - - Assuming that the changes have not been pushed upstream, or pulled into - another repository, you can update both the commit content and commit messages - associated with development by using the following commands: - - - $ Git add <path>/file - $ Git commit --amend - $ Git rebase or Git rebase -i - - - - - Again, assuming that the changes have not been pushed upstream, and that - no pending works-in-progress exist (use git status to check), then - you can revert (undo) commits by using the following commands: - - - # remove the commit, update working tree and remove all - # traces of the change - $ git reset --hard HEAD^ - # remove the commit, but leave the files changed and staged for re-commit - $ git reset --soft HEAD^ - # remove the commit, leave file change, but not staged for commit - $ git reset --mixed HEAD^ - - - - - You can create branches, "cherry-pick" changes, or perform any number of Git - operations until the commits are in good order for pushing upstream - or for pull requests. - After a push or pull command, - commits are normally considered - "permanent" and you should not modify them. - If the commits need to be changed, you can incrementally do so with new commits. - These practices follow standard Git workflow and the kernel.org best - practices, which is recommended. - - It is recommended to tag or branch before adding changes to a Yocto Project - BSP or before creating a new one. - The reason for this recommendation is because the branch or tag provides a - reference point to facilitate locating and exporting local changes. - - - -
- Exporting Changes Internally by Using Patches - - - This section describes how you can extract committed changes from a working directory - by exporting them as patches. - Once the changes have been extracted, you can use the patches for upstream submission, - place them in a Yocto Project template for automatic kernel patching, - or apply them in many other common uses. - - - - This example shows how to create a directory with sequentially numbered patches. - Once the directory is created, you can apply it to a repository using the - git am command to reproduce the original commit and all - the related information such as author, date, commit log, and so forth. - - The new commit identifiers (ID) will be generated upon re-application. - This action reflects that the commit is now applied to an underlying commit - with a different ID. - - - # <first-commit> can be a tag if one was created before development - # began. It can also be the parent branch if a branch was created - # before development began. - - $ git format-patch -o <dir> <first commit>..<last commit> - - - - - In other words: - - # Identify commits of interest. - - # If the tree was tagged before development - $ git format-patch -o <save dir> <tag> - - # If no tags are available - $ git format-patch -o <save dir> HEAD^ # last commit - $ git format-patch -o <save dir> HEAD^^ # last 2 commits - $ git whatchanged # identify last commit - $ git format-patch -o <save dir> <commit id> - $ git format-patch -o <save dir> <rev-list> - - -
- -
- Exporting Changes Internally by Using Git - - - This section describes how you can export changes from a working directory - by pushing the changes into a master repository or by making a pull request. - Once you have pushed the changes to the master repository, you can then - pull those same changes into a new kernel build at a later time. - - - - Use this command form to push the changes: - - $ git push ssh://<master_server>/<path_to_repo> - <local_branch>:<remote_branch> - - - - - For example, the following command pushes the changes from your local branch - yocto/standard/common-pc/base to the remote branch with the same name - in the master repository //git.mycompany.com/pub/git/kernel-3.4. - - $ git push ssh://git.mycompany.com/pub/git/kernel-3.4 \ - yocto/standard/common-pc/base:yocto/standard/common-pc/base - - - - - A pull request entails using the git request-pull command to compose - an email to the - maintainer requesting that a branch be pulled into the master repository, see - for an example. - - Other commands such as git stash or branching can also be used to save - changes, but are not covered in this document. - - -
-
- -
- Exporting Changes for External (Upstream) Submission - - - This section describes how to export changes for external upstream submission. - If the patch series is large or the maintainer prefers to pull - changes, you can submit these changes by using a pull request. - However, it is common to send patches as an email series. - This method allows easy review and integration of the changes. - - Before sending patches for review be sure you understand the - community standards for submitting and documenting changes and follow their best practices. - For example, kernel patches should follow standards such as: - - - - Documentation/SubmittingPatches (in any linux - kernel source tree) - - - - - - The messages used to commit changes are a large part of these standards. - Consequently, be sure that the headers for each commit have the required information. - For information on how to follow the Yocto Project commit message standards, see the - "How to Submit a - Change" section in the Yocto Project Development Manual. - - - - If the initial commits were not properly documented or do not meet those standards, - you can re-base by using the git rebase -i command to - manipulate the commits and - get them into the required format. - Other techniques such as branching and cherry-picking commits are also viable options. - - - - Once you complete the commits, you can generate the email that sends the patches - to the maintainer(s) or lists that review and integrate changes. - The command git send-email is commonly used to ensure - that patches are properly - formatted for easy application and avoid mailer-induced patch damage. - - - - The following is an example of dumping patches for external submission: - - # dump the last 4 commits - $ git format-patch --thread -n -o ~/rr/ HEAD^^^^ - $ git send-email --compose --subject '[RFC 0/N] <patch series summary>' \ - --to foo@yoctoproject.org --to bar@yoctoproject.org \ - --cc list@yoctoproject.org ~/rr - # the editor is invoked for the 0/N patch, and when complete the entire - # series is sent via email for review - - -
- -
- Exporting Changes for Import into Another SCM - - - When you want to export changes for import into another - Source Code Manager (SCM), you can use any of the previously discussed - techniques. - However, if the patches are manually applied to a secondary tree and then - that tree is checked into the SCM, you can lose change information such as - commit logs. - This process is not recommended. - - - - Many SCMs can directly import Git commits, or can translate Git patches so that - information is not lost. - Those facilities are SCM-dependent and you should use them whenever possible. - -
-
- -
- Working with the Yocto Project Kernel in Another SCM - - - This section describes kernel development in an SCM other than Git, - which is not the same as exporting changes to another SCM described earlier. - For this scenario, you use the OpenEmbedded build system to - develop the kernel in a different SCM. - The following must be true for you to accomplish this: - - The delivered Yocto Project kernel must be exported into the second - SCM. - Development must be exported from that secondary SCM into a - format that can be used by the OpenEmbedded build system. - - - -
- Exporting the Delivered Kernel to the SCM - - - Depending on the SCM, it might be possible to export the entire Yocto Project - kernel Git repository, branches and all, into a new environment. - This method is preferred because it has the most flexibility and potential to maintain - the meta data associated with each commit. - - - - When a direct import mechanism is not available, it is still possible to - export a branch (or series of branches) and check them into a new repository. - - - - The following commands illustrate some of the steps you could use to - import the yocto/standard/common-pc/base - kernel into a secondary SCM: - - $ git checkout yocto/standard/common-pc/base - $ cd .. ; echo linux/.git > .cvsignore - $ cvs import -m "initial import" linux MY_COMPANY start - - - - - You could now relocate the CVS repository and use it in a centralized manner. - - - - The following commands illustrate how you can condense and merge two BSPs into a - second SCM: - - $ git checkout yocto/standard/common-pc/base - $ git merge yocto/standard/common-pc-64/base - # resolve any conflicts and commit them - $ cd .. ; echo linux/.git > .cvsignore - $ cvs import -m "initial import" linux MY_COMPANY start - - -
- -
- Importing Changes for the Build - - - Once development has reached a suitable point in the second development - environment, you need to export the changes as patches. - To export them, place the changes in a recipe and - automatically apply them to the kernel during patching. - -
-
- -
- Creating a BSP Based on an Existing Similar BSP - - - This section overviews the process of creating a BSP based on an - existing similar BSP. - The information is introductory in nature and does not provide step-by-step examples. - For detailed information on how to create a new BSP, see - the "Creating a New BSP Layer Using the yocto-bsp Script" section in the - Yocto Project Board Support Package (BSP) Developer's Guide, or see the - Transcript:_creating_one_generic_Atom_BSP_from_another - wiki page. - - - - The basic steps you need to follow are: - - Make sure you have set up a local Source Directory: - You must create a local - Source Directory - by either creating a Git repository (recommended) or - extracting a Yocto Project release tarball. - Choose an existing BSP available with the Yocto Project: - Try to map your board features as closely to the features of a BSP that is - already supported and exists in the Yocto Project. - Starting with something as close as possible to your board makes developing - your BSP easier. - You can find all the BSPs that are supported and ship with the Yocto Project - on the Yocto Project's Download page at - . - Be sure you have the Base BSP: - You need to either have a local Git repository of the base BSP set up or - have downloaded and extracted the files from a release BSP tarball. - Either method gives you access to the BSP source files. - Make a copy of the existing BSP, thus isolating your new - BSP work: - Copying the existing BSP file structure gives you a new area in which to work. - Make configuration and recipe changes to your new BSP: - Configuration changes involve the files in the BSP's conf - directory. - Changes include creating a machine-specific configuration file and editing the - layer.conf file. - The configuration changes identify the kernel you will be using. - Recipe changes include removing, modifying, or adding new recipe files that - instruct the build process on what features to include in the image. - Prepare for the build: - Before you actually initiate the build, you need to set up the build environment - by sourcing the environment initialization script. - After setting up the environment, you need to make some build configuration - changes to the local.conf and bblayers.conf - files. - Build the image: - The OpenEmbedded build system uses BitBake to create the image. - You need to decide on the type of image you are going to build (e.g. minimal, base, - core, sato, and so forth) and then start the build using the bitbake - command. - - -
- -
- "-dirty" String - - - If kernel images are being built with "-dirty" on the end of the version - string, this simply means that modifications in the source - directory have not been committed. - - $ git status - - - - - You can use the above Git command to report modified, removed, or added files. - You should commit those changes to the tree regardless of whether they will be saved, - exported, or used. - Once you commit the changes you need to rebuild the kernel. - - - - To brute force pickup and commit all such pending changes, enter the following: - - $ git add . - $ git commit -s -a -m "getting rid of -dirty" - - - - - Next, rebuild the kernel. - -
-
-
- diff --git a/documentation/kernel-manual/kernel-manual-customization.xsl b/documentation/kernel-manual/kernel-manual-customization.xsl deleted file mode 100644 index 6f46df2289..0000000000 --- a/documentation/kernel-manual/kernel-manual-customization.xsl +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/documentation/kernel-manual/kernel-manual-eclipse-customization.xsl b/documentation/kernel-manual/kernel-manual-eclipse-customization.xsl deleted file mode 100644 index 7992173c6c..0000000000 --- a/documentation/kernel-manual/kernel-manual-eclipse-customization.xsl +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/documentation/kernel-manual/kernel-manual.xml b/documentation/kernel-manual/kernel-manual.xml deleted file mode 100644 index 859bceabc5..0000000000 --- a/documentation/kernel-manual/kernel-manual.xml +++ /dev/null @@ -1,106 +0,0 @@ - %poky; ] > - - - - - - - - - - - - The Yocto Project Kernel Architecture and Use Manual - - - - - Bruce Ashfield - - Wind River Corporation - - bruce.ashfield@windriver.com - - - - - - 0.9 - 24 November 2010 - The initial document draft released with the Yocto Project 0.9 Release. - - - 1.0 - 6 April 2011 - Released with the Yocto Project 1.0 Release. - - - 1.0.1 - 23 May 2011 - Released with the Yocto Project 1.0.1 Release. - - - 1.1 - 6 October 2011 - Released with the Yocto Project 1.1 Release. - - - 1.2 - April 2012 - Released with the Yocto Project 1.2 Release. - - - 1.3 - October 2012 - Released with the Yocto Project 1.3 Release. - - - 1.4 - Sometime in 2013 - Released with the Yocto Project 1.4 Release. - - - - - ©RIGHT_YEAR; - Linux Foundation - - - - - Permission is granted to copy, distribute and/or modify this document under - the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales as published by Creative Commons. - - - Due to production processes, there could be differences between the Yocto Project - documentation bundled in the release tarball and the - Yocto Project Kernel Architecture and Use Manual on - the Yocto Project website. - For the latest version of this manual, see the manual on the website. - - - - - - - - - - - - - - - diff --git a/documentation/kernel-manual/kernel-style.css b/documentation/kernel-manual/kernel-style.css deleted file mode 100644 index a90d4af291..0000000000 --- a/documentation/kernel-manual/kernel-style.css +++ /dev/null @@ -1,979 +0,0 @@ -/* - Generic XHTML / DocBook XHTML CSS Stylesheet. - - Browser wrangling and typographic design by - Oyvind Kolas / pippin@gimp.org - - Customised for Poky by - Matthew Allum / mallum@o-hand.com - - Thanks to: - Liam R. E. Quin - William Skaggs - Jakub Steiner - - Structure - --------- - - The stylesheet is divided into the following sections: - - Positioning - Margins, paddings, width, font-size, clearing. - Decorations - Borders, style - Colors - Colors - Graphics - Graphical backgrounds - Nasty IE tweaks - Workarounds needed to make it work in internet explorer, - currently makes the stylesheet non validating, but up until - this point it is validating. - Mozilla extensions - Transparency for footer - Rounded corners on boxes - -*/ - - - /*************** / - / Positioning / -/ ***************/ - -body { - font-family: Verdana, Sans, sans-serif; - - min-width: 640px; - width: 80%; - margin: 0em auto; - padding: 2em 5em 5em 5em; - color: #333; -} - -h1,h2,h3,h4,h5,h6,h7 { - font-family: Arial, Sans; - color: #00557D; - clear: both; -} - -h1 { - font-size: 2em; - text-align: left; - padding: 0em 0em 0em 0em; - margin: 2em 0em 0em 0em; -} - -h2.subtitle { - margin: 0.10em 0em 3.0em 0em; - padding: 0em 0em 0em 0em; - font-size: 1.8em; - padding-left: 20%; - font-weight: normal; - font-style: italic; -} - -h2 { - margin: 2em 0em 0.66em 0em; - padding: 0.5em 0em 0em 0em; - font-size: 1.5em; - font-weight: bold; -} - -h3.subtitle { - margin: 0em 0em 1em 0em; - padding: 0em 0em 0em 0em; - font-size: 142.14%; - text-align: right; -} - -h3 { - margin: 1em 0em 0.5em 0em; - padding: 1em 0em 0em 0em; - font-size: 140%; - font-weight: bold; -} - -h4 { - margin: 1em 0em 0.5em 0em; - padding: 1em 0em 0em 0em; - font-size: 120%; - font-weight: bold; -} - -h5 { - margin: 1em 0em 0.5em 0em; - padding: 1em 0em 0em 0em; - font-size: 110%; - font-weight: bold; -} - -h6 { - margin: 1em 0em 0em 0em; - padding: 1em 0em 0em 0em; - font-size: 110%; - font-weight: bold; -} - -.authorgroup { - background-color: transparent; - background-repeat: no-repeat; - padding-top: 256px; - background-image: url("figures/kernel-title.png"); - background-position: left top; - margin-top: -256px; - padding-right: 50px; - margin-left: 0px; - text-align: right; - width: 740px; -} - -h3.author { - margin: 0em 0me 0em 0em; - padding: 0em 0em 0em 0em; - font-weight: normal; - font-size: 100%; - color: #333; - clear: both; -} - -.author tt.email { - font-size: 66%; -} - -.titlepage hr { - width: 0em; - clear: both; -} - -.revhistory { - padding-top: 2em; - clear: both; -} - -.toc, -.list-of-tables, -.list-of-examples, -.list-of-figures { - padding: 1.33em 0em 2.5em 0em; - color: #00557D; -} - -.toc p, -.list-of-tables p, -.list-of-figures p, -.list-of-examples p { - padding: 0em 0em 0em 0em; - padding: 0em 0em 0.3em; - margin: 1.5em 0em 0em 0em; -} - -.toc p b, -.list-of-tables p b, -.list-of-figures p b, -.list-of-examples p b{ - font-size: 100.0%; - font-weight: bold; -} - -.toc dl, -.list-of-tables dl, -.list-of-figures dl, -.list-of-examples dl { - margin: 0em 0em 0.5em 0em; - padding: 0em 0em 0em 0em; -} - -.toc dt { - margin: 0em 0em 0em 0em; - padding: 0em 0em 0em 0em; -} - -.toc dd { - margin: 0em 0em 0em 2.6em; - padding: 0em 0em 0em 0em; -} - -div.glossary dl, -div.variablelist dl { -} - -.glossary dl dt, -.variablelist dl dt, -.variablelist dl dt span.term { - font-weight: normal; - width: 20em; - text-align: right; -} - -.variablelist dl dt { - margin-top: 0.5em; -} - -.glossary dl dd, -.variablelist dl dd { - margin-top: -1em; - margin-left: 25.5em; -} - -.glossary dd p, -.variablelist dd p { - margin-top: 0em; - margin-bottom: 1em; -} - - -div.calloutlist table td { - padding: 0em 0em 0em 0em; - margin: 0em 0em 0em 0em; -} - -div.calloutlist table td p { - margin-top: 0em; - margin-bottom: 1em; -} - -div p.copyright { - text-align: left; -} - -div.legalnotice p.legalnotice-title { - margin-bottom: 0em; -} - -p { - line-height: 1.5em; - margin-top: 0em; - -} - -dl { - padding-top: 0em; -} - -hr { - border: solid 1px; -} - - -.mediaobject, -.mediaobjectco { - text-align: center; -} - -img { - border: none; -} - -ul { - padding: 0em 0em 0em 1.5em; -} - -ul li { - padding: 0em 0em 0em 0em; -} - -ul li p { - text-align: left; -} - -table { - width :100%; -} - -th { - padding: 0.25em; - text-align: left; - font-weight: normal; - vertical-align: top; -} - -td { - padding: 0.25em; - vertical-align: top; -} - -p a[id] { - margin: 0px; - padding: 0px; - display: inline; - background-image: none; -} - -a { - text-decoration: underline; - color: #444; -} - -pre { - overflow: auto; -} - -a:hover { - text-decoration: underline; - /*font-weight: bold;*/ -} - - -div.informalfigure, -div.informalexample, -div.informaltable, -div.figure, -div.table, -div.example { - margin: 1em 0em; - padding: 1em; - page-break-inside: avoid; -} - - -div.informalfigure p.title b, -div.informalexample p.title b, -div.informaltable p.title b, -div.figure p.title b, -div.example p.title b, -div.table p.title b{ - padding-top: 0em; - margin-top: 0em; - font-size: 100%; - font-weight: normal; -} - -.mediaobject .caption, -.mediaobject .caption p { - text-align: center; - font-size: 80%; - padding-top: 0.5em; - padding-bottom: 0.5em; -} - -.epigraph { - padding-left: 55%; - margin-bottom: 1em; -} - -.epigraph p { - text-align: left; -} - -.epigraph .quote { - font-style: italic; -} -.epigraph .attribution { - font-style: normal; - text-align: right; -} - -span.application { - font-style: italic; -} - -.programlisting { - font-family: monospace; - font-size: 80%; - white-space: pre; - margin: 1.33em 0em; - padding: 1.33em; -} - -.tip, -.warning, -.caution, -.note { - margin-top: 1em; - margin-bottom: 1em; - -} - -/* force full width of table within div */ -.tip table, -.warning table, -.caution table, -.note table { - border: none; - width: 100%; -} - - -.tip table th, -.warning table th, -.caution table th, -.note table th { - padding: 0.8em 0.0em 0.0em 0.0em; - margin : 0em 0em 0em 0em; -} - -.tip p, -.warning p, -.caution p, -.note p { - margin-top: 0.5em; - margin-bottom: 0.5em; - padding-right: 1em; - text-align: left; -} - -.acronym { - text-transform: uppercase; -} - -b.keycap, -.keycap { - padding: 0.09em 0.3em; - margin: 0em; -} - -.itemizedlist li { - clear: none; -} - -.filename { - font-size: medium; - font-family: Courier, monospace; -} - - -div.navheader, div.heading{ - position: absolute; - left: 0em; - top: 0em; - width: 100%; - background-color: #cdf; - width: 100%; -} - -div.navfooter, div.footing{ - position: fixed; - left: 0em; - bottom: 0em; - background-color: #eee; - width: 100%; -} - - -div.navheader td, -div.navfooter td { - font-size: 66%; -} - -div.navheader table th { - /*font-family: Georgia, Times, serif;*/ - /*font-size: x-large;*/ - font-size: 80%; -} - -div.navheader table { - border-left: 0em; - border-right: 0em; - border-top: 0em; - width: 100%; -} - -div.navfooter table { - border-left: 0em; - border-right: 0em; - border-bottom: 0em; - width: 100%; -} - -div.navheader table td a, -div.navfooter table td a { - color: #777; - text-decoration: none; -} - -/* normal text in the footer */ -div.navfooter table td { - color: black; -} - -div.navheader table td a:visited, -div.navfooter table td a:visited { - color: #444; -} - - -/* links in header and footer */ -div.navheader table td a:hover, -div.navfooter table td a:hover { - text-decoration: underline; - background-color: transparent; - color: #33a; -} - -div.navheader hr, -div.navfooter hr { - display: none; -} - - -.qandaset tr.question td p { - margin: 0em 0em 1em 0em; - padding: 0em 0em 0em 0em; -} - -.qandaset tr.answer td p { - margin: 0em 0em 1em 0em; - padding: 0em 0em 0em 0em; -} -.answer td { - padding-bottom: 1.5em; -} - -.emphasis { - font-weight: bold; -} - - - /************* / - / decorations / -/ *************/ - -.titlepage { -} - -.part .title { -} - -.subtitle { - border: none; -} - -/* -h1 { - border: none; -} - -h2 { - border-top: solid 0.2em; - border-bottom: solid 0.06em; -} - -h3 { - border-top: 0em; - border-bottom: solid 0.06em; -} - -h4 { - border: 0em; - border-bottom: solid 0.06em; -} - -h5 { - border: 0em; -} -*/ - -.programlisting { - border: solid 1px; -} - -div.figure, -div.table, -div.informalfigure, -div.informaltable, -div.informalexample, -div.example { - border: 1px solid; -} - - - -.tip, -.warning, -.caution, -.note { - border: 1px solid; -} - -.tip table th, -.warning table th, -.caution table th, -.note table th { - border-bottom: 1px solid; -} - -.question td { - border-top: 1px solid black; -} - -.answer { -} - - -b.keycap, -.keycap { - border: 1px solid; -} - - -div.navheader, div.heading{ - border-bottom: 1px solid; -} - - -div.navfooter, div.footing{ - border-top: 1px solid; -} - - /********* / - / colors / -/ *********/ - -body { - color: #333; - background: white; -} - -a { - background: transparent; -} - -a:hover { - background-color: #dedede; -} - - -h1, -h2, -h3, -h4, -h5, -h6, -h7, -h8 { - background-color: transparent; -} - -hr { - border-color: #aaa; -} - - -.tip, .warning, .caution, .note { - border-color: #fff; -} - - -.tip table th, -.warning table th, -.caution table th, -.note table th { - border-bottom-color: #fff; -} - - -.warning { - background-color: #f0f0f2; -} - -.caution { - background-color: #f0f0f2; -} - -.tip { - background-color: #f0f0f2; -} - -.note { - background-color: #f0f0f2; -} - -.glossary dl dt, -.variablelist dl dt, -.variablelist dl dt span.term { - color: #044; -} - -div.figure, -div.table, -div.example, -div.informalfigure, -div.informaltable, -div.informalexample { - border-color: #aaa; -} - -pre.programlisting { - color: black; - background-color: #fff; - border-color: #aaa; - border-width: 2px; -} - -.guimenu, -.guilabel, -.guimenuitem { - background-color: #eee; -} - - -b.keycap, -.keycap { - background-color: #eee; - border-color: #999; -} - - -div.navheader { - border-color: black; -} - - -div.navfooter { - border-color: black; -} - - - /*********** / - / graphics / -/ ***********/ - -/* -body { - background-image: url("images/body_bg.jpg"); - background-attachment: fixed; -} - -.navheader, -.note, -.tip { - background-image: url("images/note_bg.jpg"); - background-attachment: fixed; -} - -.warning, -.caution { - background-image: url("images/warning_bg.jpg"); - background-attachment: fixed; -} - -.figure, -.informalfigure, -.example, -.informalexample, -.table, -.informaltable { - background-image: url("images/figure_bg.jpg"); - background-attachment: fixed; -} - -*/ -h1, -h2, -h3, -h4, -h5, -h6, -h7{ -} - -/* -Example of how to stick an image as part of the title. - -div.article .titlepage .title -{ - background-image: url("figures/white-on-black.png"); - background-position: center; - background-repeat: repeat-x; -} -*/ - -div.preface .titlepage .title, -div.colophon .title, -div.chapter .titlepage .title, -div.article .titlepage .title -{ -} - -div.section div.section .titlepage .title, -div.sect2 .titlepage .title { - background: none; -} - - -h1.title { - background-color: transparent; - background-image: url("figures/yocto-project-bw.png"); - background-repeat: no-repeat; - height: 256px; - text-indent: -9000px; - overflow:hidden; -} - -h2.subtitle { - background-color: transparent; - text-indent: -9000px; - overflow:hidden; - width: 0px; - display: none; -} - - /*************************************** / - / pippin.gimp.org specific alterations / -/ ***************************************/ - -/* -div.heading, div.navheader { - color: #777; - font-size: 80%; - padding: 0; - margin: 0; - text-align: left; - position: absolute; - top: 0px; - left: 0px; - width: 100%; - height: 50px; - background: url('/gfx/heading_bg.png') transparent; - background-repeat: repeat-x; - background-attachment: fixed; - border: none; -} - -div.heading a { - color: #444; -} - -div.footing, div.navfooter { - border: none; - color: #ddd; - font-size: 80%; - text-align:right; - - width: 100%; - padding-top: 10px; - position: absolute; - bottom: 0px; - left: 0px; - - background: url('/gfx/footing_bg.png') transparent; -} -*/ - - - - /****************** / - / nasty ie tweaks / -/ ******************/ - -/* -div.heading, div.navheader { - width:expression(document.body.clientWidth + "px"); -} - -div.footing, div.navfooter { - width:expression(document.body.clientWidth + "px"); - margin-left:expression("-5em"); -} -body { - padding:expression("4em 5em 0em 5em"); -} -*/ - - /**************************************** / - / mozilla vendor specific css extensions / -/ ****************************************/ -/* -div.navfooter, div.footing{ - -moz-opacity: 0.8em; -} - -div.figure, -div.table, -div.informalfigure, -div.informaltable, -div.informalexample, -div.example, -.tip, -.warning, -.caution, -.note { - -moz-border-radius: 0.5em; -} - -b.keycap, -.keycap { - -moz-border-radius: 0.3em; -} -*/ - -table tr td table tr td { - display: none; -} - - -hr { - display: none; -} - -table { - border: 0em; -} - - .photo { - float: right; - margin-left: 1.5em; - margin-bottom: 1.5em; - margin-top: 0em; - max-width: 17em; - border: 1px solid gray; - padding: 3px; - background: white; -} - .seperator { - padding-top: 2em; - clear: both; - } - - #validators { - margin-top: 5em; - text-align: right; - color: #777; - } - @media print { - body { - font-size: 8pt; - } - .noprint { - display: none; - } - } - - -.tip, -.note { - background: #f0f0f2; - color: #333; - padding: 20px; - margin: 20px; -} - -.tip h3, -.note h3 { - padding: 0em; - margin: 0em; - font-size: 2em; - font-weight: bold; - color: #333; -} - -.tip a, -.note a { - color: #333; - text-decoration: underline; -} - -.footnote { - font-size: small; - color: #333; -} - -/* Changes the announcement text */ -.tip h3, -.warning h3, -.caution h3, -.note h3 { - font-size:large; - color: #00557D; -} -