Files
BPI-CM9-Linux/aml-patches/amlbian/0001-a9-add-version.txt-1-1.patch
T
2026-08-24 10:03:24 +08:00

433 lines
22 KiB
Diff

From 2f2380799efcf23b59ec36b408ee3897b0db30c8 Mon Sep 17 00:00:00 2001
From: "weiyi.zuo" <weiyi.zuo@amlogic.com>
Date: Thu, 18 Jun 2026 06:24:40 +0000
Subject: [PATCH 1/6] a9 : add version.txt [1/1]
PD#SWPL-273907
Problem:
add version.txt
change default shell as bash
install bmp logo
Solution:
add version.txt
change default shell as bash
install bmp logo
Fixed conflicts:
NA
Verify:
A9
Change-Id: Ibe6a8ef086fe3e5dbcda25dd33e6d6010fb26b22
Signed-off-by: weiyi.zuo <weiyi.zuo@amlogic.com>
---
config/boards/include/amlogic_common.inc | 10 +++++
extensions/amlogic-overlay.sh | 32 +++++++++++++-
lib/function-img.sh | 51 +++++++++++++++++++++++
patches/logo/bmp/logo.bmp | Bin 1080054 -> 720066 bytes
4 files changed, 92 insertions(+), 1 deletion(-)
mode change 100644 => 100755 patches/logo/bmp/logo.bmp
diff --git a/config/boards/include/amlogic_common.inc b/config/boards/include/amlogic_common.inc
index 7c8a457..fee9e72 100644
--- a/config/boards/include/amlogic_common.inc
+++ b/config/boards/include/amlogic_common.inc
@@ -71,6 +71,16 @@ else
BUILD_UNITS=($BUILD_UNITS)
fi
+
+
+if [ -f "${SRC}/../yocto-release-info" ]; then
+ RELEASE_VERSION="${RELEASE_VERSION:-$(grep '^RELEASE_VERSION' "${SRC}/../yocto-release-info" | sed 's/.*= *"\([^"]*\)".*/\1/')}"
+ RELEASE_SPIN="${RELEASE_SPIN:-$(grep '^RELEASE_SPIN' "${SRC}/../yocto-release-info" | sed 's/.*= *"\([^"]*\)".*/\1/')}"
+ DATETIME="${DATETIME:-$(grep '^DATETIME' "${SRC}/../yocto-release-info" | sed 's/.*= *"\([^"]*\)".*/\1/')}"
+else
+ RELEASE_SPIN="${RELEASE_SPIN:-$(hostname)#$(whoami)}"
+fi
+
GPT_TABLE="partition_table.txt"
EXTLINUX_CONF="extlinux.conf"
diff --git a/extensions/amlogic-overlay.sh b/extensions/amlogic-overlay.sh
index 7c7badb..4e568f6 100644
--- a/extensions/amlogic-overlay.sh
+++ b/extensions/amlogic-overlay.sh
@@ -23,11 +23,41 @@ function host_pre_docker_launch__amlogic_pass_build_units() {
# 添加环境变量到 Docker
DOCKER_EXTRA_ARGS+=("--env" "BUILD_UNITS=${BUILD_UNITS[*]}")
- display_alert "AMLOGIC: Set BUILD_UNITS environment variable" "${BUILD_UNITS}" "debug"
+ display_alert "AMLOGIC: Set BUILD_UNITS environment variable" "${BUILD_UNITS}" "debug"
else
display_alert "AMLOGIC: BUILD_UNITS not set, using defaults in container" "" "warn"
fi
+
+ if [[ -n "${RELEASE_SPIN}" ]]; then
+
+ # 添加环境变量到 Docker
+ DOCKER_EXTRA_ARGS+=("--env" "RELEASE_SPIN=${RELEASE_SPIN}")
+ display_alert "AMLOGIC: Set RELEASE_SPIN environment variable" "${RELEASE_SPIN}" "debug"
+
+ else
+ display_alert "AMLOGIC: RELEASE_SPIN not set, using defaults in container" "" "warn"
+ fi
+
+ if [[ -n "${RELEASE_VERSION}" ]]; then
+
+ # 添加环境变量到 Docker
+ DOCKER_EXTRA_ARGS+=("--env" "RELEASE_VERSION=${RELEASE_VERSION}")
+ display_alert "AMLOGIC: Set RELEASE_VERSION environment variable" "${RELEASE_VERSION}" "debug"
+
+ else
+ display_alert "AMLOGIC: RELEASE_VERSION not set, using defaults in container" "" "warn"
+ fi
+
+ if [[ -n "${DATETIME}" ]]; then
+
+ # 添加环境变量到 Docker
+ DOCKER_EXTRA_ARGS+=("--env" "DATETIME=${DATETIME}")
+ display_alert "AMLOGIC: Set DATETIME environment variable" "${DATETIME}" "debug"
+
+ else
+ display_alert "AMLOGIC: DATETIME not set, using defaults in container" "" "warn"
+ fi
}
### Phase 1: Initialization & Configuration ###
diff --git a/lib/function-img.sh b/lib/function-img.sh
index 6ea3b79..c79cdbd 100644
--- a/lib/function-img.sh
+++ b/lib/function-img.sh
@@ -564,6 +564,16 @@ function add_amlbian_conf() {
else
display_alert "NO boot uEnv, need checking it ......" "info"
fi
+
+ # Copy logo bmp
+ if [ -f ${AMLBIAN_DIR}/patches/logo/bmp/logo.bmp ]; then
+ local BMP_LOGO=$ROOTFS_TEMP/usr/share/amlbian/logo/
+ mkdir -p $BMP_LOGO
+ cp ${AMLBIAN_DIR}/patches/logo/bmp/logo.bmp $BMP_LOGO/logo.bmp
+ else
+ display_alert "NO logo, need checking it ......" "info"
+ fi
+
# Add link for start
cd $ROOTFS_TEMP/
ln -sf boot/Image Image
@@ -629,6 +639,43 @@ function add_modules_booting() {
display_alert "All modules added to $MOD_FILE" "USER" "info"
}
+function aml_create_version_file() {
+
+ DATETIME="${DATETIME:-$(date -u +%Y%m%d%H%M%S)}"
+
+ local image_name="${BOARD}-${RELEASE}-${DATETIME}"
+ local branch="${BRANCH}"
+ local version="${RELEASE_VERSION:-0.0.0.0}"
+ local spin="${RELEASE_SPIN:-$(hostname)#$(whoami)}"
+
+ local build_time
+ build_time=$(date '+%Y-%m-%d %H:%M:%S')
+
+ local compiler_info="Unknown"
+ if [[ -n "${CC}" ]] && command -v "${CC%% *}" >/dev/null 2>&1; then
+ compiler_info="$(${CC} --version 2>/dev/null)"
+ fi
+
+ display_alert "MEDIA-MODULES-INSTALL" "version.txt image_name $image_name" "info"
+ display_alert "MEDIA-MODULES-INSTALL" "version.txt branch $branch" "info"
+ display_alert "MEDIA-MODULES-INSTALL" "version.txt version $version" "info"
+ display_alert "MEDIA-MODULES-INSTALL" "version.txt spin $spin" "info"
+ display_alert "MEDIA-MODULES-INSTALL" "version.txt build_time $build_time" "info"
+ display_alert "MEDIA-MODULES-INSTALL" "version.txt compiler $compiler_info" "info"
+
+ cat > "${ROOTFS_TEMP}/version.txt" << EOF
+imagename:${image_name}
+BRANCH=${branch}
+VERSION=${version}
+SPIN=${spin}
+BUILD_TIME="${build_time}"
+Generated on $(date -u)
+
+Compiler:
+${compiler_info}
+EOF
+}
+
function default_user_conf() {
display_alert "配置默认用户和系统设置" "USER" "info"
@@ -709,6 +756,8 @@ EOF
fi
+ aml_create_version_file
+
add_modules_booting
# 7. 配置 SSH 允许 root 登录和密码认证(便于调试)
display_alert "配置 SSH 服务" "USER" "info"
@@ -771,6 +820,8 @@ EOF
cp ${systemd_patch}/amlenv.sh ${ROOTFS_TEMP}/etc/profile.d/
display_alert "默认用户配置完成" "USER" "success"
+ # default adb sh to bash
+ ln -sf /bin/bash "${ROOTFS_TEMP}/bin/sh"
# 配置 rc.local 以包含 rootenv 脚本
display_alert "配置 rc.local 包含 rootenv 脚本" "USER" "info"
diff --git a/patches/logo/bmp/logo.bmp b/patches/logo/bmp/logo.bmp
old mode 100644
new mode 100755
index 30049ca4da91ced118e70c43541c7232525d8f85..b502c4d384defb6d139859df2dc74877be3c014c
GIT binary patch
literal 720066
zc%1FsKX&5Ef(KxECKzOr*})u$=A6cxz_A@q-tN?FVG=v-y9#?BFS&RZliDkI!3##R
z8%uzyR03fv_`W*#o_o7-18V9=RjK~WZ~pPG%d9jn{`v3Xpa1!{kAE(*|IGfq`2YX?
z^ZRT5nPva?A6fQa+rI+<000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000KhkMkzHrc
z*=2s8FQVlte;Yk!)8g>}U++458Qtc8bt*UcQ;}K#U+FsQmQ+>wU9`34$A0<18Tq+$
zUVW5hHaYfN0M5kj?W<Lp<#)$^6Tn&6Kd=7E7y09{-v)37`pB!YJRSRu04J}ny!uNU
z3plX;@@kP^AN$P!C#^ZJ?(^GxmXF`dO`bYC>n3-v5ICImyjm3bw9FohU!8x>VV@WO
z_mC~KSwdpHj*j|ffRk3`)i{67enuWSDN<|P+9x!F6gZTR`J%6*hs1fGPuU`xSeN;M
zUoddCuCuF-^F6P#8>8;PQFI?8{~2v#8N&j;lc&fmh?yQC@U4VL-WS#r0^iE7NS|=2
zM+kf?;rUo&Jwo7Hc^!rF>dHKK;9GeNj=A5P(*S%ccfk=XdBt}y%_d)7=1FDSMfQ+A
z6>Wg+601vhjX&{}{fhj|WT$7^*QEH{n66!e@^9xW&#ejP)nEC;7d-#P`!$#!^&0S<
z&GOqXFR`^BRoT9Sex2P19{U!#dlkA%e;ZjB7v7O2W#;7M{UojQJ8I?QpR(7{EZ=;8
z_xa8H8o;|=Pp-N6lZ@LXwlXJmFRW?yvv~K<9p|i0iud?;c3J$bY+i%%#IbV4_FZkg
zHs@*?9AQ0n+0LtZ7RtI<id+VM<|Yqkz;&?Rw&m4zaYa{aTT-rn@%ZRkm{qyWm!rEq
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
zG8@h)d)-CiuK@r600000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
w0000000000000000000000000000000000000000000000000005C-V55gAp^8f$<
literal 1080054
zc%1Fs`F~th{Xg)`zE9FNNt-rp+NOJxrp1DyUzHsc_#mjrj-VoZP(Tq7Ww-oa-@oen
z^Y@(@43k;UOeRa)=ksyk0qv~!&ONVt?mf#xPyfGv&CP7OFaEg{|GbcG|C5<H*821R
z``zCI000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z000000000000000000000000000000?2BAxrjpAnS93o*TKe6Y>PKshFE*Nq<+F|E
zI~VJ}Ua9=xNO7*1E$1?s{r)-tkSG#xsgir*MEUPm8@KM6{dNZ>p8lU3v+rH5-#5P*
zh=r^?1mK`MQO)fn`v#RSuQz{ns&cfF6NUgBWGnSu$-#E{>U#5`rBbty-S2M+0R5e+
z?P3nL%Uc&}XB+wb{-OZT#~$Qhl+QPsHx3u~`?~@_x4p^1cKP9gC<NeO*~=V^a{X{&
zzrQg6d~c6)@QaP+iE3`Yzcc`RXJih3vflXMO5@G*wU^FTqr9?OeeZJp?^hcWN8$Td
z>Uxj@a6t6U!GB$AzIe9!z_HTx!-aUjVma5IB_`7vcRydw9;@W89V$F{tn`QTwF#o|
zspZOke{TTT)Rlv;t=4|DP+Y0!a%tn=Yx&HTxxx!)s$=EgzppiqR$LtgVE?Vu^X+VU
z=2YeCT%nSmWd4^zHgj{n_{ByuJqn*cU7h-O0f2Eud+_ax^$X4X&L==SS<C(9ay>Bz
zKfBgku4xhiu+NIw%xrOLy;fH0xlh+qTZO+|E>G)y0pNhRZ@&1|^`t0#>q4!RcpDM`
zZWGze%&V(O-DW=9XkKWVcNBm-&E?s`zpo`V2_If^X%v7vO*9GrbRlV6;frVW8U^4E
z^vmUPN)En#v0j~Mqy_*SWH*l_^_Ka^TElds0Ni;l&gTD>aEtKcwZ<u<2;ug3sF<CN
zQn(#TF*{$*E|zoSmW6V*IC!9SC6~E6SGae+_=6+;%gxrm(`&pl_57fhYL|Gg%d>^V
zUiX!JX5(<-=HQRl{)Ef5+)l=l7j`}n{lBkM%V*|_*(0UyJr#Q){=8Ahln?xHgR_mK
z9Q@|S?8Y=!V#;S`rnLDt#Vf@Yj^ib^cHd*+P-`#5&wh$;3b(aCU)-F2|8KWL`EUoz
z1e_n-#eJ!g`*?lyD?huEI=k}AXGeFukFOJ%p7Lt(@xH!3`U^gNvNCSG#KWVuT(0JR
zv`~EfM0qEbVw|GH>)bbAjF0iB3$=f&HU4v>Uju5r@$RMi3umf7UM#IP@`p>=y{w8O
zZYr&Sh>RXm;#0+0$7g9>M&k@*vJVsAJKkuep1Xgs_>;v_ZO8W+Gp)T43I6kArQe;Y
zesHBR=vV#E_2xSl>#wX<A6hC!%lBv{H}+2l?ktZTPwEnITbIa@sC5Tzfv5-mmXNUj
zb22ptf0r<C^ItC4qsmQrwPTfBN;m#rE|1a7ibqEC_Ti=S|6clTCb6%sHz$ase0Fm>
zvImcq(q|;=EOBBJKfkEDcdxfeyzqP}8!hx`gFm@ke(7xWolEtP*BT!UE)n9<7`&DC
z6@D;&4n~tXHhyH#*78rW7iM>`mQ(NE9IM0`OKg_4xx%68&CCP0mu4Y5)(pe9W08ZM
zPE>PGEmyjp9yR~CIT)|=%&G3znXJ6FT8oCsblZketFIp_#9oVB+r6LGxH)*dn)_AH
zMvE5o#A_Nx0zP$eI(s2vbh6I?x4Wo&es;99dlki4B@#Jmt#>cg|9r9j`ng&J%8O^J
zQA@=C{%`9v{>!vEueypH+;Y#6;^+NNd&bJaN<Q=RW2L^Yvy&2Acq;1|MFK|aZ?eYG
zxMi#yynmtp<<`k^u$0S0OT6#(=gCSmfyey}aL0%P>Z9E}XC7YSKz{pT{rS_?M~|1U
z%oU=Q(I{j(yR}619-pvY*u0vw)>=L_f+n&u@ygY=a<C<zoq6KKz-!>?Ik;5Gy}CNd
z^0g`D!>f&G7$$v=0d5>Fyt5|>*e>Zg_{h@0jXyySE|jw`CESJ{tHfF8_}d%q5K;f#
zoG<QK)v;Bg>G#}9<@({m1f2xtirHw|Jaej&(#1s%#@{?VxE}sCIR_&Icl9#kx2;ym
zJri|4iF2nX)5gC~u_Wf;1ILD4av3)VV=ugaW%^k!2f52t^LyGPjEemiC(6sy7=wJW
z)#c!WE5km#96Z~|e?9a9T1pNcujY2rWjDQib7Sl%j34mswNi(alpKuT`S2GRD+eP4
zcWE!kLAZCXnuNbUS36T5cI_+b^JpOEddd)yWziNGbfxqz&%r`A^WvzFG%^S0%h|v0
zNeFK3vh_o$L-XR-GV%-VQc20d*G2_&dJfhLncdq9au6DY%x+)uiV|tnx0C!rIlFPV
z@WhGoZ%<bvDBn0&`+ZOO&FRY1Co7TH5u<(U{0q%|-+M!Mc@D<r8aV=Scn+3wnb*(l
zb!+SMjb`GkWj|Tmw~k&Tb1;5gBVQyj2V*b1lC~z)WJM0bOskK<u2vdPovifMwbu_9
zBKtnL(inc>uCsiy-uT1$+AmI&d)t+B#q8gDu94p5Ir!6r{=ma?@aIEsZ|z=*tu*r9
z@$qVI=RH?r3r7mH%V!(SudYvL{9t_aA17pVVh-;16&pDSGp(Kmf4;a|eeEJgx@y|P
zrR>XRtBK2h_bm~K(N5{?VHkBq?~GV?c@93EFurU^4#o$VAZR|ky4eZp(c|Suj+f)#
z4=t7AY$tJDzs~Z&vC@zrj9+ZZ*6uCwJC7|ECw^Dv3TGSnXm~EyzAN$H(ZKvH?JEz@
z!Pum~IX(L0rR3mzDf{XAgh$GIm+QY?sXVw;di1~hB7V$&>{(k%4no`7+^#eU<Dl!B
zyD7q}x8XKfi8}n5Q=1_bVb}Kp;9Z`BDWly7<zOM3`E5c?-dSEeQ;n@XU(R;TSsIxY
z-(~Gk;k|JtpNR;bAH1Q?H1gvPpnLvwHGX@u#bHyrov!B-LuYsn#vb{7!u8~lIT%}V
zg2D2!=_319>bW@K?3!OUK3Kft$=YV(|Ka?1pHL1$TU4fhJU`_-L0?{Pc1==!DQ!Og
zu}V}XgSx!l<vI92J7^EC)br^L_ITvY`QpgQDi0O2DNWR^6782k89i1yL}K1MUrd>9
zAaT8kZxeFxjcMfILODC`Ws?`qR1@#6HVT>ezU>P^DUXM{!TO;oHwm9yE_c3uoQn7M
zd5a`^;zT*BsT+rjKRa4_`E0fKTHI$F&4`$I%%#~voXY-iq4@ApIqHyaMzsj!;K-*B
z%E8A6554ayvA@z6Ux?<(v&nO^MLT7o-<;%;r-`#+f7=?15kIZOk2l2}+<AL2US#<2
z!`>2S4&yHB5ovgR8f$03ouQJ?yg9ulVOOuesBE9#ex2?8EA<Ges0Z@d?;jIKany1@
zUi^OYuD34K;&r;#DvJNB<uef|ao`V`B~=cNe0tv;JY35DHSHQ^G_~S1CUN_;#g0p#
z`mFD8!Ykuk!@qxFi~)%UDhDH>-Wlhv{ew%1D|!LLL_Lt+dvkb+)a$%Yv{KJ?&Jp_d
z#rlw0?&E2T<y?C$gOfv-|BC~EzMLJ@w_gs9e0tv;ygFA%>^2#3Il&5s8_E5XUs<hI
zws#zj{~Iz*Tvv%O8moPDpmK1jl1raL@QpFQDKJPJNGbi?Qp)AoZ5La9z4CpX{Lxw?
zVy^40v#lZXok#LQd9zz-oE3LIEE<nd@pe_c?cRgEm4+M~`SiXy7_ID-T^y%OKR;GV
z+&G=8$xXu80$rP{GR~033xijm?CU_~VES;0IKw<XjX9ctw)4%=gRe)HkJlTWD+okQ
z{m=h)!@Jd!ERk#RrjH#j$DiLkQk?B*U_=ylwg%>ko0AOx@j~s9rSgetuCxBn^_yBm
z4vu_!Zw{7nnZ%i#<GF{^zDt*Q$Mm&M&TQX<ab7fhGQIDAglmo2F;~_*I5`-ncAck=
z!^?9kl?htqz!1MVz0-Bgq8-=SdoW^d>n>i@?VUAS9KMfiUlBMeqWc$%y>)v$vTIoP
zqsPnnj#{L50!BGF^69-fc&M07Y^=SzgLUgp*Yk-N{o=>a`2iz&6Muxyo~jhbOoxM$
zgSC9>klxsgr-x2g2uxtmaJ=;L!1l{!kzZSVJL4?9vv!&<W#8|2djIfJxvL6`XZ2pQ
z{qf?qH+uX;xpP>V931)d-W)tt%cb<ykLvg7<So-{F1gR=^QWtw{XgcDbMS}b^pI&g
zI5`-9o;a)a->)_%Ud$I5BE55a-*RpHRLPw^MY|diXB+uJ!yneRzsTmOv7Y7BKe*DE
z@90{8X#3C%IXLp^y*U_rBqax9ul;0klAD8V>Fu2ei_SUL&NuUkKf<eXV-E*7I5~JE
zIqqLLQ`JutcEe&hm$JZL-*T&`f5OWh_nV$u*%m8j2Dd#Uq`ErE+;gN)&w;MC=ZhWh
zB?m`7y*CFFJ99=>UQ1pWqF1!;Q>MH5wsor0`7=nL3wMI9Be!D?K6+e7QP?dLuWkDE
zjqV#3ogEvxa&Y(pc~R4L9^z3=^*-j6)olYbezZ{BdO<lj^69-fcr9%@g)cUm!-upC
z7diM`T0fAk984c`F~KsIw_^_8J3q<d#XyRMa`uynnuJk%FK@3QJMVNvY<2$CkoI7d
zS66G>ZYGxdR1VQ@?HsTlZ@u-g<>1Jt?<5CTcF;W|JqJJEXm$=Ym4jVng4>`#x(Vj^
z{kF9jMAs#$&P%Ludf)k1OO@Q9*+JWtZD&PsxRmXkJ?5Jmv*$Z5!<KTHt&TTxaOBeu
zehx<IoL#N&weh}14gxzD2jc`Q=6ro)wyTDG>%#XvB0gSgbas2F<VH;9wo?DTHft0z
zZ};n5(RHJ0>oIb0<kJuSb<rrD3r}1~?kCeZf;G|Yn1eT67lmE+*zxkX3*5xxJ68sr
z+1~p!>d&r@e8bluxPRgM;bRe+FZUbb-8Fh*E05&h$fr-7gI`{6o*Q$vmQLvtZpSB_
z>$onO9uQqK8l^ZmIe4g;{W5K(iJu?qzbXeXEm6s)ghf~Bx>oaON0{EaXSTg);Fk46
zg&|S<#EI|g`S_2%>mdB>=(Zf(>fs{?Q&Og@7F``YlBKi6w%tifB)vWO*UR<JelqFf
z=qDJ~ad2`lzH;LDLE|Q14?Mgyc9Zb&?Q0N3(siEPzJI0B*~2rA;?4`FT_swJol~pz
zPP!Pu+O_V_)`iyFItLfaxs*D2>N&VlPs+jgNj!FZyp<+8Rr9IqUB0(H2R8@cr!5&D
zznpPr8#_2T7~AI$Y1=1`rdnPO!tSc%GQH~t4lhv&R6CB%+2XeTEs=>`*Q_qh76#S5
z4{X2e)A#n!rR}fwm&<p;{lVpGE@kbHspsHgIh%L|Agb}iEz>LN|HSKludG%(zhPuz
z;;-?8D~)>LcFn;^@MqK7%W>c=_FJV9n68JGN-1rGtrAsS*P_^6E2%{-(e)PhFZAgL
z*gD3yz0Oi4*Y%i>*BhNZ1EbFT;Ew1odNpm8y{YG5oc6r7n$!~c=X!JED{`l5-TQG+
z`NfHHXLBdMZ6ssL6K{<_l>Xr4V5T(^HgOX@yksan?7FD#hKz3LTe_}Q{-2|z&Wo$J
zddB}|TCKttI+joR>Uwj%XU39+a<*&1`Zv#STY2q#^ZTmo_RYb~>BpCn<}sLh4#xi_
zF7Ox4)yX>T#|KVa+9}F?^V{ax&W`ik2gd9}a&U4m#F=E`*No5X(kSeKsE$&mo!lxB
z3Y``7p`Lk_<KR8p6H@V%W0l;=+Ggopqj08mJ+13zV&p~V1LE9xD@kwP986zb=&9w(
zbaQZKoVm;1n&{GKX`Ieiy~6<0rx^Woy*bt#)CVdDXA9YXB%gf7z7~YA+v3oEH*Gnd
zc8SJ9=T)gpzwr@qnD<8EaMk>_%VJ+_G`r?9?d)A}o919_tMujhqCy^20ZyEQvEve(
z|KHr$9N3b$eYU<``U<muy<G22iX;7|Qy5g9T^V?u(Ca|uU?F)5*7lB=U|w-xTygA=
z)g<g3@-Wk?zIx~G{$#zeHgvk?c!?h^Y+FaJ^Rie(Pv=`i6SA`czfE&6YU9K{BvH-}
z9>h0s4#uA(cG8Fv8~nsLx8XK_2FcBw$NEho9nHz#_N>4)sQl-~>`#xD5|i*i<={+f
zmBz%c+1`~`L?P_537Uk*w$JHt<8Ys$f>Gzcey(=1mdj^mI_u>4&q{uC;QX8CH)k1*
zch9vRaR1_Wt%-lGcVAhJCTHjBuD4MRW?JbJwc_I^%IS@r__9M*gr7JEXIi7_6W7W8
zcC+h#JuwO!g%Q&Sb$z=*Q`W4f4fb!BIC<+jB^%_R<zW2&Ur%_Q&b=9jSo$r|c;r$g
z_rjU#=!XLT6-U`v9Y=q4YTFpDTxQ#vyqzV|Fhcgp<#JSU5nkt-`DpjGd&qyj(R|}v
z?f0$n+G?$x#kX2BX>=a(hl<&*dumh3!Fb0rjeOLQ!%KYNKVBGJWqo+HadW<SroQdD
z7n=D8j+K6Mx)SZ>v4(2KI}WMecanp(<ne3m@{hH~+FT({R|b8W_^UW+NxbRVF0ZUs
zD+9WJ%oehV%NMpwY}L0f)?+(ITXIMsc6PEFUiKyj!{ymAPDs9Og?^lmE!T2G_C=<3
z(KU{jCt4?6@s#180q7Lf(pc5wt)As{+fg{^`s%G#mGw=l3_1McZ=YM))-fQ{uiBqV
z4&G|L-G4@v;UBp73wAwyth#Qi{PgIs{*XJ#!I@F>{PdQ1@LLyZ_s$pR%h`z0N^Y~%
z3z@}o_Qv62oK6f`SfuYR?wXyi%k|{WJe{BLub1nO9p60HiUw?CP*;i1nK+^Dp5<WI
z4e`YC^^MJb)Uhv)RW`q7wY@v?nP`tk1Mt52V!URYdA5IbU&=ukQ=HY0RXu*X-n}qE
zyQjp&>-<L59ZkiqPqlHl@OjVW#Hr-qfi3avhEFBE!yJr1{!Q|2xUTZadgHAN^=PvF
zbA9Z2+S{dT9-&^Xp2K6Dl1;blSq{#$##*M|FYYaIv_>;L_QkuG>V01)nuH@i1JEg-
zoq2W46V$#p#pa6H7tU128kQK9_Uq?rz03U^ujcwr#&~Dv;N}4Hp_S+kbMU)OG|rXG
zX_b%H8Vd<?q{J!NP6A>lWiN9u{BWT-*8PaFiX4OqoN468y^a^BqkWgFn=fU5xm=F6
z!#~y<aXj|EY*chnE5@np^QWtQ7dV(NX9wMwyMuEua(_q<nYNwhV7M|@7^{=;&P%lG
z)0c|a)qogM_BaP)9}QoYWhX@r!UUojGQmBIsB+g24eZReuz44$@ZeG@YVX%u{b8cL
z^T_dXR5(KxRK3v5e=_*`>YbW{(TGl2`)?{aIMbToYqHyy6O?$Pn?oa}SNvx7?Bi{f
zJ<h?I)^*@F#_2nnUgRK5=FB)Fn>x#r%jF3cNbPl`lznKaH2hBG9hrlFznT<+Gt<k#
znbx@eJ-7lHExQMM?);{B;8-bTPVy<1z0bj!Rwv$<`mMjY!y*S^GWkr>aJjxEnln*x
zO}v_Uv>fl9FTQtqbhr6CEC-{$ifx{L7BR&foN0|H9MbgOdHMIX=D01vP7zGwu8Ojg
zvM)K<_V|hNblbmj5GEFRw39nWpIvJ{eX?@na3L!8k;@ijT6YpJ&laK$m_7z=cn%(~
z=6buB9>5aS)Y}*9&#qL)oh@X#IXKh0FFe+;?)383h5GPO5-DPbKDSayT%B--Wgl}e
z+?+3tHKWDIAK0Xu9PV~;us=18d-u^Odv&$;*zxjx^ToBf!b&|K2^*;w4aQ5eg{W|T
zcC_@{)76v)U{@KQgLB1fB*m+%)mIK)i4F4n>1v$$NAAZ)m~1tHspsHKtHVaL<tNw|
zgUYAto0Gj%r?*_fg=Rj|aJSorBXjWmE2B5jhgTc%Bb@AO#uMW-GI6xy@Di=d$vy)x
z(^?I1>YWLrVvIWEub1l|uQzts6>xYC&a|4D?YY_xTA9jna=Vd(ZE>O!0lmZFdvX5r
z%jNRve!YlyF4~6oFBX5jQu)i}dip$d>1Fur;+fWf*4RYD%RNVm6EEP{cD9j!YPr&P
z&`^5$Xsxl6&j5G1IEYg!+x;pdbMVf#dpX$FC}g6xk1YG+`C4Mu+-fZoAFcbF^Tnxj
zmm29vDH~z2eyH%{#nQt|<w(Zoc2?T2(035feu>l3d*_SKu2kN=R8PNk7`y(>^R?I}
zEA_qD5pV~KWAL+ST%3`EQ@7hWxFrHHnsw2-`N?AG>64Xcq5SSl_0JdU?_8|Eey;Yb
zQ<eB6k1TCo_deg;yy(62cbwSH-}xXf^LMzEjV&BI;(=qOXIh*6<+IgyF4d#Fwpxq-
zjq=pVN}Lj`9V(ox<*eQdQxON!Bgd1LFPDRRY|nDAS0S63EoSG6n=@OgYWGn&w>h77
zlo7Mk0Xs8a9%JEbIk;!`F$V$eDw*wT;~tzM2jw8Z-dHSW_i_}o984hx0rt$nY!b>r
zIS8<4qDeT`YU6Tnx5>f%l4%XGJXOmLDW~iC#d2;c14V%YA`a;L7x!*q0y#L69NaIF
zZZDm!e!kHhUS3<RH43&q+)?U<%%ApeiEugCMGo$l$iX+yk3JCIx=^2Neo^2c`{6=y
z_*zJEaL>rW{j%HhYy$^bEuY!pw3BjhTIAq<k%MrTyKnxWGzsOP9NZUj5bkpMv`Rn@
z?lw8NU*sTgX}0k70caA+K{>cD<RB1UTiyRAp&XQh`$7%^;o@w5-<yPTP!8@3IS90+
z455;PyGIW07dZ&DMFxGduT8?p!E;SHC<pgi<ly^P>LWM)hgTbOML7s}xR=gW_csU6
zY7ff6Jr`T_+M&V&$4bM?^}~gd2}a>gceIlGVxzfVIT)?c*}M3<lN<y%2==i__{n<X
zZm#6zAizNoO~Nm)?@yEPnNyX!xssQI00+c=H3^q%x&8j?`$-N091u&D+-KMJx=Hxz
zYBhg%*YI)>;NW<2xxAN?Z-2JYTqxhYJ!IPCAi%+KsF?k9eUF-iAFnm;=3#?do;fu-
z2mdVx0rtuhC(65>fVb|M{q5=Mk<#7X5^VeF(bC_pHvW9EKB&BNvHsd>O$-9;jl-qv
zM{A8QHkwl}(WrUjT<xKy(ur!Wpn3CO`Rq(3mnjV{<<`IV`(pwC000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
z00000000000000000000000000000000000000000000000000000000000000000
P0000000000K$8Ctc=Ynu
--
2.25.1