quagga-1.1.1-150400.12.5.1<>, e 7p9|J5:OEeMk#?fa'Ö_U="p _*C zb,9Dq.# R`@^r%i+*3]/% iydzo[!gg 8v <ʾ )=ثP{~M]O ȧ,2a5qg4LLp/bGPl&~﷨4}#v?Φ?K(t0%q:Wf E>L?d   D&0 Ff|GG BG G G 'G (lG)G*G,b,G--!.T!0!(08191D:2t=>?@BFGGH GI<GXYZ[\G]G^b=cdgelfolquGvwGx,GyH6z 04>@DJCquagga1.1.1150400.12.5.1Routing Software for BGP, OSPF and RIPQuagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4. Quagga is a fork of GNU Zebra.e 7ibs-power9-13hKSUSE Linux Enterprise 15SUSE LLC LGPL-2.1+https://www.suse.com/Productivity/Networking/Routinghttp://www.quagga.netlinuxppc64legetent group quagga >/dev/null || /usr/sbin/groupadd -r quagga || : getent passwd quagga >/dev/null || \ /usr/sbin/useradd -r -g quagga -s /usr/bin/false \ -c "Quagga routing daemon" \ -d /run/quagga quagga || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi# Use %tmpfiles_create when Leap 43.0 is oldest in support scope /usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/quagga.conf || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi PNAME=quagga SUBPNAME= SYSC_TEMPLATE=/usr/share/fillup-templates/sysconfig.$PNAME$SUBPNAME # If template not in new /usr/share/fillup-templates, fallback to old TEMPLATE_DIR if [ ! -f $SYSC_TEMPLATE ] ; then TEMPLATE_DIR=/var/adm/fillup-templates SYSC_TEMPLATE=$TEMPLATE_DIR/sysconfig.$PNAME$SUBPNAME fi SD_NAME="" if [ -x /bin/fillup ] ; then if [ -f $SYSC_TEMPLATE ] ; then echo "Updating /etc/sysconfig/$SD_NAME$PNAME ..." mkdir -p /etc/sysconfig/$SD_NAME touch /etc/sysconfig/$SD_NAME$PNAME /bin/fillup -q /etc/sysconfig/$SD_NAME$PNAME $SYSC_TEMPLATE fi else echo "ERROR: fillup not found. This should not happen. Please compare" echo "/etc/sysconfig/$PNAME and $TEMPLATE_DIR/sysconfig.$PNAME and" echo "update by hand." fi ALL_ARGS=(--info-dir=/usr/share/info /usr/share/info/quagga.info.gz) if test -x /sbin/install-info ; then /sbin/install-info "${ALL_ARGS[@]}" || : fi ; test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG=$1 if test -x /sbin/install-info ; then if [ "$FIRST_ARG" = 0 ]; then /sbin/install-info --quiet --delete --info-dir=/usr/share/info /usr/share/info/quagga.info.gz || : fi ; fi ; test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart zebra.service isisd.service ripd.service ospfd.service bgpd.service ospf6d.service ripngd.service ) || : fi fi,=_XHLS`RL_!1H  |h XpF9b6 Vqf66 9 ";A聠A큤A큤A큤Ae 7e 7e 7e 7e 7e 7e 7e 7e 7e 7Ve 7Ve 7Ve 7Ve 7Ve 7Ve 7Ve 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7X;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;sX;se 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7e 7d6bafecd0477081f03a48bc6a3ec266c5167a5ea3e1df71f773a1f811af5c8a1bcbf60ad66bb1c486af8cb95f5c7450665d602e5176578597b0d1eb543db83cdcd0918b4180493261c72c9f9e792e3040767c1af958483f0f67c89b4473f21dae886a4d543fe99a3decd4682d9f03cdcdc5b00d0bde3bbd744f43ebfbdaf77038e2bd1509df40145744e5f0a6fee37943c5a18800d3fc752153d95da70a446d1ce981d85a365082b338dc239c3c6a68e28964d054fc798e6e2e4f0c3d4cff8b013ebaefeb4654f04a69b302089df545410d17576fb19b472155f736cb7b7eebd9ab3234e21ab0becb1cbdc1fb55bb75c7707aca0e1914646e7cc178448ab0d61ca5fb245e325bd36c4921723cf09d11a56e6693d141d0607a16e08274166e3a9e70621f50aced6edce95feb728cb03e3cae3b57e01147bc9f0a4afb296b25df4184952f3e5112a9684825bd75661dc744bb9c181ea5b78af00a5b24d15fbd096fdf43f3e31fd9a6b03fea45d10e183d21cd790ef2658b7984d92f16b3b965b0fdbbfeeeee2e79faf1d4e1a252488317fb1126bd35a6ba8bbccfac8128470218f2edd2c132795abe05bb27acd47bb0b2ec5f9fe263977acc1cfa1901d680d52184048b62a2091563efe9f46af43c783282ca2c1a728f9fb44d1479b0fb0b29ca70858154ef9e9149c95a22c8190caa45e66cdceb6efb96f1e2c0279d79193b5ff1ad36188f4fab7c2971b18adcdd22eb5af603d505115cda85779a91e63dfa156cae57074984445a565c488f6780ca92c1ab8a6274bec2a54e9cc6a64857030c42bb0f5c3b29cbb8269b9d72c2781cb146214dc4ffa36375239f9e57d937e494d4c42e21aaf3ffa1e11c84c9b366af1fe956fbc53f428ede6d533c6a714c02139de1472f57181d78dd46c9b72dfad50014443a66bf7e0f4db4aa96312c03ad02cab968d1eb147bd4715e5f451d2767edbdd7bcfc005af9e560d1afb89faae17860fa88e55f0644aca1d04488317f74d6ee8b33131797170f412b77dfec1d970d9256c7ea22be73328b634d74c0b038525c9abee5af9a0bef5dd38032b84256ac8a8d1e41386091837fc28542d19f848ad6f2b9854541475ea193ae16f412359ef938b7ddc8351da8e7fa22f5e3190b474a916dac0d97e6e942604a40087e63347b39c1bad4e51e2a3389cd25fc4addebe41a3ae7c11100795683f9330de1536e53e8c0f1ded7a994f384083d6fc46937f7b86283907b4df4e596991c2a1968e29a9dd0e90e79e789b4c648cea101a97a05a70d3a1b044384aafa98bd43d370af86188d4f5d3d36f3bbfccf3000add0a4109dd482aa1d1e4d17d80b941a7ff06ecf360a48611827013624017282de82c8baccefc8e693ae99d97e833a7fa03f7d7ed89bf4e841543bc14c9aba0c2c493db77de2c4e2f6d7884f8fd3bfe4b5376cd9188d849519da6db6f074570ee6bd68862fbdda4dcf838244e743f184df7f1cdc43efc551a02e80738fbd227d7d5848cf19883f58dfd86cfb81646458d15cec5cc00c18b34925d03c1a618cf59c66e4bf63161120772dcdddd8f0eff94b0b26922e4fae11a8029f90261086a1513ca281e1c6a0976a3df3cd779b05b96716b363ff416d837b66b29deaaedd799f273b6c3ce9098b669f9f43d34d842313bf4d62ae8082e7204707aa415b3bc5d3e80213ff63a2946d5436b629fb75e8577694424fe7f07ce8874ffb5c290886becbe8ef37b841f3ffd4544c061899d53c4e6a178fe6a5dc153f88132be463db1db0c6d2cfdf44bf0d206cdc2c8e2469149e35e58cfb16e4dcfda73cf749cb459eac18a38370596f74e9e1c16b7ad87f598b72511fddfc7830f2b2430aaed5efe7577416816d5a5e9e35f9996fb2e97a4f73d880ed010a26a39403ca130b9f9ea24b4adb214de0854433d85904d315ba13fa358387d2bd82f494775832d5b9832c5d08e3a268536273bf266ccafa4d354ca91c70c3bbca6fd0af65a3b3440ca729468f49ad8663985023fcf3f00e3edf1d6893041aaefcfc98898dc34f4644039477606ed3da99db9f81b77649ca0929e55d79fc166c86ff751c10a5a1ae36f1b55123158431c06091cfa69118e24c4f78f7527881158ae1a54ce0575fdaa5b2e860cf73987f7fc524b51cd5b7b1fd5477e085cc53bca5c840ccb3f28f699dc5a971dbee29a4334d1f1ded12214fe539b6a84b01e5f20a98c56bc7c2c137d076b696348f81a5599db6a849ea5f0ea1ea4f5a300f0ba28b93b9068c02b742bc26255e21352d823d863d18b5524e25137294593c96e7512747b43caee73331d4109204c9d9edcb9b25724b6e90582deb55047ded95ac558ce7636e3e5d216334dcb7aa6b0ddb22f01e7d34596bfc66879ace9ea8bdccd0852721a8346b072854ca565aec630ca6b2b1b2b9124a534e16cd6c38e522d48caf0af377077048f8a9c076d5dfcd312ba3709e0b3e3039d9f8e8cfee47d4762f6d70f94511e91da73b1efbfd100b799871558d95d1e32bec8f5a5fc9803072534377f1be20f1620e93bd994fba502e8c69c8e9c6e2d0b04221e491bf6c56aa2415b6cf66ad05b2339fd2a465147f965d9632ae8eec370e774701908c3efe4b571f7b0f410f045ff86c669c6e9b87330093ac8edf70d81327213ceb6642fserviceserviceserviceserviceserviceserviceservice@rootrootquaggaquaggaquaggaquaggarootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootquaggarootrootquaggaquaggaquaggaquaggarootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootquaggaquagga-1.1.1-150400.12.5.1.src.rpmconfig(quagga)quaggaquagga(ppc-64)zebra @@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shconfig(quagga)coreutilsdiffutilsfillupgrepinfolibc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.28)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.17)(64bit)libm.so.6(GLIBC_2.29)(64bit)libospf.so.0()(64bit)libospfapiclient.so.0()(64bit)libpam.so.0()(64bit)libpam.so.0(LIBPAM_1.0)(64bit)libpam_misc.so.0()(64bit)libpam_misc.so.0(LIBPAM_MISC_1.0)(64bit)libreadline.so.7()(64bit)libzebra.so.1()(64bit)pwdutilsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)systemdsystemdsystemdsystemd1.1.1-150400.12.5.13.0.4-14.6.0-14.0-15.2-14.14.3e Z}@Z@X@X9@X@X TXW{@W)@WKVbVbV@V"8@U ]@U"mt@suse.commt@suse.derbrown@suse.commt@suse.detchvatal@suse.commt@suse.dejengelh@inai.demt@suse.detoddrme2178@gmail.compwieczorkiewicz@suse.commeissner@suse.compwieczorkiewicz@suse.compwieczorkiewicz@suse.compwieczorkiewicz@suse.commrueckert@suse.dep.drouand@gmail.comp.drouand@gmail.com- Applied backport fix for bgpd: Use treat-as-withdraw for tunnel encapsulation and also other malformed attributes instead of a session reset (CVE-2023-38802,bsc#1213284) [+ Quagga-CVE-2023-38802-bgpd-withdraw.bsc1213284.patch] - Applied backport fix for bgpd: Do not process NLRIs if the attribute length is zero (CVE-2023-41358,bsc#1214735, https://github.com/FRRouting/frr/pull/14260) [+ Quagga-CVE-2023-41358-bgpd-NLRIs.bsc1214735.patch]- Applied security fix for bgpd DoS via specially crafted BGP UPDATE messages (CVE-2017-16227,bsc#1065641) [+ quagga-CVE-2017-16227-bgpd-Fix-AS_PATH-size-calculation.patch] - Applied security fix for bgpd bounds check issue via attribute length (CVE-2018-5378,Quagga-2018-0543,bsc#1079798) [+ Quagga-2018-0543-bgpd.bsc1079798.patch] - Applied security fix for bgpd double free when processing UPDATE message (CVE-2018-5379,Quagga-2018-1114,bsc#1079799) [+ Quagga-2018-1114-bgpd.bsc1079799.patch] - Applied security fix for bgpd code-to-string conversion tables overrun (CVE-2018-5380,Quagga-2018-1550,bsc#1079800) [+ Quagga-2018-1550-bgpd-bsc1079800.patch] - Applied security fix for bgpd infinite loop on certain invalid OPEN messages (CVE-2018-5381,Quagga-2018-1975,bsc#1079801) [+ Quagga-2018-1975-bdpd.bsc1079801.patch]- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Disabled passwords in default zebra.conf config file, causing to disable vty telnet interface by default. The vty interface is available via "vtysh" utility using pam authentication to permit management access for root without password (bsc#1021669). - Changed owner of /etc/quagga to quagga:quagga to permit to manage quagga via vty interface.- Remove FIXME's added by spec-cleaner by using proper phases for the prereq deps - Remove code checking for the proc mounting (build scripts do that for us anyway) + remove the commented out autoconf - Use content of %tmpfiles_create macro rather than 2 lines of checks - Use version in zebra provides/obsoletes to avoid rpmlint warning- Update to quagga-1.1.1, a security and bug fix release (fate#323168): See http://mirror.easyname.at/nongnu/quagga/quagga-1.1.1.changelog.txt for complete changelog, a digest of the changes: - Telnet 'vty' interface DoS fix due to unbounded memory allocation (CVE-2017-5495,bsc#1021669) - revert opsf6d: Update router-LSA when nbr's interface-ID changes See http://mirror.easyname.at/nongnu/quagga/quagga-1.0.20161017.changelog.txt for complete changelog, a digest of the changes: - isisd: Fix size of malloc - isisd: check for the existance of the correct list - ospf6d: fix off-by-one on display of spf reasons - ospf6d: don't access nexthops out of bounds - bgpd: fix off-by-one in attribute flags handling - zebra: stack overrun in IPv6 RA receive code (CVE-2016-1245) - bgpd: Fix buffer overflow error in bgp_dump_routes_func - Added libfpm_pb0 and libquagga_pb0 shared library sub-packages, adjusted libzebra0 sub-package name to libzebra1. - Use tmpfiles_create RPM macro to create quagga rundir and adjust tmpfiles config to contain proper rundir at install time. - Removed obsolete patches: quagga-CVE-2016-1245-stack-overrun-in-IPv6-RA-receive.patch quagga-CVE-2016-4049-fix-buf-ovflow-bgp-dump-routes.patch quagga-autoconf-detect-AM_SILENT_RULES.patch - Do not enable zebra's tcp interface (port 2600) to use default unix socket for communication between the daemons (fate#323170). - Added quagga.log and create and su statemets to logrotate config, changed default zebra log file name from quagga.log to zebra.log. - Cleaned up the spec file using spec-cleaner.- Implement shared library policy - Check for user/group before adding them to the system - Trim description- Add quagga-CVE-2016-1245-stack-overrun-in-IPv6-RA-receive.patch: Fix for a zebra stack overrun in IPv6 RA receive code. (CVE-2016-1245, bsc#1005258)- Fix Group tag.- Add quagga-CVE-2016-4049-fix-buf-ovflow-bgp-dump-routes.patch Fix for a buffer overflow error in bgp_dump_routes_func. (CVE-2016-4049, bsc#977012)- replace quagga.keyring with the newer upstream keyring.- Add the %{_rundir} macro handling to spec in order to distinguish /run/ vs /var/run distro versions.- Add quagga-autoconf-detect-AM_SILENT_RULES.patch: Fix autoconf issue of missing AM_SILENT_RULES macro. - Add build requirement for xz- Disallow unprivileged users to enter config directory /etc/quagga (group: quagga, mode: 750) and read configuration files installed there (group: quagga, mode: 640). (boo#770619) - Add sysconfig.quagga: Fillup template for /etc/sysconfig/quagga - Update to version 1.0.20160315: See http://savannah.spinellicreations.com//quagga/quagga-1.0.20160315.changelog.txt Remove double read of stream - Update to version 1.0.20160309: See http://savannah.spinellicreations.com//quagga/quagga-1.0.20160309.changelog.txt Add code to extract.pl.in to prevent further cli function overwrites Fixed if_add_update possible null dereference Fix _netlink_route_debug message Check prefix length from zebra is sensible Fix privilege dropping to use system defined groups Additional centos 6 -enable-werror fixes Fix code to use srandom/random Removal of 'show ip mroute' * : add/cleanup initialisers, missing includes, VRF ID in the API message header, assorted warning call if_init()/if_terminate() from vrf_init()/vrf_terminate() fix "babeld: Remove babeld from Quagga" (336724d) fix in_addr initialisers and more initialisers (for BSD) fix signedness mix-ups use an ifindex_t type, defined in lib/if.h, for ifindex values use long long to print time_t use void * for printing pointers babeld: Remove babeld from Quagga bgpd: add back old forms of 'show ' for compatibility add "show ip bgp dampening" command tree add nexthop length to AF macro add some peer_lock/unlock debug code add support for timer commands with peer-group syntax allow using rtt in route-map's set metric bgp_scan shouldn't queue up route_nodes with no routes for processing check capability falls on right multiple of size, where possible. check rtt later after the real peer is known cleanup vty bgp_node_afi/safi utils compile fix for clearing-completion FSM fix, using workqueue helper. configured suppress value cannot be less than the reuse value in bgp dampening crash from not NULLing freed pointers display of configured dampening parameters do not allow a timers connect of 0 drop machineparse / random "show" improvements enable "bgp log-neighbor-changes" by default encap: add attribute handling, add encap SAFI (RFC5512), extend extcommunity handling, encap show commands fix: bgp_btoa to compile, crash reported by NetDEF CI, ecommunity_token initialiser, graceful restart capability minsize, memory leak in bgpd/bgp_route.c, Null pointer dereference in bgp_info_mpath_update, race in clearing completion, small memory leak in str2prefix_rd, SNMP write support 'struct peer' memory leaks useless call in bgpd/bgp_mplsvpn.c using of two pointers for struct thread_master * VU#270232, VPNv4 NLRI parser memcpys to stack on unchecked length (bsc#970952, CVE-2016-2342) general MP/SAFI improvements handle AS4 and EOI route distinguishers if route-map does not exist DENY for redistribute statements ignore stale entry candidates during bestpath selection. implicit updates in BGP may require a withdrawal from zebra RIB improve cleanup in bgp_delete() memory cleanups for valgrind, plus debug changes hook up bgp ENCAP and VPNv6 CLI node lower BGP's default keepalive/holdtime to 3s/9s lower the default 'timers connect' in BGP to 10 seconds make bgp_info_cmp and multiple-path decision logic more regular and robust to paths that do not have su_remote info make bgp_nlri_parse_encap conform with other nlri_parse funcs make _vpnv4 static handling SAFI-agnostic modify maxpaths cli's to use MULTIPATH_NUM for range only use routes from Established peers for best path selection OPEN parse errors should send OPEN_ERR and UNSPECIFIC subcode. peer_uptime overflows after 1 year fix zAPI parsing refactor route-map objects modifying integer values regularise BGP NLRI sanity checks a bit regularise bgp_update_receive, add missing notifies and checks remove the double-pass parsing of NLRIs 'set comm-list delete' stops as soon as it hits a community-list entry with a deny speed up "no-hit" withdraws for routeservers tests - add null pointer protection to fix bgp test failures update dump to allow Extended Time Format update rtt on soft clear VPNv6 show commands warn user that bgp is setting maximum-paths larger than MULTIPATH_NUM wire up VPNv6 protocol processing fix struct/pointer sizeof mixups fixup afi_t to be an enum and cleanup zebra.h remove 'struct fifo' from lib/zebra.h refactor FILTER_X in zebra.h bgp: reorg cleanup to align process and bgp instance init/destroy build: add --enable-werror ARM compilation warning fix determine CFLAGS more intelligently enable vtysh and pimd as part of default build list actual release procedure make libraries self-reliant remove the old PIC/PIE patch, let libtool sort it out rework how MULTIPATH_NUM is delivered to build distro: fix redhat/quagga.spec.in distro: redhat/rpm: remove with_ipv6, package pimd binary, remove pam stack redhat,CentOS: update to support CentOS/RHEL/Fedora, upstart/init/systemd doc: add AFI/SAFI show commands to manual add 'OSPF Fundamentals' section to OSPF docs distribute a modern version of texinfo.tex with the docs older versions of texinfo seem to be sensitive to location of unmacro update bgpd docs, inc. on decision process, and with a section on MED. fixup of history handling fix alignment assumptions on non-RT_ROUNDUP platforms. gdb: Add a directory of files with gdb macros git: add (generated) cscope files to .gitignore HACKING: Change format to MarkDown, fix spelling mistakes rename to HACKING.md in prep for conversion to MarkDown isisd: add a debug mode that traces LSP construction add a slight delay to lsp_regenerate_schedule add new adjacency to LSP neighbor list add support to import routes from other protocols allow to adjust lsp-mtu always print adj->sysid (clang 3.6 warning) annotate some function arguments with const assorted fixes (unused variables, static) Attached-bit in LSP header don't corrupt memory for long hostnames don't use POSIX reserved y1/yn names do remove ipv6 routes from Zebra drop packet received on multiple interfaces due to the time gap in binding socket to an interface fix: assertion in LSP refresh timer calculation a typo in a log message crash on processing own p2p hello IPv6 mask application LSPs not being regenerated after adjacency change minor & vs. && mix-up misleading wording in log size_t confusions handle lsp confusion (ISO/IEC 10589:2002 7.3.16.2) initialize circuit to match area is_type make send_lsp more robust provide more detailed log for failed address removal purge on correct level remove superfluous checks after XMALLOC etc. remove unused process_is_hello() show interface's ipv6 addreses lib: memory cleanups for valgrind, plus debug changes add: CMD_RANGE_STR macro to command.h facility to log all CLI commands function to get precise remaining time of timer thread getgrouplist() for Solaris SAFI_ENCAP type, safi2str prefix utility "show commandtree" CLI command zlog_hexdump() for debugging allow caller to provide prefix storage in sockunion2hostprefix reduce strcmp in CLI hot paths fix optional arguments with description interactions constify sockunion api don't have log functions change errno fix: bookkeeping for libreadline malloc()s duplicate variable name in smux.c and vty.c Free Pointer dereference in lib/filter.c POSIX capabilities on SunOS platforms "reduce strcmp in CLI" fallout "sockunion: add hash function" for BSD vrf_bitmap leak in zclient_free() hide internal prefix list structures make prefix2str simpler to use, and use it in zclient make sockunion2str safer to use memory reporting fails over 2GB move the interface list into "struct vrf" display more info if cap_set_proc fails. don't use CAP_NET_BROADCAST remove unused 'show memory XXX' functionality silence type range warning in macro straighten out ORF prefix list support stream: fix stream sanity checks treat realloc of null pointer as alloc Now use zalloc rather than alloc with null. Fixes issue seen in bgp check tests. use const consistently for zserv path vrf: enable / disable a VRF vty: add separate output fd support to VTYs add vty_stdio() add vty_stdio at-close hook don't clear output buffer on input EOF put stdin in raw mode for vty reduce unneccessary C extension usage support multiple VRFs by using linux netns add trivial work_queue_is_scheduled helper wrong #define used for IPV6_MINHOPCOUNT zclient: can overflow (struct interface) hw_addr if zebra is evil consolidate error reporting for zclient_read_header add "vrf_id" into the "struct interface" move "struct vrf" to be a lib module unify link layer type and hardware address handling configure an interface in non-default VRF ospf6d: fix for fast OSPF convergence fix pointer arithmetic warning fix uninitialized warning in SNMP oi->cost is uint32, not short use existing union, avoid strict-aliasing ospfd: add missing unlock for ospf_interface_address_delete() extend 'ip ospf area' to take address argument + rationalise ospf enable fast OSPF convergence fix bug in 94266fa822ba, nbr_self rebuild didn't add valid nbr_self fix for 'no' + 'debug command' does not disable 'debug command' fix unused warning in ospf_write impl. per interface 'ip ospf area' command lower the default OSPF spf timers to '0 50 5000' make ospf_passive_interface_update calls friendly to static analysis move route_unlock_node() in ospf_ase_incremental_update() ospf_ase.c, external_lsa locking fixes. ospf_ls_upd_send() add missing unlock. ospf_nbr_nbma_set()/ospf_snmp_vl_add() add unlock PointToPoint neighbors are identified by router ID remove another odd flooding hack in opaque LSA code remove HAVE_OPAQUE_LSA and HAVE_OSPF_TE remove the blocking of opaque LSAs origination and flooding 'optimisation' self nbrs needs to be rebuilt when router ID changes. split up network interface enable a bit, for per-interface area cmd trap on state change seems to send incorrect value for ospfNbrState use route_node_lookup() instaed of route_node_get() pimd: add ability to set DR Priority for an interface add knowledge of different packet types add support for configuring multicast static routes assert when no route to source from a new igmp join cast ioctl values when printing them cast to sockaddr_in to sockaddr change ioctl call failure from vty_out to zlog_warn cleanup interface startup cleanup zebra debugs to be protected by debug commands create ability to modify hell and hold timers per interface do not display some default values as part of a show run ensure new generation_id is different from previous fix first DR Election, leaked fd, out of tree build, size_t zlog_err format string warning limit pim hello log messages mask unused zclient_broken() notice when we receive a packet type we can't handle yet stop DR election on every hello use IPPROTO_IP (not SOL_IP) for IP_PKTINFO 'show debugging' collision ripngd: add ECMP support allow to enable/disable the ECMP feature sockopt: add support for querying tcp round-trip-time sockunion: add accessors for sockunion address add hash function solaris: create ioctl_solaris.h drop duplicate __EXTENSION__ define more warnings fixed no ROUNDUP tests: add CLI dummy command-exec tool add more AS4 capability tests + little fixes for couple of GR test cases. add testcli reference in/out & do DejaGNU vrf: add a runtime check before playing with netns vtysh: add missing show thread/work-queues commands adjust bad_cli_stomps in extract.pl.in to reflect fixes & fix build allow display of individual daemons configs allow --with-libpam to build with --enable-werror don't use '\0' as NULL drop unused variables & RETSIGTYPE fix Quagga.conf file read in. fix the fix for babeld removal when the config file is close to the boundry of size of buffer vtysh hangs. hook up bgp ENCAP and VPNv6 CLI node fixup of history handling reduce unneccessary C extension usage support multiple VRFs by using linux netns configure an interface in non-default VRF zebra: fix struct/pointer sizeof mixups add "vrf_id" into the "struct interface" move "struct vrf" to be a lib module unify link layer type and hardware address handling configure an interface in non-default VRF add hooks upon enabling / disabling a VRF additional redistribute related logging atomic FIB updates clean up misc_null pragmas, RTADV define configure static routes in any VRF don't print uninitialized string fix: addr sent in ZEBRA_IPV6_NEXTHOP_LOOKUP build with rtadv disabled change of distance on ipv6 route creating duplicate routes leaked sockets in rtadv.c NetBSD interface stats printf non usage of VRF_DEFAULT route deletion on *BSD rtadv detection, check for non-glibc linux VRF code for *BSD implement per-route mtu handling let FIB stand for its respective VRF let the route-map rule "match interface" work for VRFs the netlink sockets work per VRF lookup the address in all VRFs when set the route-map rule "set src" maintain RTADV and router-id per VRF make RTF_LLINFO optional to fix FreeBSD make ZEBRA_FLAG_CHANGED internal status remove HAVE_IPV6 from rib.h and zebra_rib.c remove metric from kernel rib->nexthop_num is double incremented show interfaces in a specified VRF or all VRFs show routes in a specified VRF or all VRFs silence zebra_serv_un unused warning simplify redistribution code support FIB override routes use link scope for interface routes use prefix2str for logging where possible use SA_SIZE for RT_ROUNDUP on FreeBSD use prefix2str and unify show ip/ipv6 route code wire up "debug zebra packet detail"- run systemd-tmpfiles in %post to get the directory set up.- Fix build for openSUSE 13.1/SLE12- Update to version 0.99.24.1 * zebra: don't print uninitialized string (3b02fe8) This crept in as part of the MRIB improvements and I missed the compiler warning between other noise. Unfortunately, printing an uninitialised variable can in fact make zebra crash, so this is not trivial. - Use systemd for openSUSE > 12.3 - Add patch from Fedora * 0001-systemd-change-the-WantedBy-target.patch/bin/sh/bin/sh/bin/sh/bin/shzebraibs-power9-13 1695299566  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG1.1.1-150400.12.5.11.1.1-150400.12.5.11.1.1-150400.12.5.11.1.11.1.1 quaggaquaggaquaggavtysh.confzebra.confquaggabgp_btoatest_igmpv3_joinvtyshbgpd.serviceisisd.serviceospf6d.serviceospfd.serviceripd.serviceripngd.servicezebra.servicetmpfiles.dquagga.confbgpdisisdospf6dospfclientospfdpimdrcbgpdrcisisdrcospf6drcospfdrcripdrcripngdrczebraripdripngdwatchquaggazebraquaggaAUTHORSCOPYINGCOPYING.LIBChangeLogNEWSREADMEREPORTING-BUGSSERVICESTODObgpd.conf.samplebgpd.conf.sample2isisd.conf.sampleospf6d.conf.sampleospfd.conf.samplepimd.conf.sampleripd.conf.sampleripngd.conf.samplevtysh.conf.samplezebra.conf.samplesysconfig.quaggaquagga.info-1.gzquagga.info-2.gzquagga.info.gzvtysh.1.gzbgpd.8.gzisisd.8.gzospf6d.8.gzospfclient.8.gzospfd.8.gzpimd.8.gzripd.8.gzripngd.8.gzwatchquagga.8.gzzebra.8.gzquagga/etc/logrotate.d//etc/pam.d//etc//etc/quagga//run//usr/bin//usr/lib/systemd/system//usr/lib//usr/lib/tmpfiles.d//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/quagga//usr/share/fillup-templates//usr/share/info//usr/share/man/man1//usr/share/man/man8//var/log/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:30715/SUSE_SLE-15-SP4_Update/31143cab47b99213ede2dad5fdde620a-quagga.SUSE_SLE-15-SP4_Updatedrpmxz5ppc64le-suse-linux  ASCII textdirectoryELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=b47a4f0e15e9d13b90bd8bf3150903671925a1bc, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=7b0adeb2b5a5762ea26dcc821a939347a2d4d4d4, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=f3c23c57c93740f670b81ac0a2710922eb29dc0a, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=150397b56884a3a42f7b191d7a5c05a71ee38397, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=7e30272b94cbc5083d0314853cda4ea7825b6bf0, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=af0a2f1a256e368ed59fcccb55d94a6a9bac0809, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=2bcd2d8602eec3b240a8c674954b9d25e64c3228, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=16500fc3fa1ed088d1a142dd253a4ff2d86cb79e, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=2192a99fcea610cb85a67e025e4582bb36dd0008, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=8da97b2cb7444264e17165fa0c848b99c9441ff7, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=fff435b8b0eb89ae4d5a1e5244b5ef50d9c836f0, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=6b06da3e3e738bc43ce58f5f0cd62f76c98268e0, for GNU/Linux 3.10.0, strippedELF 64-bit LSB shared object, 64-bit PowerPC or cisco 7500, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=5914bedef32b2f064ab608a4892f39ef77b50dc5, for GNU/Linux 3.10.0, strippedUTF-8 Unicode texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)!%),/2RRR RR R R R RRR RRRRR RRR RR R R RR R RR R RRRR R RRR R R RR R RR R RR R RR R R RR DCuƖf)logrotateutf-8e5c6fd640273520204d50cbf1a1469feba3c28f81439115898fb67b79bed3950?@7zXZ !t/&GA]"k%w%^fYWL^'_C𔥫QK2g&HϤ=6I?&eHZN/OX>2%Qk W:ɑ/L]\p.C}LfMӹ RXݫŬsEfҴ/qPDd/}Rб d?<  ΛR`Vz{_MD}~Kb E ,{ׁ?7blz}_T$~-bVSmeu(`U|ZݵOCrof&|?.}J5pz_/=tFgz;/;p#z(Ak)y `@b;B&1\:6T/SR1OOpͅpD2bkppCh è ~Yr]UgC@U5-'fd83&աP@!Z{C)RO 9i21wAN|\%?avWsa0oZukOȜ]-ィ7J8Χ6J ^'wo`8:E8ZS{5?u[8I6ֲ<|0KzXr%Uֵ>w cs-8@C'@Glw7^o\-CP9Q8c€ۃdr݀I~\*| shrqfp㐇Wʟ_b[p"|cVb12e*ŒWPb- ~rnɦ96jL. $̤ێ + ̕tK8ɄY'8J!( ~4Bi4nlչ5nwfCcKxPŠvkkxZNs h%]`AtE/d;a@$0ߑEz 6 "8,KX2o]_+#0# I)HyZSi)6]ɽOLo/dZ.R V2Q6Ū ʓKX)V:SĬ7[꼇Bb2 X$To0d@Ur1y>T"3iG{@kԢs,AʉVj@ >nT? UAzX )קT#Wero-LSw 8d=#TE*z%vXKc*(BnNl%&J"Nd!^iׇ]!7UK9VvȀ~#'ȑȴ,j3OB! q镈ґ>بdu!3L*uux7{ABj͌ #OՈ+v&8Ț#e;Ϗ  3jm-{ҷh ,/$W=\T,W1u-F8"]n+al042wXPh2 +_P[P<(X}<Anwr(!G %F*f:3̛%_)cjnb?#NjIAz- 1EQ4Zd"@bJe_DXnbL/8bܥIr!Eʚqo2vLbXDִFW^ݢ Vj;nc|OLаm)ԾDHW6jgb9d`Q84߶!&myY*!FJK#~ΉR,ENB^7Q=;[*Q{IXnVٚ++4J(`i*P(ѹ-[Q_]&-쁗L9cRDpw8#,N-ӨNqPݧ{Gk؜AAC5yҒZΠgGCjwѴS\QP6~ܛWԂo 1SfeM<ӓ<">{ :) iֲf2AՌ87S-G {VEC_[!+@e~۳ k3`/~\2C< ٮşT86~CX,SfÎTIzJ8lR)XQ2$V9.E*O pVB=ܞ"(iq{'i32>D\A:` Nqj 7'P9`AmUT_$P},MEDž&H@2 4;p-yˬ{;K3Li] 1@ Cm9XN@k*$B^|L|uwy Rec$RvA NjXhFtiyٕ J_ܔ-bG3R*};ZwvkH&JdgCYJ>ؕHTi%>ūJ۾tREENKڹnѧ6lܳ٭~1aHqDxgWN"Y6s*K 4i}@WYEfm6 aveĢ_t93 h6]?]@Ug]8#0GHw1yйoy:_1e\>% }z(5"HoN@qmJ+H Y6\ea9 dz%yu$2pPc *LDw=S;I~ ĞK'xK fNA4n`v [w~⢏-E;w9Gxgɬ50-޹N13Do5󸃽3MGL?CٓDbY63/I䍮j%ނ ޲)T = ܗnBR}bn f/ Z{_2 uQ.lD `D2~gcI)YTeC %@:gzW;pKtPdvٝS.uCW T@E|^(?l"W-҉m6NhAڎ1&Sx\SGX"7Ȑ[5@K(ړP[ Vj%'0QHm/mmo]z®fT;]NOWo'r i)dԒeN>=8vq 9t@NHa x2='FQ\T E-m>-Mw@6R~5(;F.n'yLNj-4oE7U܅) 1 &%Oj4HXh(Ν%- GyIU?~eiJSpX|3^:J'TZvzXBw; Čr&.V;+J#Kw7bgjΨ")L3pn ༪|ōwMϪ>+ $5$"\*TyjD?p}bk=P^M0R;n},S'mZ'pT*lv48XhϪNRbFi8M4B²|KeK1vG"ۛ{-{6Tؠq8Z3i{Cz܍g4&m.%l;(ro0,@3AFJģ4r]{l`Qtec%IRN;zf  gK:nX TfVt&_ ̋ c1lc[:j1 7]n,jèBƕSCX.5ްBR7=>dF yec,hW3 *~uCJ?edʯ_kCDlfH\ֹFYԟw4,l/M  ת8ëpfRs  9 `[M9 D+ T/5c* lPl1vUEXNZz%5:H=:C d{tܥEL=oulBp,pNUݶ~R$+2a_c *-,HWIxdrEwEXB'kIEu뢓5n`#cB_3}o'?l]%%.PS4JZV(8_RJIT ŠSZL%%wR( R!hml{&IiL@ZJPԻT7b"yc@ܳ.v^mA^]x@)_g*l&v&~ԞRI* ³۰(VCIws * _/sڭXc 6*A ,F{uǰS̿3Sˠ0'br^YChoTjMcޫƗ%mwO__X<0Fo{wY~ڱ\|}48P*:N5}!]zeO P$vV/]׬bbB<{ZQ. F‘\Vw˸X?kԭj#ξfᅫ y嚥}aIe赪Me #?(t)~%`uW% ʷ&STήgfKDO$-ϴ8â5]kHwZnʔX[8?4+YJqK М0QU*엛4_YO(adX6oO ڐ#Bng8:mZ3'%̐Mg:w^ .E7/d9֖R8I2vIRhκBFʇDU6܃*ڲcJN|6MGs\MvhWe0zZ/hΎI"UIqLv諽QD&Io8 TDQS"ϖPR0>N%v"T=$j穫+jss?rē %Dx5&Ju3nvZ/ l%{?^ p;&⿧N|_kJ 433+l:rN= F}.tNІz[;'go)m8$ns>/B=lUƪ}_nHh$Xq4rk QBVqU{d 6{w~xpe&,MvM ^]%`)L`tϳ8Sݱ/(a\–`]aׁߡg'^hb ǹ9a'궵.ȟթ{oLI0u]L7[xނ@.OHeu7UQm6$ܭ֭/`z}v<+ )L$e6F(^YKSbTUi@}JM5ɽRӁU!tJHp+W] }%9 #PYhnl9x5NJzIAH "ؘءm'v-ފ0qJʠ6&Yt:.uF#0Jj3*6cl!OhFtf]B oWRhȂWVJCvj nKo3/w.=J}g$N)HF@ˉ\60p" L&<^%w7D'8fA\Ԋ#XEl{ډMf?<$k&=` M)y2fP ,X n)g̶cQJ81EgNKa%nՑF J2 k/&֝؆P#(5zfVύg&Dh0꥖asɢ$N<]#cOfQ]7#6\#-(yEgh&2F ݱrvga! R^bØo#yD3@VBV*iܾwS'0ѵwmJq}$~V0;&DnPU4GLTSۚS]i)ܯXtuUsB5./S1s%4? [ЀNmBCQ4q֏\YgP .x-Na_y*އE|AN>h*JGRD*AV>MD!u3$#)P, !qUñKjMPiWbaK[~Lpgy}tŌ!S*K!U6HhMG3EHFإ˖PvڒR<ѽ2;{Hd?QZT PTL %%nN8t]Y_RB.9U-P䗷&o4W8Xmkw#6$Qkܚ1y@[1 "CThgq1JjNpzԷԂ7 @N. i3eW%*TM;/a04j; x!euߜL-Q|*Ț'v}DL1^玭 IQ?E=diWp{&shCtk֡Xs>,| _oeRZBq]Kt %!:`ra,si'o  nݕXB8)W)?k缢g a&pw1 }ZN7uo 7sǮPցJmc"''epۏ\cTt3Qa3vrc8֋`&%n2UDV=xr%WV!QIC{k*P[]%@۬o}I%ӈ2LhWL@w%\$>hoC(jug-z0R%xx FU Fh$C&.]G%v@MP0 .gi#vɒ>6IOI+2.6fPkeb*5fSݞ߄!W0ϙhr3IrtwU(Jm1p"i״ζaZb^_}+{lW ?AI/ {*z 2sR qmR` "~YSqҨ2ԐvtHH*˜ KNaThjaeTٌ9z2Pl0:( =i {Ap+V])LQ2hXeΤYQ#@!:C‰ Rk f|+5P ]5ى6Cv$be#7sQg8mMFNie#m-uz J(F`$pIǼc(E3 7>:ZQV'}2D `Y^ Dؙ?C>Ѝ<.Ӈ[ݷXᖳ9.୙g>jBcOCk/ޔUJK#rly2\mnہF΃cj '%}kF:Le9jjotZek}y@IV=YUMN'W5}]-4l OKekˌQ3Ɩ.&ѿڭ1O)XM~^q}P?+8NXP i!EOטUS#@_Eo #ŖDzܩ]u] Ps ݯ n[篤I EMpN ,s2Iq5u>¢wĸ{pH|I{eeO!v 3~#3l6`3pK%g4KlYzfsfڎ!ٲoEMVQ[ٶ,'fѐ+c֨Ji{0ykn)#7^v[n\r=m&_"¿Ff)qC!sOl8JZal")@4!z8g@핐)q/<#Ӥ;k$ھ2fqc^BAJ6ƪP_p8'$u@fg0O LKcyHW,fFx6XJkFqzSM ((`K P@ jGG{ aN.wb5 |EF1b=8,jTvO87\#W<11:5lu eMrBgF?^d"{T+2EJ [ΣJ<#)]~*kyU43ľm8N޲|f) ^`e)x¬A` c zS'~O-_Q|À~pL_f 'ظ}۝=h뼧6Xu%+{ϗKz2)>0F.>n <.R%iqRY&<3Sir ȇ-ecb}G8N;2E,t&KGW4s(߻\ 9*G֟ ŕ?RW4jJԨ d:"x^$Ѫs@^~XǔTvA2bĩ=q0,Mmݚ،ޡ/@beRJNQ(< ZNkUR빓K}-V]@U YNdRsgoQE}o ifH(@,jL~~T#)RmA>~ @y%2mD z3S"๟ކ] 42/k:7`B%_,TjzϣbYCjuJFl箚@ nXqd:}ѡ"ѳO{+-e5Yue]߾ڴfm|A{8#uxB_#y)jR?Y UVֈ #dm`NJfD9 \16y̿c&`{*=8`?Xiӌ{j)=7(7c1l]Inqe?`3L0/"\ّT/O1+'k,LGFg7{ qwoTۗyzw(q(>(DWC=lRբ(HEH*Iܢ+ Vm[ BC˭$Jns=hkj|Ai p`J Âeo lw0Cd(SyEnaq]ZmZ4W=MT0% w١R$0GD|W7Ch !gdz HB ͷl7!p#XKAnrEͮd`уEZ=`Qu_Z Z԰4b;X8}|އ pB=`#g8cx3ŷ#/RC%1ؒ0rRwZ^yz?cn#7/+fcA׌+&TEؼ_,bE{,+Гi09J_#O%AIOXi _!SEzb\ZƘ<엺۸Xze#%_Y74TaSNab-|]|gSjn4# lx@kB[X0?\$‹DfH@YD{Yd O[;ᱸ\ˏ As= `q^2#ܱi(75\zdzb$0Le}%2Hwo4fȆNѣ[qX&A$ll +B/ ^}6)Ũzcd]F z:-0̪M7:kMf 9%NP 0h.0WcLeu=9 iu?t_6;O ~kZ¯0Np+E  ]OU!v>uKx1sH)dd-` ;'YyWP݂|byQzԍ\?$)V?sPܓ#r,Bd0 UHgj3js AFO-%ڒ5EVZIléoJ! 3 |3ZoF=(r۳WI$% }7&ece>qc%s:5>xik2Va6#JnE9K= {U=f&7N AA5t?0w y>,yni#bxpyG>(>d&?Ƽ Ǫ5ַܷm'PzUk [ .6whq5ksjFgvƫtP־ZwM7xd,694,R9O72$pz ק^nPI[fVB3Q\R2n܆Fcۂ7CL2JS".H8F`mS)Zk$ԁuUOJ d0R񏪌p, K OFV+12oQhf&4M_Dz^M&!Yk"Fi օ3mMuTNΧ聒oV\`E#-ݣO"\/mc!ݴ[Gn7Hc|8QGjv煩WDóY?9* '{WMT:L^!U&l%Ӯ7lmğGC&PRe0z6$nذ$«>j!izE6!Y_nrSXmԅ 5mHE~t{ՐN5ܿǘ cET3k<tey +/PCSC3{R.8HM67X |^&Q3/^?m`!/o\8BHd~Ln,RVétʧSɥ }=Hck—ËQJ<ϴY߲QӻުmȸJ6ܧCHqHv&b?gŇ2"Kqm-U% ;˞7cdF$T>z`t[a"ˉZuoDZpkORj@|n3j("$?V["CegFV|+ٻ!'KAWALn&!F#Bͨ'tIE3B fkka-QTx lJ=m8Uu6t|fX6\dw0*fg{.E\Gŝʧq CVo2:E߫n ~0eKȲeA[񶿋vD4arboJӬ&2N,\mxS3,rERV\e.EIڝBiAsgn=XC5?upNp9RJ+>JqX'1hpʌ'HÐ1'oj"V*O@okR =rO*v,j]XKXXmj 8\ ub|n|[փ+Q߿պӿX`$q[dN{_tlk  YZ