From c721b7ddce5e298a5788f64e3ab1c5a70c0043d1 Mon Sep 17 00:00:00 2001 From: wukongdaily <143675923+wukongdaily@users.noreply.github.com> Date: Fri, 15 Sep 2023 15:52:40 +0800 Subject: [PATCH] Add files via upload --- gl-inet.run | 841 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 841 insertions(+) create mode 100644 gl-inet.run diff --git a/gl-inet.run b/gl-inet.run new file mode 100644 index 0000000..b647543 --- /dev/null +++ b/gl-inet.run @@ -0,0 +1,841 @@ +#!/bin/sh +# This script was generated using Makeself 2.5.0 +# The license covering this archive and its contents, if any, is wholly independent of the Makeself license (GPL) + +ORIG_UMASK=`umask` +if test "n" = n; then + umask 077 +fi + +CRCsum="3976819575" +MD5="d96479ce97e9e4e398f94a027c387982" +SHA="0000000000000000000000000000000000000000000000000000000000000000" +SIGNATURE="" +TMPROOT=${TMPDIR:=/tmp} +USER_PWD="$PWD" +export USER_PWD +ARCHIVE_DIR=`dirname "$0"` +export ARCHIVE_DIR + +label="gl-inet script" +script="./gl-inet.sh" +scriptargs="" +cleanup_script="" +licensetxt="" +helpheader="" +targetdir="makeself-3534-20230915154858" +filesizes="31479" +totalsize="31479" +keep="n" +nooverwrite="n" +quiet="n" +accept="n" +nodiskspace="n" +export_conf="n" +decrypt_cmd="" +skip="714" + +print_cmd_arg="" +if type printf > /dev/null; then + print_cmd="printf" +elif test -x /usr/ucb/echo; then + print_cmd="/usr/ucb/echo" +else + print_cmd="echo" +fi + +if test -d /usr/xpg4/bin; then + PATH=/usr/xpg4/bin:$PATH + export PATH +fi + +if test -d /usr/sfw/bin; then + PATH=$PATH:/usr/sfw/bin + export PATH +fi + +unset CDPATH + +MS_Printf() +{ + $print_cmd $print_cmd_arg "$1" +} + +MS_PrintLicense() +{ + PAGER=${PAGER:=more} + if test x"$licensetxt" != x; then + PAGER_PATH=`exec <&- 2>&-; which $PAGER || command -v $PAGER || type $PAGER` + if test -x "$PAGER_PATH"; then + echo "$licensetxt" | $PAGER + else + echo "$licensetxt" + fi + if test x"$accept" != xy; then + while true + do + MS_Printf "Please type y to accept, n otherwise: " + read yn + if test x"$yn" = xn; then + keep=n + eval $finish; exit 1 + break; + elif test x"$yn" = xy; then + break; + fi + done + fi + fi +} + +MS_diskspace() +{ + ( + df -k "$1" | tail -1 | awk '{ if ($4 ~ /%/) {print $3} else {print $4} }' + ) +} + +MS_dd() +{ + blocks=`expr $3 / 1024` + bytes=`expr $3 % 1024` + # Test for ibs, obs and conv feature + if dd if=/dev/zero of=/dev/null count=1 ibs=512 obs=512 conv=sync 2> /dev/null; then + dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \ + { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \ + test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null + else + dd if="$1" bs=$2 skip=1 2> /dev/null + fi +} + +MS_dd_Progress() +{ + if test x"$noprogress" = xy; then + MS_dd "$@" + return $? + fi + file="$1" + offset=$2 + length=$3 + pos=0 + bsize=4194304 + while test $bsize -gt $length; do + bsize=`expr $bsize / 4` + done + blocks=`expr $length / $bsize` + bytes=`expr $length % $bsize` + ( + dd ibs=$offset skip=1 count=1 2>/dev/null + pos=`expr $pos \+ $bsize` + MS_Printf " 0%% " 1>&2 + if test $blocks -gt 0; then + while test $pos -le $length; do + dd bs=$bsize count=1 2>/dev/null + pcent=`expr $length / 100` + pcent=`expr $pos / $pcent` + if test $pcent -lt 100; then + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + if test $pcent -lt 10; then + MS_Printf " $pcent%% " 1>&2 + else + MS_Printf " $pcent%% " 1>&2 + fi + fi + pos=`expr $pos \+ $bsize` + done + fi + if test $bytes -gt 0; then + dd bs=$bytes count=1 2>/dev/null + fi + MS_Printf "\b\b\b\b\b\b\b" 1>&2 + MS_Printf " 100%% " 1>&2 + ) < "$file" +} + +MS_Help() +{ + cat << EOH >&2 +Makeself version 2.5.0 + 1) Getting help or info about $0 : + $0 --help Print this message + $0 --info Print embedded info : title, default target directory, embedded script ... + $0 --lsm Print embedded lsm entry (or no LSM) + $0 --list Print the list of files in the archive + $0 --check Checks integrity of the archive + $0 --verify-sig key Verify signature agains a provided key id + + 2) Running $0 : + $0 [options] [--] [additional arguments to embedded script] + with following options (in that order) + --confirm Ask before running embedded script + --quiet Do not print anything except error messages + --accept Accept the license + --noexec Do not run embedded script (implies --noexec-cleanup) + --noexec-cleanup Do not run embedded cleanup script + --keep Do not erase target directory after running + the embedded script + --noprogress Do not show the progress during the decompression + --nox11 Do not spawn an xterm + --nochown Do not give the target folder to the current user + --chown Give the target folder to the current user recursively + --nodiskspace Do not check for available disk space + --target dir Extract directly to a target directory (absolute or relative) + This directory may undergo recursive chown (see --nochown). + --tar arg1 [arg2 ...] Access the contents of the archive through the tar command + --ssl-pass-src src Use the given src as the source of password to decrypt the data + using OpenSSL. See "PASS PHRASE ARGUMENTS" in man openssl. + Default is to prompt the user to enter decryption password + on the current terminal. + --cleanup-args args Arguments to the cleanup script. Wrap in quotes to provide + multiple arguments. + -- Following arguments will be passed to the embedded script${helpheader} +EOH +} + +MS_Verify_Sig() +{ + GPG_PATH=`exec <&- 2>&-; which gpg || command -v gpg || type gpg` + MKTEMP_PATH=`exec <&- 2>&-; which mktemp || command -v mktemp || type mktemp` + test -x "$GPG_PATH" || GPG_PATH=`exec <&- 2>&-; which gpg || command -v gpg || type gpg` + test -x "$MKTEMP_PATH" || MKTEMP_PATH=`exec <&- 2>&-; which mktemp || command -v mktemp || type mktemp` + offset=`head -n "$skip" "$1" | wc -c | sed "s/ //g"` + temp_sig=`mktemp -t XXXXX` + echo $SIGNATURE | base64 --decode > "$temp_sig" + gpg_output=`MS_dd "$1" $offset $totalsize | LC_ALL=C "$GPG_PATH" --verify "$temp_sig" - 2>&1` + gpg_res=$? + rm -f "$temp_sig" + if test $gpg_res -eq 0 && test `echo $gpg_output | grep -c Good` -eq 1; then + if test `echo $gpg_output | grep -c $sig_key` -eq 1; then + test x"$quiet" = xn && echo "GPG signature is good" >&2 + else + echo "GPG Signature key does not match" >&2 + exit 2 + fi + else + test x"$quiet" = xn && echo "GPG signature failed to verify" >&2 + exit 2 + fi +} + +MS_Check() +{ + OLD_PATH="$PATH" + PATH=${GUESS_MD5_PATH:-"$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"} + MD5_ARG="" + MD5_PATH=`exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which md5 || command -v md5 || type md5` + test -x "$MD5_PATH" || MD5_PATH=`exec <&- 2>&-; which digest || command -v digest || type digest` + PATH="$OLD_PATH" + + SHA_PATH=`exec <&- 2>&-; which shasum || command -v shasum || type shasum` + test -x "$SHA_PATH" || SHA_PATH=`exec <&- 2>&-; which sha256sum || command -v sha256sum || type sha256sum` + + if test x"$quiet" = xn; then + MS_Printf "Verifying archive integrity..." + fi + offset=`head -n "$skip" "$1" | wc -c | sed "s/ //g"` + fsize=`cat "$1" | wc -c | sed "s/ //g"` + if test $totalsize -ne `expr $fsize - $offset`; then + echo " Unexpected archive size." >&2 + exit 2 + fi + verb=$2 + i=1 + for s in $filesizes + do + crc=`echo $CRCsum | cut -d" " -f$i` + if test -x "$SHA_PATH"; then + if test x"`basename $SHA_PATH`" = xshasum; then + SHA_ARG="-a 256" + fi + sha=`echo $SHA | cut -d" " -f$i` + if test x"$sha" = x0000000000000000000000000000000000000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded SHA256 checksum." >&2 + else + shasum=`MS_dd_Progress "$1" $offset $s | eval "$SHA_PATH $SHA_ARG" | cut -b-64`; + if test x"$shasum" != x"$sha"; then + echo "Error in SHA256 checksums: $shasum is different from $sha" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " SHA256 checksums are OK." >&2 + fi + crc="0000000000"; + fi + fi + if test -x "$MD5_PATH"; then + if test x"`basename $MD5_PATH`" = xdigest; then + MD5_ARG="-a md5" + fi + md5=`echo $MD5 | cut -d" " -f$i` + if test x"$md5" = x00000000000000000000000000000000; then + test x"$verb" = xy && echo " $1 does not contain an embedded MD5 checksum." >&2 + else + md5sum=`MS_dd_Progress "$1" $offset $s | eval "$MD5_PATH $MD5_ARG" | cut -b-32`; + if test x"$md5sum" != x"$md5"; then + echo "Error in MD5 checksums: $md5sum is different from $md5" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " MD5 checksums are OK." >&2 + fi + crc="0000000000"; verb=n + fi + fi + if test x"$crc" = x0000000000; then + test x"$verb" = xy && echo " $1 does not contain a CRC checksum." >&2 + else + sum1=`MS_dd_Progress "$1" $offset $s | CMD_ENV=xpg4 cksum | awk '{print $1}'` + if test x"$sum1" != x"$crc"; then + echo "Error in checksums: $sum1 is different from $crc" >&2 + exit 2 + elif test x"$quiet" = xn; then + MS_Printf " CRC checksums are OK." >&2 + fi + fi + i=`expr $i + 1` + offset=`expr $offset + $s` + done + if test x"$quiet" = xn; then + echo " All good." + fi +} + +MS_Decompress() +{ + if test x"$decrypt_cmd" != x""; then + { eval "$decrypt_cmd" || echo " ... Decryption failed." >&2; } | eval "gzip -cd" + else + eval "gzip -cd" + fi + + if test $? -ne 0; then + echo " ... Decompression failed." >&2 + fi +} + +UnTAR() +{ + if test x"$quiet" = xn; then + tar $1vf - 2>&1 || { echo " ... Extraction failed." >&2; kill -15 $$; } + else + tar $1f - 2>&1 || { echo Extraction failed. >&2; kill -15 $$; } + fi +} + +MS_exec_cleanup() { + if test x"$cleanup" = xy && test x"$cleanup_script" != x""; then + cleanup=n + cd "$tmpdir" + eval "\"$cleanup_script\" $scriptargs $cleanupargs" + fi +} + +MS_cleanup() +{ + echo 'Signal caught, cleaning up' >&2 + MS_exec_cleanup + cd "$TMPROOT" + rm -rf "$tmpdir" + eval $finish; exit 15 +} + +finish=true +xterm_loop= +noprogress=n +nox11=n +copy=none +ownership=n +verbose=n +cleanup=y +cleanupargs= +sig_key= + +initargs="$@" + +while true +do + case "$1" in + -h | --help) + MS_Help + exit 0 + ;; + -q | --quiet) + quiet=y + noprogress=y + shift + ;; + --accept) + accept=y + shift + ;; + --info) + echo Identification: "$label" + echo Target directory: "$targetdir" + echo Uncompressed size: 108 KB + echo Compression: gzip + if test x"n" != x""; then + echo Encryption: n + fi + echo Date of packaging: Fri Sep 15 15:48:58 CST 2023 + echo Built with Makeself version 2.5.0 + echo Build command was: "./makeself.sh \\ + \".\" \\ + \"/Users/wukongguoqu/Documents/GitHub/scriptdemo/mt3000/gl-inet.run\" \\ + \"gl-inet script\" \\ + \"./gl-inet.sh\"" + if test x"$script" != x; then + echo Script run after extraction: + echo " " $script $scriptargs + fi + if test x"" = xcopy; then + echo "Archive will copy itself to a temporary location" + fi + if test x"n" = xy; then + echo "Root permissions required for extraction" + fi + if test x"n" = xy; then + echo "directory $targetdir is permanent" + else + echo "$targetdir will be removed after extraction" + fi + exit 0 + ;; + --dumpconf) + echo LABEL=\"$label\" + echo SCRIPT=\"$script\" + echo SCRIPTARGS=\"$scriptargs\" + echo CLEANUPSCRIPT=\"$cleanup_script\" + echo archdirname=\"makeself-3534-20230915154858\" + echo KEEP=n + echo NOOVERWRITE=n + echo COMPRESS=gzip + echo filesizes=\"$filesizes\" + echo totalsize=\"$totalsize\" + echo CRCsum=\"$CRCsum\" + echo MD5sum=\"$MD5sum\" + echo SHAsum=\"$SHAsum\" + echo SKIP=\"$skip\" + exit 0 + ;; + --lsm) +cat << EOLSM +No LSM. +EOLSM + exit 0 + ;; + --list) + echo Target directory: $targetdir + offset=`head -n "$skip" "$0" | wc -c | sed "s/ //g"` + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | UnTAR t + offset=`expr $offset + $s` + done + exit 0 + ;; + --tar) + offset=`head -n "$skip" "$0" | wc -c | sed "s/ //g"` + arg1="$2" + shift 2 || { MS_Help; exit 1; } + for s in $filesizes + do + MS_dd "$0" $offset $s | MS_Decompress | tar "$arg1" - "$@" + offset=`expr $offset + $s` + done + exit 0 + ;; + --check) + MS_Check "$0" y + exit 0 + ;; + --verify-sig) + sig_key="$2" + shift 2 || { MS_Help; exit 1; } + MS_Verify_Sig "$0" + ;; + --confirm) + verbose=y + shift + ;; + --noexec) + script="" + cleanup_script="" + shift + ;; + --noexec-cleanup) + cleanup_script="" + shift + ;; + --keep) + keep=y + shift + ;; + --target) + keep=y + targetdir="${2:-.}" + shift 2 || { MS_Help; exit 1; } + ;; + --noprogress) + noprogress=y + shift + ;; + --nox11) + nox11=y + shift + ;; + --nochown) + ownership=n + shift + ;; + --chown) + ownership=y + shift + ;; + --nodiskspace) + nodiskspace=y + shift + ;; + --xwin) + if test "n" = n; then + finish="echo Press Return to close this window...; read junk" + fi + xterm_loop=1 + shift + ;; + --phase2) + copy=phase2 + shift + ;; + --ssl-pass-src) + if test x"n" != x"openssl"; then + echo "Invalid option --ssl-pass-src: $0 was not encrypted with OpenSSL!" >&2 + exit 1 + fi + decrypt_cmd="$decrypt_cmd -pass $2" + shift 2 || { MS_Help; exit 1; } + ;; + --cleanup-args) + cleanupargs="$2" + shift 2 || { MS_Help; exit 1; } + ;; + --) + shift + break ;; + -*) + echo Unrecognized flag : "$1" >&2 + MS_Help + exit 1 + ;; + *) + break ;; + esac +done + +if test x"$quiet" = xy -a x"$verbose" = xy; then + echo Cannot be verbose and quiet at the same time. >&2 + exit 1 +fi + +if test x"n" = xy -a `id -u` -ne 0; then + echo "Administrative privileges required for this archive (use su or sudo)" >&2 + exit 1 +fi + +if test x"$copy" \!= xphase2; then + MS_PrintLicense +fi + +case "$copy" in +copy) + tmpdir="$TMPROOT"/makeself.$RANDOM.`date +"%y%m%d%H%M%S"`.$$ + mkdir "$tmpdir" || { + echo "Could not create temporary directory $tmpdir" >&2 + exit 1 + } + SCRIPT_COPY="$tmpdir/makeself" + echo "Copying to a temporary location..." >&2 + cp "$0" "$SCRIPT_COPY" + chmod +x "$SCRIPT_COPY" + cd "$TMPROOT" + export USER_PWD="$tmpdir" + exec "$SCRIPT_COPY" --phase2 -- $initargs + ;; +phase2) + finish="$finish ; rm -rf `dirname $0`" + ;; +esac + +if test x"$nox11" = xn; then + if test -t 1; then # Do we have a terminal on stdout? + : + else + if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have X? + if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable + GUESS_XTERMS="xterm gnome-terminal rxvt dtterm eterm Eterm xfce4-terminal lxterminal kvt konsole aterm terminology" + for a in $GUESS_XTERMS; do + if type $a >/dev/null 2>&1; then + XTERM=$a + break + fi + done + chmod a+x $0 || echo Please add execution rights on $0 >&2 + if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal! + exec $XTERM -e "$0 --xwin $initargs" + else + exec $XTERM -e "./$0 --xwin $initargs" + fi + fi + fi + fi +fi + +if test x"$targetdir" = x.; then + tmpdir="." +else + if test x"$keep" = xy; then + if test x"$nooverwrite" = xy && test -d "$targetdir"; then + echo "Target directory $targetdir already exists, aborting." >&2 + exit 1 + fi + if test x"$quiet" = xn; then + echo "Creating directory $targetdir" >&2 + fi + tmpdir="$targetdir" + dashp="-p" + else + tmpdir="$TMPROOT/selfgz$$$RANDOM" + dashp="" + fi + mkdir $dashp "$tmpdir" || { + echo 'Cannot create target directory' $tmpdir >&2 + echo 'You should try option --target dir' >&2 + eval $finish + exit 1 + } +fi + +location="`pwd`" +if test x"$SETUP_NOCHECK" != x1; then + MS_Check "$0" +fi +offset=`head -n "$skip" "$0" | wc -c | sed "s/ //g"` + +if test x"$verbose" = xy; then + MS_Printf "About to extract 108 KB in $tmpdir ... Proceed ? [Y/n] " + read yn + if test x"$yn" = xn; then + eval $finish; exit 1 + fi +fi + +if test x"$quiet" = xn; then + # Decrypting with openssl will ask for password, + # the prompt needs to start on new line + if test x"n" = x"openssl"; then + echo "Decrypting and uncompressing $label..." + else + MS_Printf "Uncompressing $label" + fi +fi +res=3 +if test x"$keep" = xn; then + trap MS_cleanup 1 2 3 15 +fi + +if test x"$nodiskspace" = xn; then + leftspace=`MS_diskspace "$tmpdir"` + if test -n "$leftspace"; then + if test "$leftspace" -lt 108; then + echo + echo "Not enough space left in "`dirname $tmpdir`" ($leftspace KB) to decompress $0 (108 KB)" >&2 + echo "Use --nodiskspace option to skip this check and proceed anyway" >&2 + if test x"$keep" = xn; then + echo "Consider setting TMPDIR to a directory with more free space." + fi + eval $finish; exit 1 + fi + fi +fi + +for s in $filesizes +do + if MS_dd_Progress "$0" $offset $s | MS_Decompress | ( cd "$tmpdir"; umask $ORIG_UMASK ; UnTAR xp ) 1>/dev/null; then + if test x"$ownership" = xy; then + (cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .) + fi + else + echo >&2 + echo "Unable to decompress $0" >&2 + eval $finish; exit 1 + fi + offset=`expr $offset + $s` +done +if test x"$quiet" = xn; then + echo +fi + +cd "$tmpdir" +res=0 +if test x"$script" != x; then + if test x"$export_conf" = x"y"; then + MS_BUNDLE="$0" + MS_LABEL="$label" + MS_SCRIPT="$script" + MS_SCRIPTARGS="$scriptargs" + MS_ARCHDIRNAME="$archdirname" + MS_KEEP="$KEEP" + MS_NOOVERWRITE="$NOOVERWRITE" + MS_COMPRESS="$COMPRESS" + MS_CLEANUP="$cleanup" + export MS_BUNDLE MS_LABEL MS_SCRIPT MS_SCRIPTARGS + export MS_ARCHDIRNAME MS_KEEP MS_NOOVERWRITE MS_COMPRESS + fi + + if test x"$verbose" = x"y"; then + MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] " + read yn + if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then + eval "\"$script\" $scriptargs \"\$@\""; res=$?; + fi + else + eval "\"$script\" $scriptargs \"\$@\""; res=$? + fi + if test "$res" -ne 0; then + test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2 + fi +fi + +MS_exec_cleanup + +if test x"$keep" = xn; then + cd "$TMPROOT" + rm -rf "$tmpdir" +fi +eval $finish; exit $res +j eY{#u(j! Q&@Iݦ"4f!>d(`@-|JNlI<OI؎IJَObw)iU-9 [MjkRqWǽ }E;S0?A/\xO<_P-|IPğ-Ξ$|_fCx||?F>'m<<<<<<<'@3>(}~PAJߓ/@U +AQ>>(=P4AQ>̣u|y?"N}}}W\[j,!X9u >>>>I>+}}wE:?i'o~ao|VeUm\]]YR_uVsA/ H-@zyj){a밯fO镺 U~/PA@^DbSnt?Cuǽ'},VQ ||~vjOU0QNMՏUaA?PP]we$TjF%jƍA'(~ + +|nAM}6{ߩ,}uT& $a+aa@]wsE:8dŰS3DV0D @"B"LДaEs-LFϢL@0PP;0Ɩø:P$0Z $4MMCO{5H`j(~8ԋ@5:T< 8cBH\A@+P/8z= @/xu{?Lpc0idK)CAg?64qa@E%`LC ̻+ m 2Ѩ+ kbD=TU,0!Fxڍ<x9$`jPLhH]Rb`C"`/A;a^#'"q1+K9A<ÒC<%1b9h0vb@۸ +N[(0\a:qpn =²,f/f9&D而6@7'F(lpP*!N8;>RfvC 6=, +@te&!w&2|!@&ۯnD&֌HH1ݔIX+jov.fTč3[%15X8Q -KoWj6֗WW6kƖ,Wj[+Ww\X^T|qb&A2qܻ-dDXNȈm_1Ҡø&"v@%D 3bjAzQ5mr ^żG>g8z"9JM=ּNLO!Mym`0Z ˼C 6T˪'H{2d ػhku ΟVkF- @yS;$A ]D|ouQ9UMf/ '*$]ZB,pE)k&IM$KB!p-h~v +kTtxA4zZ yߨ5 @[s8B:ĵ%@45{T#g&]"P|D`cFZ s,戰G-zFSLlS6(1 &N$yaI=M1&+{~$<$pef auag`K96If-h +DKKP&4 #;K\10gzKXo:=K2$Pڠz$+#4>#DIf<Ɯ 5HvRT ( JQz]d +@ԣN$1 M&pR at!. +JЌOQP0mSc)O ȃɊ, +fCvT юwd|x mZ.j!a_؜"7VGapԊf'ed)O?5Q눥L` J ="ۇdFo*xKMM0IxYBtՕ7gqZAZyi-ؚFXc@ Bu\åI7Z`< E Z~ *cl(ۆyGJ'E(9@S皑+w=<!F(wE*`" Nڈv"4gџHsmlhm*+ W",B> [-nVTBe\C^V"HD𷯎&zt;?}-4sFTpLْzv +ѣɼTK? sȢѾzA +dcدW;LcXP$DML7V|4%wQZ5ۗv`gU@^d yz:63Af55B6Y!ƮF oIyuCn`'[k=:ZGDyEd\$]ZA@-s5OLaO-d!ց>3%֠1 AQYI<L Ĭ?s&5a(oX"g"ȱ.[Ȕ k" f|K5orK;6kPg:,;D b<:"Ή`Ni IHgp9wz.ȸ9t2@U)J (vAB$q#0>"~pF!]Q͒L{aa{B1؃vw;# X#:v^ h-Gn:C!8<٣Bc12[mvJ:) Ӝ $tI:omM$s2CxTudAt#QQ"[h̦+Ov_v(ٙ&0"-8<3!:σ֩kq ؗciRTk)ׁ4(3 `Iŀ'V$X|dh+[ĝV9N a:☁ΡUBIx?CTGZtZsuMn?%!$95ax^5G03[6}+=A${^8Z)yaXlo _p;[b<):cDvaŤZ>ɯxbFp~xf^ G.vOΒ0Cf 򣆬wh>S74›8mIt`w)v0\T{Sy +1`УӪ`֤>)U5^z' + I¿ \'@ɡ4BDQ0_'k +lQs.<-䱌(| 'Ѕd=k,GH pΑψ= +mYF7e@B^j7cc҆Ơf +WۖnO6I} 9V<[ݤz9N,cb|%`yLv,<ފ6n{#v,c/Է6zC}R4R܉ʎ!@#lTi1=ilmUַ_$(ReVU7jskVeMԴ첺UkjFez5嶪Xm f]]Vխmhꋪ WVjyqzFu_Զ+Xae]=~Dܭ7Սw6+[+՚xne9=\ΩWoll*/gW֗B U_ܪ`#˕՝er +-ol`f0 .[@Zu ෾]]/u<+< +LbgksVEoԞU'N4Ѕ6*KP7vW jz,/nj;kUwm֫K0֋Vzne mU7++~V6֙,qK!쬯lہlr 鬻 +t+]ڱ HuxMAI9P sV:&4@Mx@/NQj*lϲ?)t\lNR,Qp FםC3je6K=7*h=}g-̳W h>#aLӐE2ɱP;~DMdy7!Xw- /C&-|~‚MhNpID88%zqs(BPm6;R~yM!uvxG~PS±)XD8^]@?b5@ZwHvZZXdEWBX!C@} +x=)ڍ;5C 2&]qk̸)ᰋ!Yp=>-uS1()sbȩ폎gstr +"C'^'& mth :Id I &2Yf*MPmVe zsÿ{^~D"{Ci V<,Z !>[t6ي rTƋ0n@v:և#v#2aw|ȵvcQI :c7n="e,N Z/lSB[Es|${0H,1 5 Kf 5y +q\%E>b?ƨQDjeyZ4G.??i¥G~)벺nrvZv3)q7[AIJ G z{֜x||\lEbkU)n7 G.,AT(!+;0)-h eTAQ^N(W ډϻo,Jxf)KlQBqj.ݗqe6 DIBN̢~Fgܹbo;4 j`;+/ͽOR8o{ph,@ t7nA?Bso: 7}yWA^'=֪YDlXJ,pcPj^M6^\@y?vhpf9wM] fW`pfd.Q)fa5k{)T\ +.-QKKjD$,?jA4_xruMUV^oQS~JԥEe _q]RK=Pn14lAsy|muu[YpkObڃ9b#y >R*b6s+qQ.OҗA|`y>x>SDP L'blC [>TF +c٢]rrh=AC@%̒̄ X:|,"Cݯ4X13N +O!^_)³2vu{! +- =PEY{#irizŐQZDpIu'al"Dh68ߐoܢαf:_T=ŐTVPQ؋#&?Mezossխ^k"-]pK25O=0,coȐA @s~sᘐkL@6=7UѦwN=N5X!ʒ! g&ĢȂ}jsJlU4 In(s;$V2Yrd[^m^ȂAf.i̹`{= JZkhUPt[ v 8,u<#Rq8z$Z[;fXtbzxvcUM΃bs<" W Q#BA=OÂmoF #IAމN9!jK;(v\;'wzB4N0 1J`2dwb }_ +ob2|hgA @~W]z0U +wyV4t%c6 +iALAG'fBdYpXԸAKFBTy$j:L^3*XJj߼3H:1K@_ۚM4_ZCC8%f$6crluAWGb4u2[vek +mTjz5]Q0e_ܑy`}y$h@rf:<ɠ CaI w4w`; ;B#J)HY]J;* T [kS/@:ND#Lf`h9ۻӘ &' G՚œ"pZl 0|A`Q1mFěXF=sݘuIڿlȏ`3I(8--o +(h +zlƒ5H@Zr2jg.\km_Zbr 5BrOi];af/RFv0'r>-LLE6CP=%ځ iQD|vGNpn7!"kZc{HbľcGMV4E|RD+ T)z#yӠ\6#֦K=.5q S--K~Fa*Z 0oQhI:Q9]$Ü5{\ y{M S;)EH +c5X1R›2 rc?E>JJbmd}m5S0sN"v`1:5lkɸ7d%B-va80pKp +jk|ESz"=l"MZLLNԒeT3ѹ$:Ù8t +A6$}Gfҁ,U9Z"CRv.}l×rיqe%ރt:#.LL 8nxlv P~dDxށѿ.+Lc%2~=2z#֩\Dٍ +)).e~sWAaDQ,Փ,,;LAxWGO7FGlG'y3:9ӈ.51eD[* >9ƯHh:׵QdvW|!ɫu9C +KJ3}}#F8k+E tɭӸm:zU8H2,C ACMR%)?C$AֳM_{Hk6"FbK 0Ykxh(@ZLGR""]IRн!㾸N mNIS1W5sJ71uLIdaAJy"sCP,JRg,9VJ;zͨ3NJӈM9n.Ah蠛3 + ~g{8>Rtr#%XǸ3#lXh|:nRz[ GuSN%.\dpih}>TδLU`Aa8|z/IU&xi8Ve>~0ibFAqE~2fđi3XR=A|.!Z0ےGCg}q"yǤnvW}V>YJHUlyt\Rl3JR\--6]]G PփdVg)1qAsM:q'8kdsQ3m]A>o#qV}uWERA#niȠbkjix+tZhhː@#^3WFl}#bmә?K] +bn>yK^\sr؎#[CVB6za'ͧ6mRa2@%-s:U~J*4{%@,+LZmܧMl=AQJs֛A-Z${I okBhT {Hv_.zrTqh[aDX8:l6N!r΃Z?+ Oȑ +^"W=3)YҌyqׅ\9F8DqT7јt*q:4=qzqk|Z{QI"ݎ3(N['/G|%Bdjyba}UǼX Z5]'w8V!Q   v +Mnd:`;6}ɒ;jBX biLuB:N~I޽ @iw?tҰڤ_E鎮* %}wƛayΚѾȪؿ4j97WU?6ce3[jM2g€׹bAcI_E2"!m.Z~tkq#|JHˏu)[S•ٱĜ`7kуl@*ɉ6%N`OTsH0F i:njP zߤh.}b+ucNXB~~NpXFuȠU; ϞX%'US\ [:7iThH>P:F7%xȈ (3TU2^95WbNp*ڣ)d$]M$'G;p:z6+{6s DFg$s~'%NKEL0hL(wQp _NZMHpRLqi[ MdE-T8m@Z1 +#K&Z&qޫZ.-ڈ8CH'֨fԒ:ĵi;lg2fDwc{\psr%XyJ)<MPnxs@Зqr(:ѶFQ>݊Ѥ XNI| ..rQ]$qsÚPG=^$g/o3G;NjYD f r"η|.㠽1ٗ_Y64t+`l_b20iv\Wzcթ._t)C6x|5*UkaNACbWIOYV`? wZd$7k' y]j;D}0眅 MMΗ=j֦+ (f`[>^TZn;،߁n90WB7TK!c)5>ffjI v1"! D|( +@V;?uĊ_h_/}qOQ8 ojQB@db#C`H~NyX.sB_]߼ζP'4?bPcMPC?vHNeQ\)+g'&FoXr1tdi.= j_7* 3¦J ]O澃z=Gn"#Fqz=Nēשy &z ؄"g6+. +$1B%> I{Fv;fj9R7N0FdN^cNeňrIg"ٚA1fБ2q$y.- zFg­mZhfw'M!@/!ƚP;"";GBk#<醽1@Qdr:l![8P_>JNVޛԾxKdȫw7 C# -E@S/./09cD͏SЧ^^8 +nVXՄ>R C,psw̅skˢr;3٢P({lO'S:y7ӞYȊoo]}}iQM.T!W*%1Jˡ59hPʩi*%.E/)/-w}W6j~|fxUgo2?g)uqRv ys !lKm`|EnOq#ojf{L@' +>WX<麓2d7rnݟϿq/~-u wN~rK??U~L{B +o7 OȴeW5t,tYi|-~W}? +o~޷A@+%{~Cf2; +_QJw>򑹹+C)"Lf4BC'`NMF9WO/^}`'};<6jMvE†n67~c@e##qޅY5o&B= EP&.ܑhyb߻7xW)_h!/ eϷ20O7`-)𭻟»7w{|Ӭ{5&w_rz^#ogQxæʬ@qB9"h ISo,:w}{{vkZJ +b*F s}{|ǒhL N )ZBk?W`In38r8 ?(HU2P)᠁O`4L\'zIf@n/=׹tyuG)Uz:[h$5)x*N]>md"j}‹WM?lKV@¾%n<4v<2# o~3#PT"5qo<9V1(9: qm4 ۫_{R% !?+P#ZA dNT9QgcG +9{ѷѽ=8x:oy&O Q}n9"2ͺR9wOc0&ҷzkw8џ_ +/~};dfoqx|+o_26R?1$]gݛ$~dVmΘgrZc*#ۃ+hpfGFCV0Ē%>P 镒C,%]s@^qW]lgt;Cv(rٔs!R9j?043@OtiwՕ?· Õb9Jo"h ~Kgm0ToE󰠜P!7XNh ,Â1 v"f:8/5/)o{'<ǾД>2B ♳h f)Y,c͙|ra3xqJg~/wp e?e a=?1g=oWoG00QpD~dس47_#o';eE{ Jn9c>k}- 47X.k{8*l=Z&icF2f_]@S+p;wv]S?nλ̣?Y=3_i؄c?|?C3Bdzvo9=˂="՜B(5 +7 b,w*\f\lzxj&)j\t%)Rifpi۳e 4>C>*ۑUNCӈ{mCLܯ3 E9|;zޛL")L1 g[YQ?ɌɠeXƱl arQm/\0,~7-)~տ|wNTy,x~~~f)~!]<۬-zWN_}xϛ{dM}~ +]x5-Ϩ -?S~{|E(6rrŽ'n+*]xp70aD.h~cyݷ_?XFr +6u^|Y+?5ٻ@]}aO6]o?>fg;Fl Ы~59x;U]{rR'H콻oz~{?AXyx_s߮煋_:o僒G?הzZX{Lel7,j2LT-0(뜹rܢ$rtRJhG6QLJ1F̀B#~ga:ZV=OQx&FOq'Њ :i֖//~nT˿VWwLͭE@_t4yr~Unb2s\Y8akQ/!_/UߒS ꚦIu4XL ~k098p-2e"Ԃ2[y/Qi3-;@Lzʛ-o"y=i'PbsN}hQq7 Mf}-G?\P OpEbuqPF}&wG}J a?^Ꜽ>rcnig]NOujj̪xĆ:i-FF|bF֜JB02 #'Qj>|>0{"켧Wn#dj pQ`?PBYoy + *hK8 꿫9%/^V/xSsz;nN=J S}[(7/'dƐ&7_$u'aEC /ŋlbCvXbGФH"BZvpB5+;0QHhtCN8dSے2-!hKcW˩f7bz鹎ԳxՄyd̺kЌcjwבy,~@,pD!<$NɈ_(?uϡD|M0 +Dm\qi6(ʥKJkYL禠RLԂBljh^x:(zv?i>C㏣)/к4ʎ $P|v}&Ň:8XBvT"VF1O>/M0Y捭J*[w֪۵〷BYaqb6!d !d&nZ35&1J"wn'?q n-Ǖ6斩//؝~ɚ_@.y^-l355m'd̀"f=]]ȽMajXHt7qs +6y1BfbF{qۗT.CJGz8pvrf?ɡ? +0៣mӄeɮ\7uн~zl_z5(n(Pq *qyډB@ bY[-=.%EYg;15 q^\c'^#!Q +,>0:%wiA͜p]|O{+To& xP7iFiKadeKZ[KvY'{Et$(KOt8,@ .]Ԣ3#{:P9?*`q'nAtp4NIb232q;{*G:Z zԡkVe 0+@X`/xC ,0CHz1Ȍ}b/a#cp6@Tv? TLxȄ85,/ +(%g\ϥsV}o/ό!ЅYJH>iƮ!AH.ì.\FY{2F I@AÒZX!Eec{(xs%SeAڒA0RZzV'+4L(#GF#~Nj82'[;"8;vek,PƁmiG eMCս [i/K_ƚB"5 q2hhӓ[6X"($;eygBM@)84pta/Yݑfw^Xo:e FiTfHSn?h< @xvT3Avc}g."pZvw=k_^߀oP.{|qzicEd8zuvceӓ1C͢'EC'pvE$'Ɠo +U^!O>ԛ3Wث *EgЛr&`}3v8StN8'+j.L^X{c63x*a"usq=A ;'UU)d\ڀu5qXtu\3>ePjnځ(j.@vU^r֙c=aX +VY"6_PщSNnLmK*^"%Ñk6O{}4n^vDnjuy믣#I/m\_SM,5pˠ-v9kS +ADZzG^hҙz[\ݜ촒%Қa \cSHДLEg sl 331Xij_W #Gsz_gW6.=.W;ybU7y"OaRA(40Mz=` XmRp#R|J$C>{TO)ܯ27"_4ZL +jSvhYؤH8lƘќќ|ee AUD\P7oJjDEaԌAD9qytCM1NbA6{a MNFL*ڌCe ,a!O,~ 9T*%(+j_=_3*Hbϻ:-6񒼤#g;^ +22f*n/L.Bls9w@S伋(ԙ(U7~a`%ub`[&lwΏ>y J/!R<=,rSTuf,dsEӏ#Awݡܷ;NU87)Q='<ƾU3!YLf2 ]vv&ll`*ꊶ5pDab2cN$EVcuCAo<%f<7uyvR\ȄUoXKi8Wm/t$@ +6ѵ@q^*7>:&Gtw ^ !*tUg4tѼtsCi*E AWXRゥ FA8 Y:JH#x?+|tly&z 2|!aj7G<$l2Jh" IvmFٌyUst6;`0CLGQrTM-|<Y0-Z0D2^#c"㭒$>QӞ!e4uc{9T-!Lx;˫Ek|6bWra1NHR$B0F=28s{S9Ub0O,{,:&D(vS'3|wFevS22[V.?Z\.o8> +q*%EvWZ gvWȸ!Pbu~~Gng$51 Yc.˖u}x0(hzAЉ#\wswy'/(oeoZjz 2Gwb ^!yGnAU"5m 3r3)J!(bqNP UeZ{"q߻t=TP'⤥X7~p_Uf)+9\5eBK8˄1$=fQEK$rvZ㺣g.YwP +C&AHŹ}K0n՗~yy 3t?tdzo';"`z2qW|M5˞)~=#ӞTx\QyMo'1h$ >lij{ل&='| ][o.9mF: +f3猺5aq;cf:-rryݾgãną܁>SNof3wU#aR챪ԖVVP)ѫwPDkטWn 绞8:1^߼^ ~baK/-jtGV {sSP@<)ߡHf^S1^$?1K + D;!qN;+/]bFS;ބ~ژ|]^4Ѯ7-yBu6P }ʎDJrTҕR/>PPY\Rq#D%I,2'<ޔNPx:C2ᶃǾ1:?"fQM P;8UV=P.W魏9퀲!(E3Svr#9Z;Cjr1总QԠW)%2<$1I:{>C2T9 H~!ƍ>591WK1Geg Fp=0۾h'hgbk= wumDNq/l U`qrG]Mq;T=0~&^(vO-SZS0 Q'qˑHaD}zX>Bw\~to=6ꅦxNX;S|  'øԔ8]tMhi/_95 : EV6HP|ַ:'t:n9C]q3 S$/ *`BN!w3taƠNM.ͩSO=YX_8>д+abJ5.j1 ՛ZI+Uu!72/&cEls2D ul ӀpkjYi =ÀLzэ} =L3:(1d:79d,r&63$)cui=Y#+LYJ>^,Z^̷'x Paft #,"jdD( 8PF86`l@UfcYE7*Cjvaoߎ+,9gXl^IhlZ(7;;GA[0X,XDVc+HCSޡ ⃻D9AuY3]Lf5Xƭw޿COW$Y5vh'0QD!p֤v+G{ȿ1e+d@$o'8Z|[%MT#1mrCygXCYAQRy:}}5?39=k{=xsݽ;O6DC: TXYFcSWP ,sEL +U$DS *tQszj[ao[Vk}EҖ5Mʾ/ui?1E_&FteCoTuH¼96a/qN]w#]#i649 +tB{t^W+/6E!jsJ*le161s <W;`J!?w@%:B3L$g]99'2:xl_Tӊj'tQ`@;4xR}͉4t`5K*!Fg❊wʳ.ݴ:!^( !C\𰖋 Z(G7d;1#eq79ÑZ ~黣)A=x5[; +ZI݂Os-|nI/Yb9֭VXc +/kK;m +1Vq3c&@ v7亻E)^mupd;t} GO0!$dyK eqxǗʡ ^ڀ+Cx\wܼHlU?Q戦OJѿ^..T2!b3;q_0"ã$rZ+AacBhUƗ`r,Lk~fi]1PX.ZDvɃ3Sb!,Sg!FzG`rYdPO=0E7QuP4y/L3^.R9u fz^#citE"*tNX]Q܀̧32jm*fXWT+tqSAxlxF@NT}{ݠ'ӉOpDf˫}[Q#ESeORz -aF3-uu6,XB,DII Zd}t]{% _\=JH#E;{#dp޽ou1@Qυw##@w!LV:ݐM^o4Nsȵ)`$ٱdfim۵OԐlKp +sl0\Q* +E +kJR__m~xr(XM +:]ygYڟ?GG_6\_+L`4ݟ3Ia݊ +#|.$ulnQDv⨛Jɢ{B@FK.0֜Hӟ$7.cq1hVH牮]Li1LPraKMWW +N@9(э,"}̬)SfDck]Cv_>NDO>YfӐ5|՝¡JĆXL[8MpXJ0 5[<!߻@- _sZ2W=BoKCM8Tq|=.tސɶlcŅ MHa M]3K-;8CJLz/ +5x9[<=p:ɗ?x .0KKuownHT./laՀdim%ŸP<(&3t.;yÎE햮 l3g9(\(.TW΂;oZ->wn6[t7ʮ/Ug_5rFyUܔ0Bly۫Owhl1# RCX@/{/ KWvZrJhm$Tb\PfLnMJ ho6F.^V:MO(2 {*JL#67*^w~BN?XY/e`O` _B1.cXDqzb]Bi!xP k:|:%`#GHǼ!(%$@S*jY͖5lί,}7U/zͬV2$szCFk$A@_bÍLuYjymG4ě?s>>I>WZ?w ~Ѫ=N)oϞ~/Vi^c$.Ͽ{=H ~1,0!PqJP1Cx&|9Ng t93G=d,{AKO2f߶ͭdmɓ_g47U4F5CyQG| ۻ5=15Wx`@vq~߃ S \ No newline at end of file