From 4130b59b509511be2ea62c2696f407d9551594e9 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Thu, 10 Apr 2025 15:01:10 +0000 Subject: [PATCH] distributions: add LEIoT distro Signed-off-by: Christian Hewitt --- distributions/LEIoT/LEIoT.png | Bin 0 -> 1218 bytes distributions/LEIoT/LEIoT_40x40.png | Bin 0 -> 919 bytes distributions/LEIoT/kernel_options | 1 + distributions/LEIoT/options | 269 +++++++++++++++++++++ distributions/LEIoT/show_config | 3 + distributions/LEIoT/splash/splash-1080.png | Bin 0 -> 6264 bytes distributions/LEIoT/splash/splash-1200.png | Bin 0 -> 6637 bytes distributions/LEIoT/splash/splash-2160.png | Bin 0 -> 17262 bytes distributions/LEIoT/splash/splash-720.png | Bin 0 -> 3743 bytes distributions/LEIoT/splash/splash-768.png | Bin 0 -> 3694 bytes distributions/LEIoT/version | 5 + 11 files changed, 278 insertions(+) create mode 100644 distributions/LEIoT/LEIoT.png create mode 100644 distributions/LEIoT/LEIoT_40x40.png create mode 120000 distributions/LEIoT/kernel_options create mode 100644 distributions/LEIoT/options create mode 100644 distributions/LEIoT/show_config create mode 100644 distributions/LEIoT/splash/splash-1080.png create mode 100644 distributions/LEIoT/splash/splash-1200.png create mode 100644 distributions/LEIoT/splash/splash-2160.png create mode 100644 distributions/LEIoT/splash/splash-720.png create mode 100644 distributions/LEIoT/splash/splash-768.png create mode 100644 distributions/LEIoT/version diff --git a/distributions/LEIoT/LEIoT.png b/distributions/LEIoT/LEIoT.png new file mode 100644 index 0000000000000000000000000000000000000000..5f2bfec24478965656cddf6c4938a3dd2b2def58 GIT binary patch literal 1218 zcmV;z1U>tSP)}xm z0umCR1Ox>V5|sxB`Tzh45)y_82m}%np9KXY4-cLN1%(I*h6e`*5)us&5r78=Iu8$f z2nUY`2X+Vu5D^gy5)l9s5`72=2@w$^5D001En5Q7H?aR>>42nU%4 z1(5~^02CE*2?_@h5s(H3dI$-M2L^u!2apE`02UUJ2L_l12ATy09}f?k1_mDw5OxR& z0TdK|2?>)01$GJwbqWdq6&8R93400(fC&kK2?Am-6dbyqP zU(a$==L0n((#=3zSdBj`m%f47MFf)(s9dOQS37sn3*qtoiiJlkq20s05BSAf@l#Q>b!V__)O@A;e1a-5oBOIq4E4k z8ZrGsHzd|!Oc6jU61+PmtBV-J5U7INK|F2H1R3F*f|n-@@dfBs7cmQ8gLvI=4zxwA zY-3*#FAXDJ!*QW+qt~GGaxY4}Zt(KTQSRH~ZK3jV45iu_e7t&@q+wOWQjgQ9wZZcJ zLU8emKQ;hky%xlni*;=)H za2JCN6pzh%K4|(x7zXA36MVcgKc?k_)Hh-b&oT5_=R+GGMu~jTaZoeZ(DD*yHU2Qr z`9L@D96-{@`||-|n42;4NF7(SPld(OSL4V-gYC@`=SHV_6gW^o@890DoLuo959NLNAVScU{}wFR{D zVJn5vD&qJd5w~T_mNC{rvIG&curL_lM68CvnvtML7Dd6xK%lz%;ZpFtYOVKeSNG+*2VpOWji%N|-#-fs% zsxjjp02ozv*1?PbO4t1bnG7ft6ys-pFPE7SiX_CtFb@GZ&T$|l1cZhHN?!nQhhZcb ziz#(N=mTIG04EEbkX-^GoRH%Ptpea;Sur7jgft+IB?J*-L+~R(Xh5hMA%;?&AhbXz z#dtf$H3&%vu^@DtVg3|}1dM|zeg5(+8%SvcAzDG06p3sI@q|D^@&#d>Vayzg#MlNQ zN5}-jYyj{S06T(WN>%^}qV$j;*dekY&H>pL$m#`NM5zNpGvewI)boNBaiN%J2PS~U1g#klKXN~vUn0JL( zdHS4nX<%E(T#4l0$FE9N{Fw=Us_c&|SSqSa&6+-Upy2!~QpnE-?he`?yI`{9{ubU- znb0-)Ai}j7-JbVrXP8AB-LL+@%b#pG)xFp?m=qt|l2Gv(?L0ceZ?W2$>E_*)&ctFm zzbm4??XK&=fzpNVf};C}$8~A?Hcg6YcI!InE{vR9Zt6d+c`s_+tj@jfxV5w#=Jb>VE^6=&P7#j|F`j+~A`PlkJHwmP$X q#Z~;~`=4YvuYtMIsgu(K@HvSI<4>{8S literal 0 HcmV?d00001 diff --git a/distributions/LEIoT/kernel_options b/distributions/LEIoT/kernel_options new file mode 120000 index 0000000000..1c8f75ccda --- /dev/null +++ b/distributions/LEIoT/kernel_options @@ -0,0 +1 @@ +distributions/LibreELEC/kernel_options \ No newline at end of file diff --git a/distributions/LEIoT/options b/distributions/LEIoT/options new file mode 100644 index 0000000000..11218ce958 --- /dev/null +++ b/distributions/LEIoT/options @@ -0,0 +1,269 @@ +### DISTRO INFORMATION ### + +# Distro name (full name, without special characters) + DISTRONAME="LEIoT" + +# Short distro description + DESCRIPTION="LibreELEC for IoT (LEIoT) is a simple appliance OS for containers." + +# Distribution Source location + DISTRO_MIRROR="https://src.leiot.org/mirror" + DISTRO_SRC="https://src.leiot.org/$DISTRO_VERSION" + +# Distribution Home URL + DISTRO_HOME_URL="https://leiot.org" + +# Welcome Message for SSH Server (up to 5 Lines) + GREETING0="##############################################" + GREETING1="# LEIoT #" + GREETING2="# https://leiot.org #" + GREETING3="##############################################" + GREETING4="" + +# Root password to integrate in the target system + ROOT_PASSWORD="libreelec" + +# Partition labels for USB/SD installation media + DISTRO_BOOTLABEL="LEIOT" + DISTRO_DISKLABEL="STORAGE" + + +### BUILDSYSTEM SETTINGS #### + +# LTO (Link Time Optimization) support + LTO_SUPPORT="yes" + +# GOLD (Google Linker) support + GOLD_SUPPORT="yes" + +# MOLD (Modern Linker) support + MOLD_SUPPORT="no" + +# default linker (bfd / gold / mold) + DEFAULT_LINKER="gold" + +# HARDENING (security relevant linker and compiler flags) support + HARDENING_SUPPORT="no" + +# Default supported get handlers (archive, git, file etc.) + GET_HANDLER_SUPPORT="archive" + +# use local ccache on build host, if available, for early package +# builds before ccache has been built + LOCAL_CCACHE_SUPPORT="yes" + +### OS CONFIGURATION ### + +# Install glibc locales to the build (yes / no) + GLIBC_LOCALES="yes" + +# Install arm-mem package on ARM32 (yes / no) + if [ "${TARGET_ARCH}" = "arm" ]; then + ARM_MEM_SUPPORT="yes" + else + ARM_MEM_SUPPORT="no" + fi + +# additional drivers to install: +# for a list of additional drivers see packages/linux-drivers +# Space separated list is supported, +# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" + ADDITIONAL_DRIVERS="" + +# Default size of system partition, in MB, eg. 512 + SYSTEM_SIZE=1024 + +# Default system partition offset, in sectors, eg. 2048 + SYSTEM_PART_START=8192 + +# Size of storage partition, in MB. Must be >=32 + STORAGE_SIZE=32 + +# build with swap support (yes / no) + SWAP_SUPPORT="yes" + +# swap support enabled per default (yes / no) + SWAP_ENABLED_DEFAULT="yes" + +# swapfile size if SWAP_SUPPORT=yes in MB + SWAPFILESIZE="2048" + +# debug tty path + DEBUG_TTY="/dev/tty3" + +# local console login prompt (yes / no) + LOCAL_LOGIN="yes" + +### KODI SETTINGS ### +# Mediacenter to use (kodi / no) + MEDIACENTER="no" + +# Skins to install (Estuary) +# Space separated list is supported, +# e.g. SKINS="Estuary" + SKINS="" + +# Default Skin (Estuary) + SKIN_DEFAULT="" + +# install extra subtitle Fonts for KODI (yes / no) + KODI_EXTRA_FONTS="no" + +# build and install PulseAudio support (yes / no) + PULSEAUDIO_SUPPORT="no" + +# build and install pipewire support (yes / no) + PIPEWIRE_SUPPORT="no" + +# build and install eSpeak-NG support (yes / no) + ESPEAK_SUPPORT="no" + +# build and install with BluRay support (yes / no) + KODI_BLURAY_SUPPORT="no" + +# build and install with BD+ support +# (BD+ decryption support in KODI) (yes / no) + BLURAY_BDPLUS_SUPPORT="no" + +# build and install with AACS support +# (BD decryption support in KODI) (yes / no) + BLURAY_AACS_SUPPORT="no" + +# build and install with DVDCSS support +# (DVD decryption support in KODI) (yes / no) + KODI_DVDCSS_SUPPORT="no" + +# build and install bluetooth support (yes / no) + BLUETOOTH_SUPPORT="no" + +# build and install with KODI webfrontend (yes / no) + KODI_WEBSERVER_SUPPORT="no" + +# build and install Avahi (Zeroconf) daemon (yes / no) + AVAHI_DAEMON="yes" + +# build with UPnP support (yes / no) + KODI_UPNP_SUPPORT="yes" + +# build with MySQL support (mariadb / none) + KODI_MYSQL_SUPPORT="mariadb" + +# build Kodi with optical drive support (yes / no) + KODI_OPTICAL_SUPPORT="yes" + +# build with AirPlay support (stream videos from iDevices to KODI) (yes / no) + KODI_AIRPLAY_SUPPORT="yes" + +# build with AirTunes support (stream music from iDevices to KODI) (yes / no) + KODI_AIRTUNES_SUPPORT="yes" + +# build with libnfs support (mounting nfs shares with KODI) (yes / no) + KODI_NFS_SUPPORT="yes" + +# build with Samba Client support (mounting SAMBA shares with KODI) (yes / no) + KODI_SAMBA_SUPPORT="yes" + +# build kodi with alsa support (yes/no) + KODI_ALSA_SUPPORT="yes" + +# build kodi with pulseaudio support (yes/no) + KODI_PULSEAUDIO_SUPPORT="yes" + +# build kodi with pipewire support (yes/no) + KODI_PIPEWIRE_SUPPORT="no" + +### KODI ADDONS ### + +# Addon Server Url + ADDON_SERVER_URL="https://addons.libreelec.tv" + +# set the default addon project + ADDON_PROJECT="${DEVICE:-$PROJECT}" + +# Settings package name - blank if not required + DISTRO_PKG_SETTINGS="" + DISTRO_PKG_SETTINGS_ID="" + + +### ADDITIONAL PROGRAMS / FUNCTIONS ### + +# Testpackages for development (yes / no) + TESTING="no" + +# Configure debug groups (space delimited key=value pairs, with each value comma-delimited) and default group when DEBUG=yes +# Use ! or - prefix to prevent a dependent package from being built with debug. Add + suffix to build dependenencies with debug. + DEBUG_GROUPS="" + DEBUG_GROUP_YES="" + +# build and install iSCSI support - iscsistart (yes / no) + ISCSI_SUPPORT="no" + +# build with NFS support (mounting nfs shares via the OS) (yes / no) + NFS_SUPPORT="no" + +# build with Samba Client support (mounting samba shares via the OS) (yes / no) + SAMBA_SUPPORT="no" + +# build and install Samba Server (yes / no) + SAMBA_SERVER="no" + +# build and install SFTP Server (yes / no) + SFTP_SERVER="yes" + +# build and install OpenVPN support (yes / no) + OPENVPN_SUPPORT="yes" + +# build and install WireGuard support (yes / no) + WIREGUARD_SUPPORT="yes" + +# build and install diskmounter support (udevil) +# this service provide auto mounting support for external drives in the +# mediacenter also automount internally drives at boottime via udev (yes / no) + UDEVIL="yes" + +# Support for partitioning and formatting disks in initramfs (yes / no) +# This adds support for parted and mkfs.ext3/4 to initramfs for OEM usage + INITRAMFS_PARTED_SUPPORT="no" + +# build and install nano text editor (yes / no) + NANO_EDITOR="yes" + +# cron support (yes / no) + CRON_SUPPORT="yes" + +# build with installer (yes / no) + INSTALLER_SUPPORT="yes" + +# build and install remote support (yes / no) + REMOTE_SUPPORT="no" + +# IR remote keymaps supported in default config + IR_REMOTE_KEYMAPS="rc6_mce xbox_360 xbox_one" + +# build and install Joystick support (yes / no) + JOYSTICK_SUPPORT="no" + +# build and install CEC adapter support (yes / no) + CEC_SUPPORT="no" + +# build and install CEC framework support (yes / no) + CEC_FRAMEWORK_SUPPORT="no" + +# OEM packages for OEM's (yes / no) + OEM_SUPPORT="no" + +# build and install ALSA Audio support (yes / no) + ALSA_SUPPORT="no" + +# additional packages to install: +# Space separated list is supported, +# e.g. ADDITIONAL_PACKAGES="PACKAGE1 PACKAGE2" + ADDITIONAL_PACKAGES="avahi curl docker htop Python3" + +# build and install driver addons (yes / no) + DRIVER_ADDONS_SUPPORT="no" + +# driver addons to install: +# for a list of additional drivers see packages/linux-driver-addons +# Space separated list is supported, + DRIVER_ADDONS="" diff --git a/distributions/LEIoT/show_config b/distributions/LEIoT/show_config new file mode 100644 index 0000000000..d187eb59ab --- /dev/null +++ b/distributions/LEIoT/show_config @@ -0,0 +1,3 @@ +show_distro_config() { + : no-op +} diff --git a/distributions/LEIoT/splash/splash-1080.png b/distributions/LEIoT/splash/splash-1080.png new file mode 100644 index 0000000000000000000000000000000000000000..3325fbf147205c7205cfd6699825429062ad503e GIT binary patch literal 6264 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 C#~={^ literal 0 HcmV?d00001 diff --git a/distributions/LEIoT/splash/splash-1200.png b/distributions/LEIoT/splash/splash-1200.png new file mode 100644 index 0000000000000000000000000000000000000000..0f1eba7698b2353bcab8a19b318b9cc6ee369c8f GIT binary patch literal 6637 zcmeHMd010d7QcxBkwsQnREW4Mi@O!2ARE;n}rruK@*|g2_&{30%vY=E2*ouSZ z5^zl(cu0UY4dfWW$(bxgR9KqtH#!>L{;qTIZ2I5v(2)s~y~3HS(8&6Z)j`>E-|ZVT z=r8io(c~4URO3Jb^AH}$xuRn)ghK|viKBy{ijMh(&v|Vgl;6kY^H}?Z5dX%BdEY;m zwVjLpI6FQM7W`QTd@d~bxGH{>0rTbZpB3}dT(ceEMH#p-I<1%QX7r?c_6oyw%d2_p zfZd(Kr;T-5jn#HJ*A>54Et&2eeOqT0Q{%T&$?u$f$hoFb0xn)~u`=UA|3W&$DTy86=sW3AyF1y?y& zg5VWyB*(zW_^LR4=|th?q_067SOqsrlT&CuU;O~WLXvPd>??h27j2fbftinsuP4_rN ztT?4dEY;3f)-XO(CgQ=B+vhe=C$tOLi}2EHZTR3acqX{u4z({D=iCl-hu;=EhdibS zDypJExgf&{9J)$D))upOdQ=svnYTLHs*8yu2$2NcwY&_Qi#5C&kU)ynV2$SM>}yui zn3*FW$XgTWm)lE>@yqGrboNfa_`oM+FoXnD{#tV9!aSWzUZWBFE$)G4V!8TU`-!>T ztf9i&>t`iTheeRL`p!+bNUdJyriu99T~N;p(@oq!&1GKkGW>Q{y}`}VphCEH#sGF` zR2G!z=W8fvFql{5Tm^2p!qmdr+>(=%gBO%I!zZX2%)7=LheM0u>ll|_q&}J1M=iZD zNl8-T_;d&74l{PdPuscXXPcv%B*@$Sc6oL7g+^6?=5r+?NgtacbzA#$y~m|6%0=0C z5ZslgZcd)TJBn>;D|mQ+>-I+$!_HXL+L%2z8=q*KP*;fwmPYbVyDuzSDJ5h;!k-;7p{Ia0KgW6-{ksKOa(q9r4?N_$I^qiaCw zq(QYjV#zKWC^5u&1w7TTNEbDLJ1iF7a&xn^wWd z-4)0On|^OUb}Z????-ABCjaC8n3`3H{M;^QNK6%R9l=C=elkU3A%>MC6ec7Ua&fnK z5`<$A;ua?a7pis@^Z$6Q1G86I8QO42JE)^`(LB@(ffA1{yF(SNA9232ExIZ&x)rdatFww;GwQ9L(8tpd z--49+8BWISpn0_UJ!uK&wP@(a$LZ%oG!Y-)CJ@38v_8rPR6o*ZPju9TfWF!I0hYnQN>6CiC4_HNnn!I!>J&s0?u5J_PP24P zkd#a-O?%a>|1PN^5c0m1QoF{Snh6famR)bulCd9H_64dZY{~8|Vf}pt-F-99N~dZH zE9;%N!WIJ#e)=8;@jD9xP7}|fxsz$Cap^#axe7-+tzmk}0{xb@5}7`|cf5)z{ji>} zico(v60|L1cdh#B@%rT%5fYb&5vEsepJv(m7SA5PH=SP_BrIaxibEf^nROi|<*D5G zp;^$}X;>jDdp+J>>kQR7a4r2R14FV!lSiaN!aesRL7a-uZydDI?~25SPcCv&mRtkk_Dp-?raPmwt+7{J!8h?0N*EljU z=5hU-RLyF?s_r+JX{*r(p<$%rt|QQEzSyou)>qw~;?TFROw!yvU`8E!fy3!uRy$KM z2xD4xpOoSq$7xbrBVl90g>6r`^Q`SB&3IJ)ByP9zXPM;haH?=Ws9s z5Q~4Z^sfR3Q8O|MDOM0$7ZHFnD=c@8#27*1-v`8MvoH2RDMWFNhfO9(h)iRN&RxXf zF?Buo;$#~u!}|{6^j$c4)2Qrv@*6gL7jYf-+|q$Zsq$e3w`)gkMWF{GWcsY}BIjh0FD~ZvDvd?DrKcvV6p`xQ zbiZMmM%d+c7O7CqXWie}p<1iGCR7lWa12eDap@iW6(scV}k=zda>I?tOR=-gox zXDu#pFLP^e;V_>+O+SsLrlk{&sfZW7_?z~oW+hJYk{dZ)3f;_?N9Db5qE*CC$zrEz zes?<2B&uAy&1h+A2;E zksZQmMGz5C*&=cT6=g=YjO05xNstaJ@Av-t{rY~d|C}81jC)qtvuH z(*OWcrklRn0e}qlDn=C(!ah=V>lTw_lpG!UL4HNpW*V% zfOv73t6wDit1R|04~76R2AHZa5W)V2B(Vo!HufMc!yaP0v4<@3o42Vf`Q74AEcr8e zA7AoO75{9>C#?G2lBqc2!;%kgQ;~vuamq_RIQ|n$KKt(f0aX73afbu+|2xfPk!URS zeLN}tj+>vu_{TExPsrAPQ|kS%pa72P-{Jfdg!r4>{khWpBP$&Ybcp{-fA~3!|Ijf0 zW&8iT4Dh+qeXewWeRBLv^T{+P-crSK|&p2IX6%y#2`O0o)`EsHDMTe91B6}6wM#-1( zb@O1#h-H(Fht0wU)$D0#`qIjL#`YkO8j0PIBvvbkw*dR6JdG3aM`t2*pXP4ml^tdl zJ2Sy71iM@^1`?=qOQ;j+Q0RSSLReyKwv%hvjlN%|FM%N}6a=zQtCjmB)do@4GpV?v zjX^J`?ZUDNci)w%&B6D7GPx~{<~eF9<+-fAv0r!@zT=*2$*yOmrAd#l zmi!F!!_v`=shVihAiYQ+dSs|dh}@CAwZIA63fH|VIKkCaAI`r~lBHi4X?#eU092bYQlm+^CKi#!vW5Vd3a^f2stW5)?7juvlJBe&lZGu;Z1ypj>a1q z1p>EHFGGOzSQt#${_?DW>Rd?7aPLbWTPhfHt zg)l4yMW&TWnrREBz87ZAhnr=Q(ENvwCbSKKA`7>hu7LCNkM#}*G;8v-r4B+4VyG^W z731KEF$Rart+^qa4`Z{-Bsu%!pV&qw)>0PZig|IYNIO06?TFoLZ5=##f&L{Rg`9O+ zR2w+5{DB(_R2vztj(fEuao;(J7w+2W9y&pm*BTNw1JXMpH9f0U)x^T))rv$TVM&~8 z>Vuq<=cZQ&`6b^oXRd-nwW0AvCsNCqUGW(T2So6g%H2+T7$5x5Q{8zEGO7lXs!Z!< zzdk4RY_yA81jW!uLfE#muQFd(o`D>6BeYf|#-Hsbj1($}ux3ZZylafDO`R{-v`Y*(p>2owNspbcb53hZqB#*qV>BMSAuDWovRy!$ zg^P}7E_dvT=*@iH!d-g)Gs1d1Al#kdMC#VQC3MLQZ>_S6i(E-zYt2vY1eGy{j*T{! z4db(4vm_LZ46S1ONNs02epKI2ig5@an?HOPp7?|xkW#i)$up>FoL#soxGt1(4N?ja z4eD#$HMmdfh$n|7*|bV!Acp-)F|9l{{th8$%|&`+Yeed<(X|_YHR{Dq+`vPy=c4uZ5u9f1tGXzc85E9jOIC>pwyL+50vKX+mFM@ZyMu)kj@tRXzxC)bZK zoUEVQyz2+IceP(%H;E{a6Xb_}Au{Vl)9X?97sK^LmV|z8lfn;GZ+{vXHf%KziCQWG zVYwbpE{3p)^MQU^1De%9WNGT_v65O|G_K4X=#75i{o1j#X+p7fNNM((veeBZ&wz9! zJk)sGY9PV0p|CmFvGcuvt;Fxlv~-$1)$+|iVbeq-IrSjoatJO-V2pu1HwrHRP8uAh5U`$~4|ia`e?xIXiw zogfKSNuzpsCyFs4jMLw&>1-sjA}A{<#c#aRCN}8;(uWh<#L<1SNLtTJHJ$UXb!DEm zE@pPThCAi>jD5&4{<5MoB}FC`LuQL69RwL~gnuC+koPF`4jY)<=3zJ&AV4Z`hSUuoiwO7ALd zf4{Cnv$rc;xANo*ExtF_`njK#B9PtHW8CY50t})Wqt&z$1x2->ys~UTc><7bC{$GqVcns-1Oe>+mwcuLrVQW4^$aM&>thg0XA!PPQ+FZK62&S8(m20_UY?6 zM;V=Fmd@8{brB`@{JN(Re}#FL$nu&#ys9#);hWm7x@Os1PlrqdezufGbE-ySfb`Q+ z)oph4a^~^4W6ydAQqn9M7W38DQyp4iW05=qacRD>(LpCUM5cd+5wxo*w(ZJ3o(8%VJ#)(9M!v?hM9=T@U-aok+#=!U9A4yZGu)J!N56T z)hm0LP#K}sQW zI+87ereqt+2=FzQ4l%^hDt5Vh>>T~hxq?lk5`g(?cnen-E+vLf0Vnp*SuXws>M}9e(%N-Pu zahK5y^3br7^r(qu;U(U*uYs;d@{?K3tKlQ>(-NBE%GX1k!$iDlY!gQ>nfn~+QAEr} zE2YvDc*B zo3AdBWePp}Is0CyBsy@MPTk?Z0i?k7`XP?h%UJiH2F<%JG zr*5h!Ck!h?k;S?Wyx`vg(xtgq*H}N)j5b;W@A)8q2qa%ST;Fm+8r=-={tf235o;28 zjq_i;*S{0TYY;YBVt0u;?l3$i%E{c?rCyH@;5`EM02cdO*v8nT-weodMe$oZT-3+j z^$qdhb0-TTzzsjwH&`^tzX%p%RZ7m6KY*d-Hv|8+VR$A&#IyJtVMZqI#x2IXuHOvs zRN&V-T+hkxA(4a$_kPrk{}<8_dP9Cj*Ml3?b(VR(NmVjp5N7 z_}^a!T2yf|cD&0bGVTFpb5!sfH~u+lo(&jEDG+ASG;YGWib$cISI^~q42@VCgdL#B zo-Ou5<|@e0)m!#-zm+gOps>qwJ7*g2r0X;r85%X1DgW(Tq2VYar_F0xj)|~nhMcxT z!FnR>8h#<1m=Pt5=n=wdz8fsN?WKzEx~R$4Ic13ysunOq9DQVZ>PqRMI{ooc zoeEs_Tc(ADNL1bz)qd*Gv#$mcL6icuxl`-1fivapVxET@#nBXV#gG|Dol#mmk!rhM z*_FN3Pm$z^L=<9X5|_1Bxl}yCz9Rs{_-4@T`kB*ED`>30t9L-B&bjq@9$p5m7QS?)kM-SV zwt()Ru6-?wtdp0&eRL#9{c4TBj!qHrWnW7sK5=Hxj5@KB!$Rcqlq8k$YH`#ZiX82` zojGVc+sQ;I{Y(@s0!+#2<(1rW8iLh_SpllPE|%f*{;1fHL-`pdgJ zDt0A%0~#+`yi+3I1m^NcWkQEd{GNl6qQ~%ksu%t|BZ+xkuX-+`N})v+1$_sk$8wVV zbwcdM_ja^y_?D+VE6wYf;bRRI;V~KzUHU3%zOy=PGHXY2&lkat@3-cDm88PM9P|9r z6h}wBVQdzyynnWy%{(~a{`U^8rkm>Op_BW9c+jwmt0#2}IhsgEk&tx}4$0lpj207b zA4&AQ;;FXqX#2r!H%SXpHeNokAq78cjX7>lF`$1D(&;0Gn)vqV5{8H5I2S-b*m+Q%O?_ zJ>RHAvn6On)#U#Sr0u>={%OymSPI;IaZj)vj?ycg$yIN*u>G&CgzwHOXuBW#j0R$8 zaYKx!)emCy^`mSXwdjnQ%!g1;?TYrm08h@g!DT#(WuGAYK z4BN=dhj~ZtyW)Sm1ga!m)TdSrrnoEMsGaj|Y;j6(+5wxd=nT`IQ=`Pf^&D%!xqR`< z&?9sQFS^62WZSxJ^g6`3K82Kkdza;Up~ERzfmv)43`IKDpNYfNDY#htD3lXm6xiM* zoSbD8WAy612F|MiajlrjZS>rSXE56JtJCZfBZH0scEtMcl4gy!t-a@$mwSf!K5~|5 z+aSgnV?A^xo78y0D>Y_d zeB;HURUPlzNOf6edo|I66c1t67q5%*7LwEb&8pZ2$}@uV-|Cgz=Y>3O?oYK<6{|_T zOJ5&MNq^wxs11`WB3cq2CRciC3_9}o({Zn<{O!}4h@zA$3%ai#Wy=eZyG@zl>T@ar znjI>8Rqz^t4n&V0-^U`IY;Ig@l_SP*1=#_~fyL`l%a=AsQkL|XE#vN-y4 zpJb1EZDx4Qq2M|G+F>R`4wfVw(cc$Q>Brbq-wMBoYv}iF3d+4fU&n80oRv>t`h)DW zwdpNS_WCw%sZzSEP!Q)EH;{o+`h-8r(n#v-jHR4Jhp*K6`Cm zAH-mUbui1C7}+4ofk=%8&!2RU=(KUa$BI?Z(~$IIkFs>uDa=LecX?6zq&M=kd0XAH6xPjbck~Aow@U@321+>K z=3RBc%(`UV6DSlWSLsj@^;Q)Rpci-Vxg&F^zd(%rSI<0j=CvYle`w5nzHoZv0x`ZLXc@tzrgglHjlF~;>+ONjQzxK~ z{X>IJLK_Mxz;lFoc7ZUp>9O+`AbP3EJllvDmyj+-21vbBt|5bJ zsLhGb+?dQWp=LGa(8CJ*HK(E3&KASE`(;vUMEPSnDj~Cw6D7F{$XiYCCGTV1#Z>5+)CTwD5r(^N%Ijx83Hn0P0C$z`-DN$RFzLj*Mes^1tF!900ZZKK#qlPX zh&AojYE&BJ&~nInGn94=6p=M7gk#Vv3Ozr+Qd;6EhJlj?{_*W%im(QI&!qncw z-U*DMqV}}Aw(awH!>&P;n@@VwVGik+y8$zhQq60Ay$@G!%?@m}!5R5rCG*|`7hPy< zTar|{%Pi!O<~5%Lw>&u?!&N5sVbE&jxkzvl;-SaAoRf6wrn|2BbL0${P5 zs=KjE3;?FQW=>gwzf}E`Q z$`b6|7{8_XlZWhXY~EBKMEtU5iVq0C1o-6RqniEMz*H5*=lvbp0&-t;znH8&uQv=3k|Lx%!j%z!PEkd?1<<3x=F`Cjv;X6c07uAXFJf7EM_Sy`<56@n*bz&MCL4NDqvFW{ z6G$i!Tx(rm^0EAt2v3d_H5LOLD>Hzz@Cy+OU0cO?3>OHJLSTzu-1I&A4ur^Gu zf#fSpuZdvLoZ1>_g;MliB%e`=nSaR&u9zLMS-Ln_Zy)&fX!yH@vRqn3YwMF~*C4U* zOY>;p-eiifxgvX%En;Mp+BS5^8!nrVFIdj0L6nxLfjzk|A-!CSDD(M)iC9%g9XX2? zoERYGQX$HDjn|)Af`FPE)UA&s4us`eLX_<5%!=HVHf@Cd!asK&qTD}ISt2VLN`WXU zq=dS^!0(<-1yuth81qy7HR`unZw#9n9_g%Ti1`!ju&uw&<&g>8a?H^YatE?W%cd=l z(g!h&BLk`GZdiY?kXTPmPxAsT#Y~aQI!#H_cKhN80&;la`*LaIp{A}^lPs)td)lNS zEPoU5`(p>c*+JcessIVtp}H>oWC7ON@AxTcfJM{6A^X;278CTWI4YnOK{fb}t$J;L z&K3_hS??|+#bm8_8+L~4RCmwzU37JTU+W`0VQ*ktuCvwc`XECX!*GD3&fTVW?#tIf zo^Q5p=X}V&g1r>9PJ#?4*q}Zxh>z-w&O$f9Ol@kIxUlOL?|s&nCCa- zYAx`9Bq)0 z&M=2rop1h8eH?dBiK{;R`moP~#rrwSHBy_H=5%Ij|Ce+5$q=QTzs;+c?^5KlfH?;g zxwk>k<-CQvji)j^ExHMc8Bzc(Q4I!5!ZUNSy%Ii71iqb}M>4CGW7 z1dWi`)gz7}JZxSMo?CPhc?!OyJL}X|Wo|mZ_f*1yW?UP=4Qt(3X|Vw3Kt$SQa|sX^ zGq_*QM~UkQzXKzhp?kDz4cEkaHP zbicn%cFUOJYH8w>-X@fC6RaRK_#i$9a`MZOIYyEZUPoMI{8%GWi0>euy&WmZg*#Zf zazqv~abmZdieg44cS|iU8h_x*If>9<7vM6R*s@RK{1} z9wZ%J;*q<(fEuErUR0*vfU8w9?eJ6Jjd9nOx5HiWfPxbxF@X+ZSXM!t%YRTO%+sPI>(9U_jW_#U z_xQ5|*SB9{B;UaK;JFu>%9Ujoir*YyzT1=*Xv4em7TqBpUgQ<+Os-VfuW?8wB#uPk zNbq{Kz{wLJ|DHl*$<=aE4*?B1@?NFT0lr}XF>GOnT_tlg0eY~UHcp)Yzx8@!7++s! zva~GGu?GmP4lpwWJq#Aj9&?P)$&`1gR!#eEX$J6l$I6!p=QB3gkke7 zxV7j~xdSiC{3I~R_rxX*UZVt*VvNy|EgR*gW^vZ^YoBZ}jHRMusiA00(a@v#VmsLT z)Cn)JJ%6EbG>t5Qmt>aoTn8zZNyKwmbEoFX_In>pWJ-j$Tz}%u5uD&E@=X>J?c!Fn zAwNFg$4D%@_0O8efOO>$S68^etj%Pb;7xT}NCC?O|qZ7ylQ`Q28~jN+)R_P)9{ z7bvXin%sP_|6gcS-B!!)3M*^F&03*B=d>pG-L>Int8zkg}3dl&r?2q2%_XLQ;Bn+e71; zTGuip=^&=pmMuwzkc3=DO^VczVZ7g;-SeK^_q?Zi-{a4nGw1xi^E{v5=Xt)L=QGc7 zS7!$~8Fd)|kaOH%=LSGQM>0^!=yB42$Ob*s*!J7l?jgI`2mL|=z}7!xXMm35KEFKy zZUKJ&5&LfkSRs(9>n0C-Pf4gyf#Wo2(Ev>hvK7IU1hE9jwMY(VaEF9DCtKW^(6A$F^{poUMm?sBpMw%!A(g9^ zAIhKVRL0BeOTE3Uw^Qgq(FuU!ehwolm`3+>xLIJRj>!YIK?%<{`Y|Q-5;kJdR=}Lc z*+OyNCNt}+5<1xH~+Kj5evb$oZZ<|2~->| zY!jA{PZxMa=n~oSVqqs-;KZIeN#yL-FcT$pnlWCDBSD;}3q$2tVe2JpMZn~7J4HNv zb+y661Tdp%3k4_ozPOba!*0Frn~{4v`=6)uKv$N2h;)B(^C@48RnRYP8{pToRjl`S zc5Wuf*ysA|Ct~$i!8x%~d$Qb;Z|NZp3VHy#iiO&m^vB*E~Hyx6A~*A*!|Pq|tWR};aXT6PcoIOWGjJi@nD*67H?4AVvP>T#t zp3}gMw9unnd>&pxjE5o8$C*zLgfQ9gf>*dBa*vzl^sMRpkZL=_#eT^8gUnYBI8GLc?H3-AV=A9aSi6JBkICv|NoRoME*V+RL$Pk+-+% z6PGd0!lHhT41(m78B(m zYcb-)=VD>I#BXhXkmtV?{zItF8R1l!$!axIVrF`J*eXGWdP>Flwg2%+Lkz)xHrz<;_y6d)JmH$?;|zUr)}O zZ;rK7NmoL{&2&+ix_mcWN=H^>%i19U>9o`-Y&uDrw-Y;tETeBYENa$>Xg0W#YCJ6R z>GOVf94jPa#iatzM~O=aTV=W_YBapN2L`7;dmQ9~<&n!Q2P`id(KR`?QPIl?+fBA5 z)LpE4N}Gw)<{lXcGVoQxMWQL@km#5E@AiMmP}OPoUIgaUyr>yF_96bXk}0x8%;1qxR9RQNj=%M$h~GA#GQ!I=1vt=Pfy2#L4|NL z{@!hnrrze<(|Dl8M~#_>@M=HNhHq#q|C%?WrWYq|H!Gr7Cwm7i)y8?(7Y*e^4_@AW zGv}a|QolDD{m)|Ve9r6EvU%kbG;-9pYt(!9-3-y!Kc?-ync);KC4C*y?LGGT^xnj# zx|@=^j{|b9>p_1-dc@>jvQhL@ZUNeAmRtw^t)^Pz>Pv}`%3VGf_PN!pJfl=AYhUn0 zo@!c&YO?sj?KtHs42>>oVBf)w!`$fF)vbo%>mmGlXJ7+i*uHK~wgT>xI=7NauZH#t zRJN#vbf$&Mi~7n8BDI3HTRE-(5^HylJBg)FlcN_OZ@we@8JcfCJRI|N zX3_p(9q!nJR+{@UN78A38MhV$;-?LFhnA;ypp9>fmHvd-Q}uXnQ(y&$94yCsMQT%s z%tgVfM>fmhobLB%Lv3+^*zw>p6r^<}j4F~$eBUf5m+=#FErJS`05&B|#O%*ngZ?Tk zl4P>BTgGE)J1RX^VHS;|2h6WXN%rmIr)OKwAc>v-E<5sO5Ibb*jG~6Y_8#&1rOCa7 z`1c;-)lQoDq~zO<2GUrJ(av(6^PoeoU=A%{r4F8l~|Ds$t1s0C!x5?2V pnDl9G`yb~1DW>=UMmXhwW8nHseR1s?_6