librpminspect-1.2-2.el8$>ixta>@X?Hd  K<@O^     @  TtD// /( 8 9 $ : GlHڌIڬXڴY\]^ۀbdIeNfQlStlu݌vݬwPxpyސ',0Z   DClibrpminspect1.22.el8Library providing RPM test API and functionalityThe library providing the backend test functionality and API for the rpminspect frontend program. This library can also be used by other programs wanting to incorporate RPM test functionality._#buildhw-x86-09.iad2.fedoraproject.org BFedora ProjectFedora ProjectGPLv3+ and LGPLv2+ and ASL 2.0 and CC-BYFedora ProjectDevelopment/Toolshttps://github.com/rpminspect/rpminspectlinuxx86_64,,^AAA큤_#_#_#_#_#_#__3ed87b7aeede354d39f77a3d161c3db06f93262c7876325013f28321ed57a81de3a994d82e644b03a792a930f574002658412f62407f5fee083f2555c5f23118cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30../../../../usr/lib64/librpminspect.so.0.5.0librpminspect.so.0.5.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrpminspect-1.2-2.el8.src.rpmlibrpminspectlibrpminspect(x86-64)librpminspect.so.0()(64bit)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @clamav-datadesktop-file-utilsdiffstatdiffutilsgettextlibarchive.so.13()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.27)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.8)(64bit)libcap.so.2()(64bit)libclamav.so.9()(64bit)libclamav.so.9(CLAMAV_PUBLIC)(64bit)libcrypto.so.1.1()(64bit)libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)libcurl.so.4()(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libdl.so.2(GLIBC_2.3.3)(64bit)libelf.so.1()(64bit)libelf.so.1(ELFUTILS_1.0)(64bit)libelf.so.1(ELFUTILS_1.5)(64bit)libelf.so.1(ELFUTILS_1.6)(64bit)libjson-c.so.4()(64bit)libkmod.so.2()(64bit)libkmod.so.2(LIBKMOD_5)(64bit)libmagic.so.1()(64bit)librpm.so.8()(64bit)librpmio.so.8()(64bit)libxml2.so.2()(64bit)libxml2.so.2(LIBXML2_2.4.30)(64bit)libxml2.so.2(LIBXML2_2.6.0)(64bit)libxmlrpc.so.3()(64bit)libxmlrpc_client.so.3()(64bit)libxmlrpc_util.so.4()(64bit)libyaml-0.so.2()(64bit)libz.so.1()(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)3.0.4-14.6.0-14.0-15.2-14.14.2_@_@_[f^^@@^x^@^@^F]7@]*]A]ADavid Cantrell - 1.2-1David Cantrell - 1.2-1David Cantrell - 1.1-1David Cantrell - 1.0-1David Cantrell - 0.13-2David Cantrell - 0.13-1Björn Esser - 0.12-2David Cantrell - 0.12-1David Cantrell - 0.11-1David Cantrell - 0.10-1David Cantrell - 0.9-3David Cantrell - 0.9-2David Cantrell - 0.9-1- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- For BUILDTYPE=release, generate the correct type of changelog - Minor logic error in submit-koji-builds.sh - Fix reading existing spec file in submit-koji-builds.sh - Bump development build version to 1.2 - Use is_rebase() in the 'upstream' inspection - Use rpmtdSetIndex() and rpmtdGetString() in get_header_value() - Add get_rpmtag_fileflags() to files.c and call from extract_rpm() - Use correct Version and Release values in download_build() - #include -> #include - Add the 'config' inspection to librpminspect - Rephrase reporting messages in the 'config' inspection - Add the 'doc' inspection to librpminspect - Update TODO list - Minor updates to try and make gate.sh more reliable - Add config and doc to the inspections list in generic.yaml - Rename the '%files' inspection to 'files' (#194) - Modify baseclass.py to allow 'before' and 'after' NVR tuples - Use the after tuple to override the NVR in test_abidiff.py - Use the after tuple to override the NVR in test_upstream.py - Write rpminspect output to a file in the test suite - Add 28 test cases for the 'config' inspection - Fix the errors in the 'config' inspection found by the test suite - Fix Python problems in the test suite reported by black and flake8 - Add Makefile targets for black and flake8 - One more formatting issue reporting by Python black in test_config.py - More 'python black' formatting errors reported for test_config.py - https://mandoc.bsd.lv -> http://mandoc.bsd.lv - Add a -D/--dump-config option to rpminspect(1) - Use global reported variable in 'config' inspection - Fix reporting errors in the 'doc' inspection - Add test_doc.py with 'doc' inspection test cases - Ignore flake8 W291 in test_doc.py where we explicitly want whitepsace. - Add init_rebaseable() to librpminspect - Check the rebaseable list in is_rebase() in librpminspect - Update TODO list - Define a new GitHub Action using utils/gate.sh - Update the README.md file - shellcheck fixes for utils/gate.sh - Use utils/find-ninja.sh to determine what ninja-build command to use - Install fedora-packager for the gate.yml GitHub Action - Remove before and after variables from gate.sh; unused - Remove unnecessary basename() calls in inspect_upstream.c - Do not assume an or bn contain strings in is_rebase() (#196) - Adjust what things run during with GitHub Actions - Add get_rpm_header_string_array() to librpminspect - Replace init_source() with get_rpm_header_string_array() in inspect_upstream.c - free() allocated output string in inspect_changelog.c on errors - s/10240/16384/ in archive_read_open_filename() call in unpack.c - Add the 'patches' inspection to librpminspect - Add uncompress_file() to librpminspect - Add filecmp() and use that in place of zcmp/bzcmp/xzcmp - README.md updates - Restrict some GitHub Actions to source code and test suite changes. - Only enable lz4 compression if ARCHIVE_FILTER_LZ4 is defined - Go ahead and wrap the rest of the libarchive compression filters - s/class Test/class /g - Make sure uncompress_file() supports xz compression - Handle more compressed file MIME types. - Add test_changedfiles.py to the test suite. - Add test_patches.py with test cases for the 'patches' inspection - flake8 fixes in the test suite - Python format fixes for test_changedfiles.py - Python format fixes in test_patches.py - More Python format fixes for test_patches.py - Remove unnecessary 'a' in DESC_PATCHES - Better explanation as to why the EmptyLicenseTag tests are skipped. - Test suite cleanup; add rebase= and same= to TestCompareSRPM - Black formatting fixes for the test suite. - Remove unused imports in test_upstream.py - Revert black fixes for test_config.py - Fix my email address in test suite source files. - Support single package URLs for before and after builds (#190) - Handle invalid/missing RPMs in get_product_release() - Use warnx(), errx(), and err() in src/rpminspect.c - Modify submit-koji-builds.sh to pick up all pkg-git branches. - Update the rpminspect.1 man page to reflect current status. - Update translation template files in po/ - Support relative directory paths for the -w option (#188) - Implement the 'virus' inspection and add test cases for it. - Update po/ template files - Python formatting fixes for test_virus.py - Update the osdeps/*/reqs.txt files. - More osdeps updates for the clamav needs - Install 'xz' for the 'style' GitHub Action - Fix a variety of small memory leaks in librpminspect - Stop the freshclam service for the Ubuntu gate job - Support slightly older versions of libclamav in inspect_virus.c - Add the 'politics' inspection to librpminspect. - In tearDown() in the test suite, call rpmfluff clean() methods - Add test_politics.py with 'politics' inspection test cases - Python black format fixes for test_politics.py - 'it should added' -> 'it should be added' - Increase the runtime timeout for test_virus.py - Install the timeout decorator on all OSes in our GitHub Actions - Install timeout-decorator with pip, not timeout - Expand librpminspect with support for SHA-224, SHA-384, and SHA-512 - Define DEFAULT_MESSAGE_DIGEST in constants.h and use that. - Replace some fprintf()/fflush() calls with warn()/warnx() calls - Rename the 'DT_NEEDED' inspection to 'dsodeps' - Rename 'LTO' inspection to 'lto' - Update translation template and fix two incorrect error strings. - Note all valid message digests in data/politics/GENERIC - Improve reporting in the patches inspection - Only fail 'changedfiles' for VERIFY and higher results - If 'removedfiles' only reports INFO messages, pass the inspection - If 'addedfiles' only reports INFO results, pass the inspection - If 'patches' only reports INFO results, pass the inspection - No need to check value of allowed in permissions_driver() - Do not let INFO results fail the 'doc' inspection. - Do not let all INFO results in 'upstream' fail the inspection - Fix RPMFILE_FLAGS handling for %config files (#221) - Still report file changes in the 'config' inspection for rebases - Correctly check RPMFILE_DOC flags in the 'doc' inspection - Include rpm/rpmfi.h insted of rpm/rpmfiles.h - Only check regular files and symlinks in the 'doc' inspection - Remove unnecessary assert() statements in filecmp() - Remove incorrect warnx() reportings based on filecmp() return value - Exclude man pages from the 'doc' inspection - Honor the -a command line option for downloads as well as runtime (#233) - Allow optional 'commands' block in the config file - Fix assorted non-critical memory leaks - Remove unnecessary warn() after a failed stat() - Additional memory fixes for the abidiff inspection (#244) - Free ELF symbol names list in find_lto_symbols() before return - Followup to the memory fixes for read_abi() and free_abi() - Prevent invalid pointer dereferencing in invalid result in 'patches' (#245) - Avoid reusing the same abi_pkg_entry_t struct in read_abi() - Allow a set of excluded path prefixes in 'pathmigration' - Fix the YAML parsing for the pathmigration block - Document the BRANCHES variable for 'make koji' - Include the .asc file when submitting new Koji builds (#191) - Include the .asc file in the spec file- Formatting fixes in Makefile help output - Begin config file restructuring starting with rpminspect-data-generic - Support multiple configuration files. - Docs work in progress. - Only fail the annocheck inspection for RESULT_VERIFY. - Read debuginfo if available when running the 'annocheck' inspection. - Add the '%files' inspection to librpminspect - Add __attribute__((__sentinel__)) to the run_cmd() prototype - Add test suite cases for the '%files' inspection. - Added the 'types' inspection to compare MIME types between builds. - Update TODO file - Update the MISSING file - s/rpminspect.yaml/generic.yaml/ in the Makefile and README - Skip debuginfo and debugsource packages in the 'types' inspection - Add test_types.py to the test suite - Note the 'types' inspection generic.yaml - Modify add_entry() in init.c to skip duplicate entries - Start GitHub Action workflow files for rpminspect. - Install meson in ci-ubuntu.yml - Change 'nls' option in meson_options.txt to a boolean - Install gettext for ci-ubuntu - Add more build dependencies to ci-ubuntu.yml - Drop the 'method' parameter from dependency() lines in meson.build - Split xmlrpc libs to separate dependency() lines in meson.build - More xmlrpc updates for meson.build and lib/meson.build - Try to support systems with xmlrpc-c without the pkgconfig file. - Changes to build on Ubuntu, specifically the GitHub Actions system - Syntax error in ci-ubuntu.yml - Add ci-fedora.yml for GitHub Action CI on Fedora - Fix errors in ci-fedora.yml - Put all of the ci-ubuntu.yml steps in ci-ubuntu.yml - Remove install-libmandoc.sh and ubuntu-pkgs.sh helper scripts. - Install python3-setuptools in ci-ubuntu.yml - Install rpm-build in ci-fedora.yml - Install libxmlrpc-core-c3-dev in ci-ubuntu.yml - Disable ci-ubuntu.yml for now, enable code coverage in ci-fedora.yml - Remove Travis-CI files. - coverage fixes for ci-fedora.yml - Install git in ci-fedora.yml - Enable manual dispatching of the CI on Fedora tests - Remove actionspanel thing for GitHub Actions, drop Coveralls block - Comment the ci-fedora-yaml file - Fix the 'elf' inspection and test_elf.py on Ubuntu - Enable the ci-ubuntu GitHub Action again - Check all return values of getcwd() - Ignore installed Python modules with pip3 in ci-ubuntu.yml - Build 'execstack' test program with -Wl,-z,lazy - Add ci-centos8.yml to enable CI on CentOS 8 as a GitHub Action - s/centos8:latest/centos8/g - Trying 'container: centos:centos8' - Drop 'sudo' from ci-centos8.yml - Rename README to README.md - Enable GitHub Action for CI on CentOS 7 - Drop -I from the pip install line in ci-centos7.yml - Use the 'make instreqs' target for install test suite deps. - Add back 'dnf -y install 'dnf-command(builddep)'' to ci-fedora.yml - Nope, that doesn't do it. Just install make in ci-fedora.yml first - More 'make instreqs' fixes. - s/scripts/utils/g in the Makefile - s/TOPDIR/topdir/g in the Makefile - Install make in ci-centos7.yml - Move REQS and PIP lists out of the Makefile to files in osdep/ - '^$$' -> '^$' - Slightly different sourcing of the osdep/ files - Set OS using := in the Makefile - Make the reqs.txt files in osdep/ contain all deps - linux-headers -> linux-headers-$(uname -r) for Ubuntu - Remove html401-dtds from osdep/centos8/reqs.txt - Use `` instead of $() since this list goes through make(1) - Does $(shell uname -r) work in this case? - More osdep/ work and simplification. - Rename 'osdep' to 'osdeps' - meson patches for opensuse - Move mandoc installation to post.sh in osdep/ubuntu - Add GitHub Action for CI on OpenSUSE - opensuse:latest -> opensuse/leap:latest - Install tar in ci-opensuse.yml - Install gzip in ci-opensuse.yml - More fixes for ci-opensuse.yml - Small fixes to determine-os.sh - ci: Add Python linting jobs - ShellCheck fixes for the regress/ scripts - ci: Add ShellCheck to lint shell scripts - Adjust how the Makefile reports unknown operating system. - Just check $ID in determine-os.sh for opensuse - Use pip for PIP_CMD on opensuse-leap - Update the centos images before doing anything else. - Install curl in opensuse-leap - Get 'rc' from Fedora on opensuse and copy it to /usr/local - Install kernel-default-devel for opensuse CI - Move the 'uses' part of the centos CI jobs to the first step - ShellCheck fixes for the utils/ scripts. - Some flake8 fixes in test/, using yapf - Combine all of the GitHub Actions CI runs in to ci.yml - Manually install rpmfluff on CentOS 7; pip is failing here - Use rpmfluff-0.5.7 explicitly for centos7 - Use rpmfluff-0.5.6 on centos7 - OK, let's try rpmfluff-0.5 for centos7 - Last try, rpmfluff-0.5.4.1 for centos7 - Back to trying to manually install rpmfluff for centos7 - Style the Python code with Black - Add the Black formatting commit to blame revision ignore list - OK, just copy rpmfluff.py in place - Make sure to manually install rpmfluff-0.5.7.1 for centos7 - Don't assume we have a header or even a list of files (#161) - python: flake8: drop * imports - python: flake8: wrap long lines to less than 100 characters - python: flake8: drop unused imports - python: flake8: remove unused local variables - python: flake8: add PEP8 whitespace - python: flake8: mark in-line bash scripts as raw strings - python: rename several duplicate test cases - ci: merge style workflows - Adjust rpminspect.spec.in for file moves and default changes. - Return the reallybadword to the metadata tests - Adjust test_metadata.LosingVendorCompareKojiBuild to expect VERIFY - The shared libmandoc check should not look for a static libmandoc - Update the AUTHORS file - Rename ipv6_blacklist to forbidden_ipv6_functions - Rename stat-whitelist to fileinfo - Rename 'caps_whitelist' to 'caps' and drop the use of 'whitelist' - Rename abi-checking-whitelist/ to abi/ in /usr/share/rpminspect - Rename 'version-whitelist/' to 'rebaseable/' in /usr/share/rpminspect - Rename "political-whitelist/" to "politics/" in /usr/share/rpminspect - Drop unnecessary method re-definitions in base test classes - Use super() rather than explicitly calling the parent class - Call configFile() on object instance rather than using the parent class - Upload coverage report to codecov - Improve the error reporting for test result checking - Convert to AUTHORS.md file, add Makefile target to generate it. - Introduce the 'movedfiles' inspection and a lot of other fixes (#155) - AUTHORS -> AUTHORS.md in rpminspect.spec.in - Add basic tests for the filesize inspection - Multiply the file size difference before dividing - Update README.md - Update README.md (more Markdown changes) - Update POTFILES and rpminspect.pot - chmod 0755 test_filesize.py - tests: optionally check the result message - tests: add further filesize tests for shrinking files - inspect_filesize: drop extra - from the message about file shrinkage - Enable 'permissions' inspect for single build analysis. - Add 24 new test cases to cover the 'permissions' inspection. - chmod 0755 test_permissions.py - Make sure all RESULT_INFO results are set to NOT_WAIVABLE - Fix some specific problems with the 'permissions' inspection. - Pass "-r GENERIC" to rpminspect in the TestCompareKoji class - Add 12 more permissions test cases for setuid file checks - Update TODO list - Update test_symlink.py tests for new waiver_auth values - Add a fedora-rawhide job and renamed 'fedora' to fedora-stable - Update the rpminspect.pot translation template - Relicense librpminspect (lib/ and include/) as LGPL-3.0-or-later - Ignore .tox/ subdirectory - License the rpminspect-data-generic subpackage as CC-BY-4.0 - Add a copy of the Apache 2.0 license for the 5 files in librpminspect - Update the License tag in the spec file and the %license lines - Add debian-testing as a CI workflow; add missing osdeps files. - Update determine-os.sh to handle Fedora stable and rawhide - Drop the use of 'sudo' in ci.yml - sudo required for Ubuntu CI job, install make for debian-testing - See what $ID is set to in determine-os.sh - Workaround a bug in meson 0.55.0 for Fedora CI jobs - Add 'debian' catch to utils/determine-os.sh - Rename 'osdeps/debian-testing/' to 'osdeps/debian/' - Add opensuse-tumbleweed to the CI job list - Add libmagic-dev to osdeps/debian/reqs.txt - Fix memory corruption in init_rpminspect - Add comment clarifying the License tag in the spec file. - If check_results() raises AssertionError, dump the JSON output - Fix test_changelog.py test cases that are failing. - Fix UnbalancedChangeLogEditCompareKoji - Handle rpm versions with x.y.z.w version numbers in test_symlinks.py - Fix mandoc build problems in opensuse-tumbleweed CI job - Install gcovr using pip on opensuse-tumbleweed - Handle systems that lack pkg-config files for libelf and libcap - Add archlinux CI job in GitHub Actions - Forgot --noconfirm on the 'pacman -Syu' line. - Add missing DESC_MOVEDFILES block to inspection_desc() - More minor fixes to the Arch Linux CI job. - Install gcovr with pip for the Arch Linux CI job. - Support building on systems that lack - Add detection for to meson.build - Ensure an int is used for snprintf() in inspect_manpage_path() - WIP: 'abidiff' inspection - Only report permissions change if there is a mode_diff (#181) - Fix -Werror failures in inspect_abidiff.c - Add sl_run_cmd() to librpminspect. - Add get_arches() to librpminspect - WIP: abidiff inspection - Some minor edits to the README.md file - More minor updates to the README.md file - Replace get_arches() with init_arches() - Add test_addedfiles.py to the integration test suite - Expand find_one_peer() to soft match versioned ELF shared libraries - Add the beginnings of the 'abidiff' inspection code. - Report out findings in the abidiff inspection. - Update the test suite to cover rpmfluff 0.6 - libmandoc configure workaround needed on Debian too - shellcheck fixes for the scripts in utils/ - Add abi.c, the code that reads in the ABI compat level files (#144) - Be sure to close the open file before exiting init_fileinfo() - Python formatting cleanups - Add --diff to the Python format checker - Add new setting to abidiff section of the config file - Add -n/--no-rebase command line option to disable rebase detection - Store size_threshold as a long int rather than a char * - Check abidiff(1) results against the ABI compat level definitions (#144) - Add 'apt-get -y install libgcc-s1:i386' to pre.sh for Debian - Add integration test cases for the abidiff inspection (#144) - Add 'dpkg --configure -a' to pre.sh for debian - Install libterm-readline-perl-perl for debian CI - Install libabigail for Fedora and CentOS CI jobs - libgcc-s1:i386 -> lib32gcc-s1 for debian CI - Install libabigail for opensuse-leap, opensuse-tumbleweed, and arch CI - Install libabigail for debian and ubuntu CI - Install libabigail-dev for debian and ubuntu, not libabigail - Install libabigail-tools on opensuse-leap and opensuse-tumbleweed - Install libabigail-git for arch linux CI - Move free_argv_table() to runcmd.c - Install 'abigail-tools' for debian-testing and ubuntu CI - Install libabigail using the Arch User Repo on arch CI - Explain the osdeps/ subdirectory. - No, just clone libabigail from git and build it manually on arch - Add beginning of kmidiff inspection, put ABI functions in abi.c - Read list of possible kernel executable filenames from the config file. - Drop abidiff_ and kmidiff_ from extra_args; add kernel_filenames - Just call the abidiff and kmidiff extra args settings "extra_args" - Define 'kmi_ignore_pattern' in the config file. - Handle builds that lack all debuginfo packages (#186) - Do not assume peer->after_hdr exists (#187) - Store copy of original pointer in strsplit() to free at the end. - Use mmap() and strsplit() in read_file() rather than a getline() loop - Fix memory leaks in abi.c functions - open() failure in readfile() is not fatal, just return NULL - Add utils/gate.sh - Have check_abi() pass back the ABI compat level found - Update descriptions for abidiff and kmidiff inspections - Hook up the kmidiff inspection. - Use read_file() in init_fileinfo() and init_caps() - Use read_file() in validate_desktop_contents() - Use read_file() in disttag_driver() - Adjust how init_fileinfo() and init_caps() iterate over file contents - Fix 'tox -e format' style problems found. - Avoid comparing elf files that are not shared libraries - Support --kmi-whitelist in the kmidiff inspection - Trim worksubdir from paths in reported abidiff and kmidiff commands - Remove the kmi_ignore_pattern setting for the config file. - Create include/queue.h to replace the _COMPAT_QUEUE blocks everywhere - Update AUTHORS.md - Report metadata changes for rebased packages as INFO - Do not fail the specname inspection when given a non-SRPM - For passing upstream inspections, do not report a remedy string. - Do not fail the lostpayload inspections if it only gives INFO messages - Clarify unapproved license message in the license inspection - Use FOPEN_MAX for nopenfd parameter in nftw() calls - Make sure to close open file descriptors from get_elf() calls. - Include 'src' architecture in the rpminspect runs in gate.sh - Make sure kmidiff is listed in the spec file - TODO updates - Update rpminspect.pot and POTFILES for translations- Use this project's user.name and user.email for Koji builds - Use YAML for the rpminspect configuration file and profiles - Reduce the number if (null) prints in debug mode for shellsyntax - Update README - Fixes a ValueError if hostname has no periods - Remove '#include ' from rpminspect.h - Install python3-pyyaml in the Docker test environment. - Use fedora:rawhide for the Docker tests. - Try multiple ways of finding the kernel development files in test_kmod.py - Syntax error in test_kmod.py - Force kver in list iteration to a string. - Update 'hardened' annocheck definition, add another LTO prefix - Debugging output in inspect_lto.c - In test_ownership.py, use the built rpminspect rather than a script. - More debugging output in inspect_lto.c - In find_lto_symbols(), start at SHT_PROGBITS instead of SHT_SYMTAB. - In test_symlinks, use built rpminspect rather than a shell script. - Use built executables in test_upstream.py tests rather than scripts. - Add '%global __os_install_post %{nil}' to rpmfluff spec headers. - Make sure man pages we expect gzipped are gzipped in test_manpage.py - Set QA_SKIP_BUILD_ROOT=1 in %install in test_symlinks.py tests. - Add '%global __arch_install_post %{nil}' to symlinks spec headers. - Install kernel-core for the test suite. - Find the kernel build directory in test/data/derp-kmod/Makefile - Skip ELOOP symlink tests if rpm >= 4.15.90 is used - Pass the kernel build directory to derp-kmod/Makefile from test_kmod.py - Install 'make' in the Docker test environment - Support Linux 5.6.0 struct proc_ops in derp-kmod - Final derp-kmod fixes for the 5.6.0 and higher kernels. - rpminspect.conf -> rpminspect.yaml in rpminspect.spec.in - Set default JVM byte code version to 43 in rpminspect.yaml - Update the local test instructions to run individual test scripts. - Report changed files as RESULT_INFO when rebasing packages (#150) - Ignore missing XML entity definition errors (#148) - Add some basic verbose output from rpminspect(1) - Split 'emptyrpm' inspection in to 'lostpayload' and 'emptyrpm' (#147) - Move _() usage for DESC_* macros to inspect.h - Handle INSPECT_LOSTPAYLOAD in inspection_desc() - Search correct files for POTFILES additions. - Update POTFILES and rpminspect.pot template - Add DESC_PATHMIGRATION and reformat the struct inspect for reading. - Small update to the MISSING file. - Install python3-devel for the test suite. - Install libffi-devel for the test suite - Use the rpm Python module in test_syslinks.py to get rpm version. - Add check_results() to test/baseclass.py - Report %changelog section differences as INFO (#123) - Report dangling symlinks as INFO for now (#145) - Add get_specfile_macros() and get_macros() to librpminspect (#152) - Fix ELF_K_AR handling in get_elf_machine() (#153) - Remove stray 7 from an #include line - Don't worry about EM_BPF objects in ELF_K_AR file types (#153) - Fix -fPIC loss/gain reporting in the elf inspection (#153) - Support macros in the Release tag in the 'disttag' inspection (#152) - Simplify the get_elf_section() function a bit. - Do not report all after objects without -fPIC as having lost PIC (#153) - Drop eu-elfcmp(1) usage in the changedfiles inspection. - Rename on_stat_whitelist() to on_stat_whitelist_mode(), fix some errors. - Add on_stat_whitelist_owner() and on_stat_whitelist_group() - Ignore debug paths in the symlinks inspection. - Install 'setup' in the Docker test image - Add mock(1) in the Docker test environment. - Remove DEBUG_PRINT for the config file name read in init.c - Display errno value when getpwnam_r() or getgrnam_r() fail - Handle missing users and groups from the system - Add sssd-client to the Docker test environment - More debugging output while working on Travis-CI problems - Further Travis-CI debugging for the ownership inspection. - Continuing to debug this problem in Travis-CI - And continued Travis-CI test_ownership debugging... - Fix problem constructing package download URLs in librpminspect. - Only try to read the UID or GID in the ownership inspection. - Update translation template file. - Update po/POTFILES list - Final getpwnam_r()/getgrnam_r() changes for whitelist.c - Restrict RPM spec file macro gathering to %define and %global. - If shdr in _get_elf_helper() is NULL, return NULL. - s/%%/%/g in results.h - Account for whitespace other than ' ' on Release: lines (#157) - Add a new disttag test case to cover tab field separators. - Ignore multiline macros in get_specfile_macros() - Add more example data to test_disttag.py to cover recent bug reports. - Add ignore_path() function to librpminspect - Expand foreach_peer_file() with use_ignores parameter. - Revert work-in-place changes in inspect_elf.c so the test suite passes. - Update the 'ignore' section in rpminspect.yaml - Expand strreplace() to support removing substrings. - Trim rpminspect working directory from annocheck(1) details. - Skip debuginfo files in the annocheck inspection. - If reltarget is "", do not try to further modify it (#159) - Add manually-invoked regression testing scripts. - BR libmandoc-devel >= 1.14.5 - BR libmandoc-devel without specific version for EPEL-7 and F-30 - Make sure all static path buffers use PATH_MAX consistently. - Support a positional parameter on 'make check' to run part of test suite. - Followup to the PIC check for static ELF libraries (#153) - Create TARGET_ARG to get optional target arguments. - Change *-dtds packages from Requires to Suggests for el8 and fedora. - 'sort | uniq' -> 'sort -u' - Rename 'make release' to 'make new-release'; add 'make release' - Fix build_module() in test_kmod.py- Rebuild against latest mandoc package (#1850375)- Remove the GitHub Release page stuff from utils/release.sh - Drop meson_version from meson.build - Change meson.build to require xmlrpc-c >= 1.32.5 - Fix some errors when running with libiniparser 3.1 - Only set CURLOPT_TCP_FASTOPEN if we have it available. - Expand the template rpminspect.conf file for the test suite. - Handle 'localhost.localdomain' FQDN in the test suite base clases - Rework the test_manpage.py tests to work with rpm >= 4.11.x - BR xmlrpc-c >= 1.32.5 and iniparser >= 3.1 - README updates - Modify the Makefile so it works with 'ninja' or 'ninja-build' - Rename the tests/ subdirectory to test/ - Split meson.build out in to different meson.build files. - Move builds.c to lib/, remove builds.h from src/ - Move rpminspect.conf to data/, expand data/meson.build - Fix the --version output to remove '@' wrapping the version number. - Remove diff.3, the code is gone from lib/ - Begin doc/Doxyfile for API documentation. - Add Doxygen documentation for badwords.c, builds.c, and checksums.c - Make sure the changelog inspection runs with before/after pairs (#130) - Ignore debuginfo and debugsource packages in the kmod inspection. - Skip the kmod inspection if there is no peer_file (#131) - Handle kernel modules that move paths between builds (#131) - Test cases for kernel modules changing paths between builds (#131) - Add Doxygen documentation to four C files, update others. - First part of reworking the add_result() API. - Add init_result_params() to reset the struct result_params structures. - Additional Doxygen documentation blocks for librpminspect. - More librpminspect documentation work. - Un-static some of the inspect_elf.c functions. - Remove MPARSE_MAN to let libmandoc autodetect the type (#132) - Revise list_to_string() to support optional delimiter. - Add get_elf_section_names() to librpminspect - Support [lto] section with lto_symbol_name_prefixes in rpminspect.conf - Add 'LTO' inspection to librpminspect (#129) - Add 'LTO' inspection test cases (#129) - Fix free(): double free detected in tcache 2 (#134) - Do not strdup() header and remedy in add_result_entry() - Store package extract root in rpmpeer_entry_t for each package. - Add strtype() to librpminspect to return string indicating file type. - Add the 'symlinks' inspection to librpminspect (#133) - Add tests for the 'symlinks' inspection to the test suite - Update README file - chmod 0755 test_symlinks.py - symlink inspection adjustments based on feedback (#135 & #136) - Simplify the license inspection routine (#138) - Add get_elf_machine() to readelf.c (#139) - Elf64_Half -> GElf_Half in dt_needed_driver() - Skip eBPF ELF objects in the 'elf' inspection (#139) - Stop appending a newline to string in strappend() - Collect all results from getLatestBuild Koji XML-RPC call (#137) - Return EM_NONE in get_elf_machine() - In download_build(), fix how srcfmt is set. - Fix some memory errors associated with the results and parameters. - Add a new faux-result to the results output for 'rpminspect' - Use params.msg for reporting in check_bin_rpm_changelog() - Add teardown steps in baseclass to clean up rpm build files - Adding tests to validate file ownership and capabilities tests - Added build cleanup in baseclass and fixed setUp typo - still testing - Many more tests fixed - down to six failures. - Fixes to mockbuild tests - Fixed some duplicate class names and now passing all tests - Added docstrings to all tests and other small bugfixes - Added docstrings to all tests and other small bugfixes - Formatting and style fixes - Make sure only RPM files are passed to get_rpm_info() - Update TODO list - Return get_rpm_info() and add_peer() have void returns. - When public headers change in 'changedfiles', do not free param.details - Check is eptr->data is NULL in find_one_peer (#142) - Define EM_BPF if we lack it. - Skip 'upstream' inspection if no source packages are provided. - Add explicit librpminspect Requires to the main package. - Add test cases for the 'upstream' inspection. - Simplify how the versions are collected in inspect_upstream() - Update translation template.- Rebuild (json-c)- Do not use headerLink() in extract_rpm() - Expand the 'kmod' inspection to check module dependencies. - Expand 'kmod' inspection to cover PCI device IDs - Update the TODO list - Update Dockerfile.test for Fedora 31 - Updates for the MISSING file - Add DEBUG_PRINT() macro to librpminspect. - Add 'favor_release' setting in rpminspect.conf under [vendor] (#98) - Add more lines to [inspections] in src/rpminspect.conf - Change up the DEBUG_PRINT() macro - Don't assume favor_release is set in rpminspect.conf - Format stdout and stderr correctly from baseclass, run with -d - Correctly recognize parenthesized license substrings (#101) - Shorten the names of test classes. - Generate a dummy 'changelog' for the CI tests - Adjust how the dummy changelog is made for Travis-CI - One more slight change to how .travis.yml runs mkrpmchangelog.sh - Nope, just can't spell the name of my own script. - Copy the dummy changelog to /root/rpmbuild/SOURCES - Add /bin to PATH in mkrpmchangelog.sh - Make sure glibc[-devel].i686 is installed for the test suite. - Add test kernel module for use in the integration test suite. - Update the TODO list - Note the test suite needs kernel-devel installed. - Expand the derp kernel module for depends and alias support. - Fix up some of the kmod functions in librpminspect - In the test suite, use the same before & after package version. - Add test_kmod.py to the test suite. - Stub out test_ownership.py and test_shellsyntax.py - * extract_rpm -> *extract_rpm - Handle parenthesized license substrings with all tokens (#102) - Combine prototype sections in rpminspect.h for kmods.c - Implement the 'arch' inspection. - Add a section to the README file explaining how to run the tests. - Add the 'subpackages' inspection. - Ignore 'build' directory. - Fix the kernel module alias tests in test_kmod.py - Follow the pep8 style - Remove unused import in tests - Start some spec file changes to support building on OpenSUSE - Update TODO and MISSING - Move the assert() for ri in inspect_modularity() up. - Use 'pip3' in .travis.yml and Dockerfil.test - More updates to Travis-CI control files. - And another change for the .travis.yml file - Revert "Start some spec file changes to support building on OpenSUSE" - Handle return code 1000 from the Koji hub. - Expand meson.build and rpminspect.spec.in for EPEL-8 - Support libiniparser v3.x and v4.x APIs - Added the 'changelog' inspection. - Add possibility to run integration test suites separately - Begin i18n support for string translations. - Mark strings in lib/ for translation, update rpminspect.pot - How to run and debug integration tests - Fixes for i18n string marking changes. - More build fixes for the change to translatable strings. - Favor libmandoc.a when build rpminspect - Display the line number in DEBUG_PRINT() - Expand the config file with [pathmigration] and [ignore] - Fix double free in list_free() (#107) - Really fix the double free() in arch/subpackages (#107) - Do not require a tty when running (#109). - Add the 'pathmigration' inspection and test cases. - Rework the 'xml' inspection to better handle DTDs and SVG files (#110) - Default rpminspect.conf updates - Expand 'filesize' to report changes at different levels by percentage - Update TODO list. - Fix bug in shellsyntax where before and after builds are invalid. - Add shellsyntax tests for /bin/sh - Add libdiff code snapshot to librpminspect - Patch diff.c so it builds in librpminspect - Include diff.h in rpminspect.h - Refactor variable names - Add some helper functions for reading and working with text files. - Implement the unified_diff() library function. - Add two utility functions to librpminspect. - Change upstream_driver() to use unified_diff() - Use unified_diff() in changedfiles rather than running DIFF_CMD - Fix for 'error: format not a string literal and no format arguments' - Split unified_diff() in to unified_file_diff() and unified_str_diff() - Change 'make POTFILES' to 'make update-pot', update po/rpminspect.pot - Add /bin/bash tests - Add DEBUG_PRINT() to annocheck_driver() - Rename 'Screendump' to 'Details' in the output listings. - s/depends/dependencies/ in meson.build - Fix SIGSEGV in inspect_changelog() (#115) - Add tests for shellsyntax for /bin/ksh - Handle RPMs with empty or missing changelogs (#116) - Update the AUTHORS file. - Add tests for shellsyntax for /bin/zsh - Add tests for shellsyntax for /bin/tcsh - Add tests for shellsyntax for /bin/csh - Refactor the unified_diff.c code to be more reliable (#116) - Correct RPM %changelog output to match rpm (#116) - Stop adding DIFF_COMMON lines twice when the hunk continues (#116) - Adjust the unified_output() function for more output control (#116). - Remove libdiff code and return to using diff(1) via fork and exec. - Fix some memory leaks in inspect_changelog.c - Update the test_changelog.py to do list. - Added the tests for losing the %changelog in the after builds - Update the 'make instreqs' target, README, and rpminspect.spec.in - Unify the readme with yum as rpminspect works on yum as well as dnf - Require xmlrpc >= 1.51.0 - Add get_nevr() and get_rpmtag_str() to lib/rpm.c - Do not abort if the hdr is NULL in get_changelog() (#127) - Update test_changelog.py with more changelog inspection tests. - Remaining set of changelog inspection fixes. - Make sure remaining test_changelog.py test cases pass. - Handle shell syntax tests that don't return non-zero on failure. - Add tests for shellsyntax for /bin/rc - Add release.c to librpminspect source. - If no new %changelog entry is found, report OK if NVRs match. (#127) - Modify license inspection reporting. - Split add_result() in to add_result() and add_result_entry() - Prevent reporting unapproved license tokens for approved expressions. - Disable empty license tag tests, add ValidGlibcLicenseTagKoji - Temporarily disable UnprofessinalChangeLogEntryCompareKoji - Update po/ files. - Adjust how GitHub release assets are uploaded.- Change the way get_mime_type() works so it caches the type. - Support an optional [annocheck] section in the config file (#62) - Add a 'make help' target in the helper Makefile - Add 'annocheck' inspection to librpminspect (#62) - Add weak dependency for /usr/bin/annocheck (#62) - EM_S390 maps to R_390_* macros in /usr/include/elf.h - Only run the changedfiles inspection under certain conditions (#74) - Skip source packages in the changedfiles inspection (#74) - Add back missing free() in rpminspect.c, but in the right place. - Simplify the returns out of changedfiles_driver() - Add the 'DT_NEEDED' inspection to librpminspect. - Expand 'elf' inspection description to mention forbidden function check. - Change result severity in 'upstream' based on package versions. - Cache rpmfile_entry_t checksums. - Add 'filesize' inspection to librpminspect. - Updated top level docs. - Check all license abbreviations in the 'license' inspection (#83) - Use MESON_BUILD_DIR in the Makefile 'all' target. - Drop MAGIC_SYMLINK from magic_open() in get_mime_type() - Move stat-whitelist checker to whitelist.c - fixup! Move stat-whitelist checker to whitelist.c - Change the prototype for add_result() - Add the 'permissions' inspection. - Replace check_stat_whitelist() with on_stat_whitelist() - Add 'make instreqs' target to install build and runtime dependencies. - Handle ENOENT failures from realpath() in unpack_archive() (#84) - Only run the DT_NEEDED check for ET_DYN files (#85) - Update the HISTORY file - Add a [specname] config file setting to rpminspect.conf (#86) - Boilerplate updates - Implement runtime profiles (#82) - Update TODO list - Compare JVM major version against the minimum JVM version (#89) - When reporting public header changes, skip first 3 lines from diff(1) - Address errors reported in DT_NEEDED inspection in BZ#1793113 - Various word fixes in the rpminspect.1 man page - PRIMARY_BASENAME -> PRIMARY_FILENAME - Correct the javabytecode major JVM version comparison (#89) - Reset field to MODE when reading the stat-whitelist (#90) - Add vendor_data_dir setting to rpminspect.conf - Rename [tests] section in rpminspect.conf to [settings] - Expand rpminspect.conf with an [inspections] section - Improve failure reporting in the integration test suite - Handle symlinks in copytree() in src/builds.c (#92) - Make sure "noarch" and "src" are always honored as package arches (#93) - Update TODO list. - Formatting changes on MISSING - Add get_rpm_header_arch() to librpminspect - Further improve the handling of 'noarch' and 'src' for -a (#93) - Use get_rpm_header_arch() to retrieve RPMTAG_ARCH - Move to using libcap instead of libcap-ng - Fix Koji scratch build download support in librpminspect (#94) - Add the 'capabilities' inspection to librpminspect. - Renamed [vendor-data] to just [vendor] in the config file. - Implement an RPM header cache in librpminspect - Restrict get_cap() to S_IFREG files. - Note the licenses for all of the dependent components. - get_rpm_header() pointer fixes - Implement Freedesktop.org icon lookup routine for 'desktop' (#95) - updating imports to use libcap, matching BuildRequires in specfile - If vendor is not set in rpminspect.conf, skip tag check. - Handle upstream source adds/removes with pkg version changes (#96) - Boilerplate updates - Improve "Missing license database" error message. - Update TODO list - Use xasprintf() instead of strdup() here for parameters - Begin the 'kmod' inspection for kernel modules. - Typo fix in src/rpminspect.conf: s/not/no/ - Remove some memory leaks in librpminspect and rpminspect. - Shorten -l output, use -v to get current output. - Remove -x from #! in utils/release.sh- Disable jq usage in the release script for now - Generate a complete %changelog block for the spec file - Force overwrite of generate .tar file in .copr/Makefile - Run srpm and check targets before koji, pass name of tarball - Add utils/submit-koji-builds.sh, which drives 'make koji' - Genericize submit-koji-builds.sh a bit more - Start a .gitignore file - Changes to the release and build automation for the RPM changelog - Handle int32 and int64 size results from Koji over XMLRPC (#61) - Make --copr mode on utils/mkrpmchangelog.sh generic - Existing packages that go away in a comparison are VERIFY (#59) - inspect_elf() RESULT_OK should be NOT_WAIVABLE - Refactor strprefix() - Fix a memory leak in init_rpminspect() with the javabytecode array. - Fix a memory leak in the license inspection. - Update release and build steps in the README - test_elf.py tests that verify passing tests are Not Waviable - Build package download URLs correctly, drop use_volume_name setting - Clean up rpminspect error messages when downloading. - For fetch-only mode (-f), default workdir to getcwd() - The new libmandoc API works, drop explicit 1.14.4 BuildRequires - Add is_text_file() to librpminspect - Handle multiline results in run_cmd() correctly (#59) - Show diff(1) output for changing upstream text sources (#59) - Adjust run_cmd() calls to match the new API - Explain how the -w option works with the -f option in the man page - In REMEDY_LICENSE, explain that valid licenses need to be in licdb - Fix some memory leaks in the license inspection. - Add a [products] section to the config file for mapping release strings (#68) - Fix json-c memory leak. - Small memory leak fixes for the product release string gathering. - Trying to get the automated release notice posting working on github. - Use printf to build github release body text - changelog -> ${CWD}/changelog - Make upstream spec file include the changelog like downstream. - Syntax errors fixed in utils/release.sh - Escape newlines in the release body text. - Run the release script with -x for now, for debugging. - Shift things around a bit in the release.sh script - Use jq(1) in utils/release.sh to generate the JSON data for GitHub. - Slight changes to the jq(1) commands. - Even more small changes to the jq(1) command. - Do not build the spec file or SRPM in the release.sh script - Correctly generate the git log entry for the release. - Edit the release on github rather than create a new one. - Still working out problems with automating releases on github. - Fix 'Builds have different product release (el7 != el7) (#70) - Remove unnecessary free() - Shorten the eu-elfcmp reporting (#71) - Switch to using a BUFSIZ buffer for getline() in run_cmd() - Expand the get_product_release() functionality (#72) - Detect product release strings correctly with underscores (#76) - Support SRPM files that lack RPMTAG_SOURCE entries (#78) - Handle subpackages with different version numbers (#77) - Add support for Koji scratch builds in rpminspect (#60) - Make get_product_release() even if [products] is missing. - Drop the extra strdup(), xmlrpc_decompose_value() handles it for us. - Update the rpminspect(1) man page. - line-buffer stdout - makes "rpminspect ... | tee" behave better - Clean up memory leaks with the Koji task handling code. - Add a SIGABRT handler to rpminspect(1) - bad free() - Change the task member of koji_task_entry_t to be 'struct koji_task *' - Skip shellsyntax inspection on source packages (#79) - Fix set_worksubdir() TASK_WORKDIR test (#80)- Drop explicit versioned BR for libmandoc-devel- Fix a %changelog mishap- Complete the tests/test_manpage.py integration tests - Add xml inspection integration tests. - disttag inspection failures should be not waivable - All RESULT_OK results should be NOT_WAIVABLE - Expand integration test suite to support waiver auth checking - Improve forbidden_path_prefixes results reporting (#59) - Add a HISTORY file explaining a bit about the history of rpminspect - Use lstat(2) in copyfile() so symlinks are correctly handled - Fix a problem with peer detection when comparing single RPM files. - Stop setting whichbuild in so many places in build.c - Two hidden bugs in inspect_elf.c resolved via the integration suite - Add test_elf.py to the tests/ subdirectory - Add elf_ipv6_blacklist to the sample rpminspect.conf file - chmod 0644 fortify.c - Reformat a line in get_elf_section() to make it more readable. - Add forbidden IPv6 function use tests to tests/test_elf.py - Forgot to add tests/data/forbidden-ipv6.c - Add test_elf.py test cases for DT_TEXTREL on 32-bit architectures - Use headerGetString() throughout librpminspect - Add some missing free() calls in run_cmd() - Use string_list_t ** for user_data in elf_archive_iterate() - Add losing -fPIC on 32-bit builds test in test_elf.py - Add get_nevra() to librpminspect to get RPMTAG_NEVRA - Do not output Waiver Authorization for RESULT_INFO results - Call rpmFreeRpmrc() from main() before the program exits - Adjust how and where rpmtdFree() is called - Use the GNU version of basename(3) and ensure we don't use the libgen version. - Fix forbidden_path_prefixes check in the addedfiles inspection (#59) - Add missing free() to inspect_desktop.c - Simplify the is_valid_license() code that concatenates tokens - Simple Makefile to drive different parts of the build. - Add the git log to the release notification published to github - Fix error in the 'make release' target - If asset ID cannot be found, dump what github returned on stdout - Use jq(1) to escape strings for JSON1.2-2.el81.2-2.el8.build-id455a6ba8c22727fe484c52264f1ce22175395041librpminspect.so.0librpminspect.so.0.5.0librpminspectCOPYING.LIBLICENSE-2.0.txt/usr/lib//usr/lib/.build-id//usr/lib/.build-id/45//usr/lib64//usr/share/licenses//usr/share/licenses/librpminspect/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectiondrpmxz2x86_64-redhat-linux-gnudirectoryELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=455a6ba8c22727fe484c52264f1ce22175395041, strippedASCII text'PRRR$R#RRRRRRRR R R RR RR RR%R'R&R"R R!RRRRR(RRRRRR)RR-https://bugz.fedoraproject.org/rpminspect/usr/bin/abidiff/usr/bin/annocheck/usr/bin/kmidiffbashdashhtml401-dtdskshrctcshxhtml1-dtdszshutf-8cf886f9b3361fa70f6d715973267bdcedae64b23ba882f168fe7bafe7737b566?7zXZ !#, ]"k%jjd+T2jq84[IGw7qu'=k~/p2  nU/c#j{qW%EV׾O,I'Q: ɹEWXÈ5]UHqBXKEO@q}k%n3ryr=ԤyxC땷X?zo@v56p{Hr"6 b9@AcD!ʘ߬he zQb:SOm '_ !^'G,pxuuS\z|G$t*GLFJ2AN&;9JfYQV-!r2nogaUW%O.UvAw[J9apO^fbŗ^ }ݖQuڈ85pǥ.ۄ,5!s(U̦J:]p8n71n]"4e:vK-H+8Ej;> U5<!w U!xuZ!@bD:T 1^w(E'N?qP6hȨd᭺ U~bXv4&Vv Xݸuܱo |]#Ԟ/}}mhHNncl쬊j+RoPZpTNnx{jpIL3,g"2 rI*븢;}9g |N=y?[:#Gh(;H) ڌY.Ю9^cTy1[Z]L6 $bD)d%ȅv<8fP l pC3F}iQqjj)j,Ҳʼ˄ H;F@r Ÿs`u4oj񽗰ވm?-h](\,(&vTTƛc1ؒWUD* _RI. Q1YF[ޗ-ȕqn5v糑o o0A|>Z 2?*ә#G:$} ^f/n!=$gbHN&ɄGM|73C?۴,F|'yk6-:R>6H^#Y臁, TC4>]pZ}β s~h~{>%^:jrwv%kuc9yVÍ $GE~`xM-ʜ P9êzB<:!K% UYސp5IiyI[f♼ CBeeEdd#8:xSznl HNMg ᰻*g540D ήdƦ;]Q[Gj3Z1o" EMT0~\b..UtSo{iɱyMvY0tgEQࢥ5S T!t\;hrn%o_>bs厓3(\. `}@ћW8E R$dRcx|ѯ 6XSadhKPkV4FR*7b*2\޾dvA#;J3o}()dl5hyL`QQId9p$4;ZO*WWpkW3Ղ3=dtܜp%}A ӧi,pE xfo &>ˀs{R%ޜ0m @${RX٢[H ]k$(cݧAgFrᝠck)͞T{*/HQɀeᒈD "KLSiä7Kes71Y+NȒ=,NUt?ց2/:Ժ2Bzsk}/ " iكȂ.v q%S̠/b 9(߮@A>^Zz}TP@/\]&w# 7(F;&4U\,!|`R\ BZX塹+1᧲\ q\Ӆ%ZX(iE~tLjx^Pcjt0h_m~RZgwA+uEP]iϼ SVFV2I7VuCA'\56I%?8n9Zy4UwP ~raV Tq+J\H+x"L9ARr=5Id<*{84ōnF:J㴿7߿BO棱0hW?3T۫`p Y Rq#иcIE]JfT(ZR-@ޖ,7[++YR~OkՔQaV[ȉQ1)xTx'ars8̚;$ TK)SqΤ|eB_v) ]o"+`;E۩84ѠE+Zd.'hJ熦,3Y |3$w7"~Vq.GVk;i"D4I+'`^kVu 5ZqNfʚcPcVVXK8KSf.fX/`-BJC*9?"-4uMQ\U(}LBSUgu^-q0ݘCSJ](b9Plt(^$7[Tޯ@7ʛ dP ^[mEm{[.Zpn'tͯZ PuS{v-hS9+wB+dJgJ#?h ɢdscoS=mj?#Zs/v,,z>OdU!2 R@ٍPZ+QLPUeuar˚IʭZуR"Lؿ8 W7u<5r<cIa ,4j@i7ί䖹:@8[I;M}r+Fy cݼ RAS<(qyTb'p`PW N1y* ;:?[ s=݊6a_?\tWa(|玧Fp|ΐQ0_'bgq:\˼ފjKodH[C*wTr~Ɏ|ߨJ@`* o/žjw}4M@5bzBa7sıSǼj[+6l4A*PVud+ζHC}8eThYPxT@sX^azHóonQFCOG f.UG:zqAO-l| \ FR]b~%4`.qQ!qݺ$-3uh0}g(A=̝ 3 zgqfDxƯ\PORŸ U1[l#W E+|Â.k pJ~-cŷ)vìx߫k7?mŹ6¬se0{\(]̆m0;CعhcXT疘p*DBi+l/'ٿAh@c쑘8qwV>F (9$B1sҷQX0N#etMRQ0Or([){K]O)k&V!AQyJ{mCܾ書da>F*[ߙ5Kc`@@C RZ%ڏN>v^}֯kӲSޚxilIyS*j`͵8~z›%[OtEOA[. 嶩UVttRFR%tZh+C4a^H޷3:IU~W"026CΥj3T[y EvlO64%>QJIAYVa. W}ڶ٘fI\#x\Ҍ~L*M팱xv||@I~R_˿QHzRm*A&V_ۄ-]{5T9r)70.CYU ԇt !X﷕2~CQ"pek©i^g"^a]Ԑd.Cm/&ϣ6>%_[5m:d~mu1~09 &@dS8q}zѲI>ͤ=$U؄2^KllyJf#924臰ݵ !Jl)WA\r>nl)4@w3gWfX3RL.G#_'(Yw``U*V!u_(W8lB.)rę|4|6BZZ4!Md6Ezoa@Ty_+٤DL<^jgj>vlǟ_ôE_ueD;V5Cn6 (DutOIX\0 dɝZ%εe=_ kݽY؛ X>aI&}ks``;.`Y@̒2H?L[8_d~jUe,y-i?!sPZxK[OфO@Qek|pSjCEŦeSqNǙ2?D(U1p;w?-n.t'T Xvz]GV9ED:ݜo1oͻbHk?Q6 nP.t駍| 6CȳX5 }O5,}cHfh~蛯`rwġ ^?0`hX~`fKUI&;6?"[ڃi/Wj/4`M4hb$\LD_,]ݹGcV&Ot}s75?(Wam}QL4G)|MXxe}'D-WV g4; Μg0ы;=& nFgo]r8Ky{)~!-"e:+Ҋv6obe 8 zs o26Hfz2%ȝ?xͺճS\"LD4XKaA^b]@쑲8R| xݻ9cF" A-i = FUqH,xHp6[]L6hʗuu0ȇxcؓ L8uJN_Ɔ(\nO7c*݂ StsQ幏_8 O9%g9J~؍t k;Z/fC>q\Յ"E!֢ZX TH궮1]Yn*y;WN[ha 2{tZj!t59LF ZH(;^DB2vrqڶ7>]cIvʼɄ4`9.h)f*W`[/Hy2̦ 0+v#{=B{ԓp=Wgkxj곩؛,F{ )ʣEe6Ikс3kݳ9lAx}U ?8$fXoip*{ \#l빝k;Yp&&Y=Ѕ#tUc23Zx`G;=y3"L7E3##żeKml %#J'#QѴ_lˠP)ƤE!%>: 7 k<8?d!մn[)C7KvBTӁ-H9[J r5j"P4K[D]RT |vA\"_3Jͫڔry :'cn bEH&˘U\Kl<JS0 EX=h9/0_blUTr\_xq 0(G fc^"s=_fd>JoAwB|B"UwB ~9P!NX2`@%9}Go=c/^WT~@=WBJ@5xb(^B/ Vu1?3qj*령XbC򰨩Ww~|!M ~AwE(^ 29 Hs/udxuБ#u6u$O~ϟ֋k3 ]iDX#?вr_"`避ut7e૯+zUlאװݛ-C rP[C.y0y%Asf°omN4$ LvzsZ Tr<"-b6;.B,e%;BBG> q WU(_*^(r?گwm,7]9hZ#MFzw;!WyL4.+:փG4mĉфᓃa͠+4_y(oL-9F1NYs]x:l6Jbg9gR+b`{Gsľ@?%3uо$0̙xu$ɨmBg&ܬ#/,%lH'2~1bքVqQ2rW0YrTlw$\4Ip(#M"1CwT* 0#yƛUAk2^cd3[ZhRȷw{$c5,c*ӀOVInTV*RuVVE=?GɄsKjZYz\Ӫ'dc?4RE[&$oIf츹f_NpRs VVfL8"R@H!(@IG$TH}'?pɿzUʹ)yu̫{JQ P[ Fo@)&y2.ta=T䑚ԓ€RsʚO|B]Vjx5,KyXtsIٞ,`#3[SO˴w)"fMPfO]ڋ|$T3 T2&C~zw*bbnuG{h)4Ɉ̈́/[?_Pp_}_v=H_8!ՐnyG:_R%~XldLS\5GrSP3Z}91q⸋\Ka_f14H)~uw2lBN,4?&mߺ n΄ֳL6vryJz~ug`Ɔӵfݢ1ZnUAADγs}HjpqP}| .rNQ֤NWT.,+2퀣 vn£q1 (,["Nԣ3(iMjh́Hg|Âl.]brx`,+_OoK>$yzلyr5ZDhE]䢀ЁXCxג^?|^Cg#?d~d[g>+E\BN嚜$Ab25lc$>FBq֙jA]dAsi +eBYt:b}}_Iq!%*  $ ?MBL_%j,ԫ-dH#㒣L`SGƐaAC`4r+oª7Y)1ݶ1 M65#E(kDA,Hum:@U T+XE#$!BwM:Np[R%++]̣i{tsyV%qjy5K|S6j]"Y>?sqI9#>PX hkAüC}99Œp⋒yWa5|N4{n4q|NP%̛n/t ;D:AES+ƗV@Q-v Ekgz[s jTgyY=7`g]LsӦQ uv͙t, =|m6 "K%Y9?bd@VbQXcA4A, ݮ($+Ag-fz" j#x_\3#43>vnL&{hlZ6*,zp.ɜ2,2-`/hmk":u8a1K,nAɨ>:O̥éhHU-oGh10sږLG]:amr>qCJc)hTHx7/}帺u.+;-@UW|4ڕ{bAMCk9r4 :琪G9ݻ5/(ro;v;/R,MIc: fM'T"$|0㴶:iEgƻh@aF>@vUolku{qH`ZBRzFXjkmW+~,rRGͮr,Ř/>`1ya܂F k2q4Z_y7}W ]0$o+cîAy-H泌չsJ=(|@vUx'bM@.~0Ǚ O)y< >Ր194D; n/ݪިgl쇊҈phա4=7 qyZBqU])v-gw[Fr5 +@OAdtͧ~Dъ<͂~d_; ?pN_1ڥ1jY\TA1m-Pz\{,N iS WIdZ%.f h7Eoh` +]isyrb_]m!hO3Yx퇾ly ׊1&bƀ~ۿ*h82lNOi*Sd #%&f]TO{eV(WrkV2(PGfw%*Dwen-Ƈ^GhB.FQpvLBc.Wt7:a'ظ[ ≅/4|/I9n~9嘜];Ljηsױ_x}x);5C39fꀋ\Dlבc\Ĭݕ7*Zv"%9PŭX:CLfvV [ÍN\AƼpA-O=ɻqplnvdx*(kJNSkoߚ4j$[|JFEb\q5LexV`wI <>ϪX\/Oȑ-+ىWa;j1fst3 7܎w:? ii@/=օ+Qw/"Pz*dNXڂK=I='7:1H|Z<__"YUOa'%:<05^9@*!CȊ<،-3rqwAW 4o]D5rv>VB?%r#Q3jHʭQRQvZЇư<ȳIduj=oqyӴr=z|z|Ws< !OEA4*$>QQ2EY);OR3NƫO w-TNT4IYC 5 hQm;f `؈Wb-&s4j8(j=N_p#~mBS:g3c*Ol /Q90yT53Os,Ìt݆5'0<(fx#~C;E@Ǣ%II\Hykp6: ^ m0:Vӭ-=/^Voݻ!*n z͞`B}Ɲ#%㐥-a(u+cYQ{AG%|-iAWuMLdنOesuA"2@TLg"Y^յ>>L&wZ&%_!;AP`_>_͢x%ItoNu~=M 6tAq/:_u}91] TxcQ7+G6r5gcy^'g){|bOX^Q\&u!SpqdA`E8!3\eľsHqہ~UF[`gR~rٙ]#"stT' #Ԉ7%lNN zT;"ä󁀙,]Rl-Zb/73d,ҕ]GE vQP|'e6#A֖YwgYxymF4Jp4 n$e=mѷax[#ߊ0j/.yMu*vYn0#jܥ IYr yD9y6=˖3qֆsϓH~5Zus1Lweo!lL)SZ&">">`-7(M[2#Tk6n+P7,…B{N7Āχ&j]փW87}8 ~ ɭc7a\NotIrl(myvi-ngUʜWxЎ4('SyWó5E&m}o %S}slٳ慆Daz*|-男dIBWxۄ8 fGlIupx[XtM4 v-۷NKa\oNz'Nq)z6XEȩWA&"@(53*0~NAhR^wp>Z[%Ѿ\pItUh)^Ɂl6K#qcW: L`Vۚtʤ#S.؝@A5{ `IBv[!]}|ONNpw>wۊ"dA٬.;Yfmkgr=2F5xD -KAf?gR1`(v3Vcv/:s.t? vtj}u6XtS` ҥEx rhyad{qM=Nc1S柷F J-Kȅ, @gj˧$m2.lrMBEMt8? O%hU"T&Sf:_s-j-7ΔKᆸbled%QyY8U.ЧDm1.deA s2OUzxXA-i1u'9DiC\x%+Q `~\w}}PJTǜP2bAéb% mvyb5D6#^z A歖MC̽=2a1{aGt׋$qVLi$@{{kk + Hv{cʅv9D,GXAiչ(-)SqC'jDAH7E}7: d79!Z?a ,:+s%ipP=Q̽9, ܍LF,\ S2:N o ᯁ(l6_:He>$XY2E۹&h 1=7 Fr|cpiFEoeM)tL5au TJY";ޗ!Nn"2#KXd˟Mfez[z;))IG~4 auGs̚g $B.Qi.Ng@v~E4P9> ^Lrxa![*P赓B2ZSrGYvr(FUƬ6 v+ QmQHu!sj/zY۹pS q{cQ nw_HA/>xͅm3.9B.N̥ _x>(dXS؉ɡ4OvVmTHcJv :uf'FsB%@\bfq߅Gr]t1ށbIvFϒZx/vcz[m o6i^YnW閃``ǣ(-VJ9ng3&{n!9.Pw&ΗՈt]ӭʕhL+8y<#FW$fүTKS Jհ Df( /%Np2b />K|r` B3a)G MXS_q<娹WFi7m-s֊T-A.t:wBC}M.ϖ.2I#c-S(2B"չC&~./5 w?nD@ڪ^NbNxŀc_Il|=X&2hiR3: «튎AIG S[U"s==`n[/)V'i:T$3\ïS Y [L*1NlGnafLe]}aIsꇍ| '32F6"Du1k=a>V[!3U Vc%mx;" ~!k\$Ozn>ξZ|̿M$$f9a ̿3yǁe 9iӳN&Ν;I<$Y$y;܅76Hj`]E׬QuQ[L*:?WZߒhI/-!pƧM*?,#zs &Lvt8N;.=pBv\[qL0rUD@+ِh%fadjnfD'xNov=uFu׺R֪0\9`GDn+׳g;<ceMLu_fmNL˵6bg-.Ԥ y&F)ˌᦃXH:iI,qjDx%je㣱B8A[](-go=HTevzIH2)=@WWA{Fixz3{˷i|5 dB _?i*Qta&h qSRBPz >56zu)(3xNULh/_sd9e. UMI-[Yp6 #9 .\Fhe ҬJ&W+iȈ4ر"$@ >Qo[2^~l5NuTCKAl3Kn+NB+lL ũ}[ 6d{=/4Uhcl'j|`> Er/K^[tEN${a!ƋԨW'O1#]P QKQNIm Jn4Sul4%skua=“ѫL[~%& nv{gӹck4)0ZP$VW9La XJ^tᏛӔ(*$lG3Sŝi ^ * ^<Dxxcݜ(!S{T5+BSL;NB I0W|KŁʌo Z-nd(l^uU6D"@)0gRDn 86`'Ϟpڏ1BjeWh{ KM#AtJ0+ 8n@eBegMSŀSePmV+[%/1 aowdx}rYS ~ s j_p`OuifqHQqߧ^RA@cjx$?3֭Ơ&pᫌ2<,X\8 "G坐)3_&IꩺRwQcKKC;biȹgNC'8ڂa4bQ:+2 01.h#6)tOt) |".>xxul ,<$jm'.qB>3 8O$Dmby䜖E*fG:8bL4=nݳ يF]$,Un;8K3>Jj2Gٯvj,jD3&Yl[ivB-#x4DT*%F9R@xy˝<=m>+BxrgΌbcG8c``0^8IHc,6|nO Lz/z_.?_#CF0~(6ԲHfrW <ǟ7i;ujW!qYJ`- Ck@i%ruw9*ZiTn W2(* {rd53KZKyQb @tln-1Er@pK\WdaWqMpk69}f`ܐO9k X\+h&l'_xc!߀e*;rDSR7mv}y<4(BP@+\v1Mx%0Xn-嬎cKw9!)) iP&+y7La,:`EH% =SFpڿaQm1z; oƥLދ: $Y-LO6c}y4/1T/^z=W5SD/?]+M<Mj_3Mۄt 7@cWk1+S'O=`|j9 /ZdЕklW <"sx13ܓ{ZеxZy\"u.Sr~9}g Qh=X}:~G+3$s`׸l3T-Ɏil L'<2FP9d<W#y(m9q<Ϥ@w\8aMBa^!~Ya*9nVQv+4?v +ۊ GFDHdZ|7I.Tz֞ 03,U.739ýZT౶#FGTKT8E һi9 nϣ40FlpSILZd䭢4rr Kz, ܅u4q{i>V 5sw&Z׮+; =k/*X6Tǃ:U{txN)6ok8=Ω5g֙B&?#jqv? _r2sDy0騉@cfcQ[=6fiantދTqƒ@RLVɨ`rԙ͜*a)g ZZ%`>b)n0 `rZ5d9f>+PsqM :>'n j Qel -6L1-}WH)Yk%(2Ց=^"$Fy(D?6tDոyCmJ V9;W!(Ux?q&r'-t9c@MTnp u>*mX Ho'a<XyX ioshx$2Toٷ"KMLd~;7{Kx-(ɕƿW_oc{]Ac斀KhMӽyF^n%SHMnCMZFT7g٧yC`;@Hn21˝Ғ$i"nP9ec:҇!"J['d)*RAv/Xpε.$_ 2c.@Y3!l箒G`uԀK+>("ږJSk8^48| ;GVྕa/B)z4M?8D=AgC>0P~BAꞰ+x ᖁ~;n6iՌ.VI6VWRHXV{Z9)j$تPcWĖcBn*)cOY b|1q5ﱐ5"}W{7h{p[H"betwWn(ھۘ#8R-SKsG[VQV5w)|A~qc,$Fh}R](GsXFٙ(E&j_!/trrP]ػx瓈ѿA f uqjUXE;3F܎wq= Oy>{jHKri{r^l{4Neg6fWX!' Qr◠O)Ѡ@Q $~U%m3tLr_Z TBBc$ؿ#j1{|!`3L#ݲ@'p=kqd d"[M1`:QFPit}\Y\ ?OFM \-*]sEiMa{D)P|ؕ0eL  v$IلXh~P8ut|'0%2̥7134 '0Q+&עҔSƟ>EeaQ^HvdA.\ry-6" o@8yjPLkc'5jCI!pz;659=W9꺜W78PVDoQ84GaHԊ|%p<> UKٷ}(W(OG5m"Yh2"| 06+.y .*n|Bu)oL-"U]Ks=:c_YSEEͶS3KZJ; DsyXG2^ XFX3򼵱<*' 7x- x[ec"m>`Aԥe5< Ch{A;i,|}T!fc>. ̅EK\0+auFq}TFTi:/uJ,BgØZh#08G`0!Ktsh$"`# Ǘaϒ{n1(pO0KZcY'*;phn qyݓeKݺiR!o!g:wsU7ȄвifLpYP&^sRz- E.P>3 "Gz2]L*XDB^ar;IBN>E)xD@ ޢ/)?:[⅑:e$:dvEy"\2( %oG׭0k!*c+ jέJźll۸t}XV_# 6B k[5{86++vTka%vi_ Jm*HuiM-L/-w<޵斾WF$ ܏b>u.j1 ~:ѹ)L'T3hf]2SMiAG)ƘG)0k[+UXK!{ur6o\3?Y6eýwd{w1vRLF1PYl_ZxM>98W鍹!9qhBA|=-i ZMof@1~<5D48E4[+#ދ큟+a) 6-RWw5LCo9;u2,7stn`=9-g+*m`IS$~hxBm#t w,X2V=\9kqAkmR^9NiƵ`GkF%/֗Ǝ/{9ݸgzTlp$4.]QHv& _U=e+^⋝41hIć5dwfZbr1]>8 O(pa$7.㧐.+٠l_>ٳh:&$QragX_U=n c>8+˫+=@q<帧}nISPm}|V7B;Q s0fE crY흐Lt>'x(0 t%&B*pcnN QqMiRKb!]6A\VQ>QJ//Å>uˀ&u969h@}5( 6E|Bʴs_Hx%]\..=7Ȱ [7}~9>ĀR87; 1׮ Q 4p~6,}$n3 4:E(-W(ydwyyTDhs2 ]e[њ_:2cWж^NêCE!Q:Oei.?j_v[ W',lw4pz^z hX~^m#KF\/bxx >L%ȻM"#:`y9FK 1|D /q9b{tJŞf5X>&YJV0ݧH]͌ҭ?Vh0<8DW['Pi,ӑ3q 650~5V]ZTo4{VdfNv`#CXbkibޭxhj/E)fd| Ѓt &E/o!mx*jdXWPkwHo'8>kˁ0<4$7y?X2QE1AT .{-ej,*5? |5HK2俍qO.WBexLhj Azq"~Hz؍@D:Ct;ڣEs4Cہ@:F[qԦrcaaR899lm޹#sWfk ۝R&-s;+.5Ebbx`NVG܄[SA\:s?6Ef]~08BI `\‰% !U6K0ۅI>Xi*oS$e^Q$ 8Te6 [/BK̐m`~e}?A/FR ۭbUr֦Sfh ?<'Ej=X(wud*NK~ 8H? #,ͱRexLg7o&#ZtvN8m*@o!_R?'lK?pJѓWo97Q+i4C 3BU|}J^ǫh?6O υᴗ$FcN7SeuB&;iiR ̀WdN r8 !'ؑ!!7F7ulTOs=FDtDzC7bcB /r`V ,1*xxj$f5#4d*DmATtJ>Ex˹2Q>'i!t 0Dl~"Oڛr=™`B72 mG4N]}wSU%P"|ǽ)-js ܴxA@(H>G}<C" I)IFv;FKtr{g7J{T< n8o_ 4KpoVjmJ0S=‚1%C4ݚ*{B]p=Mj-^@xMz!!lv}:9 z ^zw>6\S=-3!;T)E;@G2Ru!1dfoRG뷿4n9"t◡bo[b`CUد :gswjK|\mG)0UPLnɮL-؜)Q~ÇR 5|Zm#)A>O d % CuYy$5h>g {kU*@bFD (D$ķ+db|Fgi wq2oT.RUo|DM^8&vv6D O_ ,.5 Ah[]"0F41󋽮d}TV0qb0dm𬫄sҺt a~FF2*/(Xl!:`e)F)ƐvrG9]R4dC/[ fI 4୏˫bYt`rnߤa4 (!,dzaÆa~b|g^=c:9-eD7fg:&yhq?F~l={monb49>tӮyGTo'gYՃz ;=^oXcwAzK<\k/X,z2M=ި XJŨ[І_nT}Uaݢ?Ϊ2Si0k'mVk`[WM^굵ek,i%QŬ}$%}g> JM_͖mrY" c=P62`vzO: )=$>t*RCxhDvZ(P g6u3nħ΁"#A$JDULlM2U);H-5Yh' UȆC0Z=8!fs U1zѤ1KßL7/;zOwsOv0oH^mܵ.EnAkh o8~U-"rAh)$hNVOsN \5ٝ+bbL#qw,Z]GdO I-i0W FҊHdk?׼trf6"yFFW;<tsG.É?nl**\6io LlXh*-j5޸A0U9p<$P.[]53zEMCwC)ρi(BJf=ճ!oL\`RN\ dݦ99P&)&tg{",jVHTKʵ[,pGM${ P ͝PfjF]ql'1a3. &M"09C#ى Rzf HmNAiD ?6趶g}VXK &u0)ycU}?FirWJ2oesA?d/ ?G !~ Z,mܳӳ{, vfP9yqI>!Œ0_T&nI(͎I8dE( DC_gFI݂GKb-N=u4~r/h뜘(P-of3KF,LYV%)m`,7cJciaIo{QAik yHv1gi59h%w?bn9ө*E("Sz jzE@-N^+BiNϫ 4u cKֆ? ;61DJ~ʕgWÆ6MN܀kx@N"Nq$WO*#m,Y64B#V0_Pfv-( IXa]@N:y!lԩ̘}>~{{2bjV${)KOUgjׇ聮lp-4Q^~GERvkJdzwGc ;['UMҿE}tcę | 5EtnVt±`?jU9ؐj0{x2vT֊0m%뱵VbQcg#^4Wx~يhE f* Ź8"a!ٯnT%CS xẊP}Tw ZNÁR()9DF(VNo%.'Tފ|k?߶23UӸ\BHPzsQYD?[MP+KYD;MIjA/S ?§(5;`Y%P3{$/f|O*$P3oU*ZRL! `=6m.ZJZ. Wp8N Okm;s̚w{ z9oo1$pEP)|lÏtCv %pek .ݔI4uL5I,7-! z(Udء"FfN |CÀM=9Պe/60\ JD0sv;j5`6-\hII!Dňb )&$RQ=f"1/>gvG cS6=sE ?Q&.#*tq3$*uphq bx+&b:/Ɠ"nN;Ah+aQޜӀ-u]e`] Ϭt/r? O^sxb; +ԕV8Ϟv.Hى^)MHnR6 6ϖ*:!VoL齄뗄BS`Q@$Q[)Rގg8L<:VHǢ;Q\اA)ۦM9 :;5`n?i[$N؏-zxWΪ+#dQ8mB ^]mlc"$ZH>J*Pm;wQ&`My?IK"t#_1;9s/ssǻI `rԗO8{KHWNMFϢ9{j䀓nYXjg'͟> )x;S|fAcapxhx}~Z%AAhKw%kg AX䤀gLT{2:_/9xf;" v o/iY>X7PH8Z W0*0 |Nc]KaB/MND"| G ^%G$E$w:k@IR-fؽ.mv8_R#>:|俄$$k ]sG;R-N=UTtqWiVdys\lO̰_µA[N-$::TK؞$CFQ)$/.%rf"#Ey0|EvښSTiQU͆RaKZƹ`!2;KI@Qe-v taO*X "(D<nAD*̽-I |L {Wp?a.f'΋,Br^`AW!Q'˽Ο,(=ǁK3yOy߼BJy8yrh Pk=pmf{@.zqI%n>K WRq}1s.-}lSrr49j^.g~G`CfdmtQ,{D& P-6>D Sl)7Bs^S;/㒇ζW e}s) s89k^g8}DB ˹>$: /5[l8BDxBLLe3]<^[ZbTʗ}[ԝŴm |^?j7-#e@5Xplyb\~*ŧ*9:gH4,ߑEkeՖe=#\'mm%R).#立eP4S>!@b";hap7ZdPth9JMA$ඐ%Qˈ,XC71]Tղo@Ayn}f~ʮ1-L/LT>(=Xt)qE;ʀB!y&Ox+.e[,Sk :ч\ђk%\g'E0j$t_q^LZ;V|y [cfEI^u7WїB6zt%X='&߰PrU{P;exU S*2\PVE)xe&^+<#gkj4)9N6!W4dZMK*Z/AJ}"uMȋX9a2NPaʗ 2VDQ븲 pmgŎQ o0Nc t+ir=&ADc<)PjD}%);z9H` H8lTe%i*`l? pѠx] [KyzO lJ1=eA2Fe#q,( mi0t cp1i .޹ (N\ ԔQQBG+I>"ľ?Ty8|\&uOBεWD0!CbJ *ľXؓKBAVuE ṣVLnRXJ<+b9tf֡W%5F|hajZ:Bϡ{'+Q%pƃTrcrǨ3CTX GYAOD Ϡ& U蝱RȌ†%0 }:!hcȞ-˘M# aoHfgRZNk> haNը@G 3>+/y^-=vLϮ QRo?H-*2Q*{G|QOc=hQ/jy2tlA[ⵙ[6b %? }xC۬RzTOKBJ ȯ2+ؘUw&^Mt. WG}SJ$54,Px0%KVjൾv: փψgxL O/P$c*;|.츧l]bXAIWx w+cl +nT֫ڂH*^6Feۖ^'Drʻ;V"'˴|3f %9-`Lލep--RԻ?RYK5aq#bt[j4Cmv[:'TK~"Tޥ)x _A[m)uBBO O5(=ltSIFnWi20xBj瀗ih +ѕS*`0q|{mͶnIɠU2"=9q] Cn- ]}O)"Ÿz^vA܇u =DI1 y2Mn^i8}5:_XI/\}%n qV iE?yx.u43CFGSzfbMXpz_WTx|EّEݬԨU踶E柿es4JIgϱc1cG[.B|\V54*)[U>"h= <΍F`} ɕwٟ}a9)]\G䊙r6 cM42S*i`aC;ڵig9ם5c s ;ךIP>"Q=G;=$`&6z ^EtƄCیC8͋*y20 eYA[ⷣqe8n^G gXm#^w.=`z쀛.yyj,N)TѾ.pJص➢tTM1l>ڝԹnڄc #H^o~-f moP]b)=n2h%Q|'sf/#nYhmY{9Yy'hR#+mʠ3ߔw> Xn|2q$k~&r@2Kt0p GulFJu"9,x3*q$co#d+Dk̨;*~6t@"ia͛tS9$,* h2.~mF:+ ) `\ApS?Inq+F'jX{b=S%wyeݒ-QX ZD5ȍ;"txb.w(A9_T ǐ#&&'YW.2*g7vЭqS^*ZLxSKjW9< }f3msۥ,xP Ь/ޛk Zg|Y® {~ VQ[V p/]y]\/u{iq^2"Y뷑f`ٳ䗆hDb8,sj4s๓~l6 Y 3'4ķN]"xRkNUJR/@TIzxLIXݒ%iDg* Ӈ,jAO7DKM+0W e{i<߯} nRUѲ Ok}iLM<2ڲm̭|~ST[ҕR}x?w]j;x[M5 TRi` CݓQ4p< 8cs% `Ss<}>h e]SIqM/|+MmUF'JykA=wA rQtz8 >: #x6Yt/NZbIXIq*F"#8[GС/~g=BrWdVhW8lW<&e=`ǰ(;0G,Wwc\Ǜw ]Gz>gD9otپ9D*S4y?K HVM0[.i.2Da,O0U^|){fXys|BR)(e-FX8m@RWBӹ̨=q⡕ݷug?CU :̉6, eqC^[*4,뤱L⑪֔m!4rs{1S _=;.ivDXbeBxm@}F$B?03PUWn܃Y Y8E'41qEҞCEΝxF'_ӽOApyyO2thjyvi2DTiN2R{Τ:A%r? X AG+mv~n iVv[ݓ2h8#l:fH`Ic|? &bNa1.Sqi$NFeUQc ĂC.&IѡL4%Ғq8  v6܈YX8Eڬ05ܠAkMOIgvBxS`W9TU rEq89b ^53+]{ Z +;"kz햣cg08j:<kQ ?,p;%Ļ49w"niAn>56h=z,S:K 6[mvzױ-(qW&\U$J~wsS樇r!RK.ha)99.~\4h,A1Snf#UE=WH=3I` _/VlSϬܡ GHka =YAr|[ToB؋L|-G[T[|+&vNVkcX41L2V¬+un:.ěXfSOngK`jFcC# Dۗ#@q:*ehuȿ/wZOihhzEU~x6sRol-{l>},X63!`P[cO;VO4LG9E៝³7wg@,Q/X¡Ci%صnK%>OlSV⃚V!82rvε:L`-_@ͤ62Jv[._ k^{Kdu7rLw$쳅xNl#>TPźI a[:'8JgSi_mSn +tŔzRGCqOfL-c)L{4>lj͹`;]Zzl$:F)"ibh 5Oܢ8#`䇠/OK  /`tTRwCy4vOkv|MvvqI(/_B:!C zғw?CK! `+ H7[_pAc^r+on?Q_>sjJx){}fWLNdP`6_&r/5a Ұwv~˫25DUe(P?L 4ݱ Ĥ}-ipl5?yVA*ޖJ",iP GG<wOw{c߯hDS~d gyVdiow|Fֵhx=ut(DG;2ua.W2B9Ep{YBY+geE2w0h3D Vה&>>=j&kd|Go˨>7pv9w/rfj}:z%Q<6j0b5W^eCkg n@yw_?`rMJX+aODzz> F0TPCu_rE}h*)nB.Ya="sJSSViPm쒔ɧ1"C =n m鰖tVrf!Wx=:gׄ VM7jhHDtpI4.g64~tyY=L2e)SNTPđL&>LxøRX4ש6XhuGHK2&:[yjE+A`="յ[CZ}z] ^[M3[b{6\[/tcqM@^ZK |̛jIq>E?̱v`?y8- I 6#Ԅ>)vyĆ)XQf- !2 =! @Eݜt~T%]*\ll,Q?'GPeQ @pĔvehklKO˜ˁ|`ƠQQ*n?973xwZuo1T᳜ N_ǫ{o(/| ޘk">ZE4yy)!1SnfCbSe >Ol-R.x R=xC/NsO,`H"6vQשTID,p(4/qqQP#`Hcˀ up/\Fl{ UP J`- Ґ4Y@Wv)kޱ;nmm<%ֿ A] h7dC~oP.vvɽt'ٓa #(._#a[)p|Sdoj;g~d:hXb`xWc]reBEiBΦYDEQEw;Gd=OHKzm{ N⡦i q)xdRm 3!cKRbD/+EC&JͨjٱӂΘ-go+bߩ+)/ǎ2iKʕ۫zȭsenvU!-Kd{zamYh) pq'kksay1ww@H)z% z4LHw6}0R0ww3/6鈩dKr ;B%C7@%<>Fa*{@%@>U><@͎+%]23]Uhz0u[sZ-# UuB$GpvH:?LZbӝoYjwkxPb?)qe NV,j jsgWvr(l-p|!SV9/ZQS[}`*Lem⫟dwqц8{3þ&[Efk9z5 j]JTq@N 8wM1F7j\ȇ-Q||It4gc^MCacz0_فfKZ'ml\<~^-ϑ8qe]^BrLѨWuNgJ7-o XU6tRa%!Ǣ,.|FozUYp{*`) K$ xbZ,oMg`{&֪ &0{1C">K2+;N%>L?il# MF3|Dq( x8"8㩀8a鉝:>f8n]|w)L/r#MIr Ĺ1$4t-LVܔ)N 8%w:p=c!Hyڰ\ }>D!)P4LpFa'QE%hS,uN8Dau;א #цg. hş Q:pE f|eh|,WAby\eWY`[PM~6#_Qj \|S c(_߫?dI;H6&.p?\GY~m(c+6]_(ߥ |B.M3XP"JjUhɪV/v?  P3T4qǬsφɀݛ&tBu3΂nByӝ3tFSVN"ԅјrx(+jU"U~Rdt}Q.^h_?-n fjkϽ0 AKwZ XaRacno֤RUf {FH.;G{Yƨ@ .p[U/Ӄ Ͽ%NjGnlNuһemc#5X{@Ȱ&UX` NQg! Y$à3M!@;4y$i7h־ƊȕC{bO:*.2wͯ瘩ڳMlPr֔9$h9B| @}]I5Yv)Q?}A<3;lA(v;i3r<h 1pڲ+iC's3HY94q]&,35;͸1/|`\=dk #]JӾʔ/w4U;Ct["HZ#R֮3gסZGӆHZbG 6Dܸ%7P\)c?ʺJ^#-F*&}^ A 8Pg%?)aXYS'- )~ҒA 7e0-&.qV~2\{`pE_: $A`(FG,p>n5ݡ#`@<78|))}&n9Qŵ^{n\K" -P1`ws0xq]L O;G)GCRx+["s:3(Z믇 .Wyd=7Ҫbx%Ո8JUĎGȎʞ| |P}h_LvƑts_RTRӭln)(ͦtz{%O;DG˨?zLdC1]YՐ񬒹#5:ᠤ\/8& .:()[z5>mފETe(m^ +0TԑK xI8bؗ˸AW/ḵ/ 挧tUH޹ٙ:̏7]*R΂EYQlIAYi?\ᲥР*@ءxu`tdžPz:eCn&(@^e=) -yodvtD liAcfӿg`U;Ϫj'!k0כ]{$-x^N͋G֞{5Z#b̔HJ̾Ӝ|x摽+R3WGi:ET{%'}.V B hN:Kj7 #:7O,jVZ\_Ϧ d!`T[Ҽ r$9ח0ꬒXiheXX\rjp%Dƥ.k(7Z뮓ޔ&rܬ#tȥٴ}L/$SɳKX(B@U?*>I'e }Q]1Lm"'*SkyvC@e} A&3/T+. nE7|SLxRǏHMȇ^H^1:>M}SyZs{b9o,H7I}y5*4ė跚y i-ncSRF:8hc>Fmo(}b.B;;%FAG1[rʌ1S2 -vtۻɜ|< 8ɰ#hH8yHд\ot t>=xC746/Y=f6&Ppû =9FzC1:3U8fVDROpދLLdVcVz+n>c yK<p*vp\ ?' M|+]}gS3[J- s&5[fsDZA~A5zKQt-L<@#fBBw{[re/܄qg{r<Ae#,K]?V+Nsprۦ=7R6|+%g1zC$./]{T[}Pk4 ٳ$%9˞-?}z¡[}}?N\eH~tNZxL!7HoB Z60R |.-m?~)H((Tah<5Pʟpq#Bgnqzzl`%(01\:CIJpL%տ-w?sIS $|1ߚ^V.>s+%Y- e9ӷN#EQtrK9P۔uD`0lxհ0.O^ˏ%o7.UV'E9bQ ]A XVHGHuC$g<QS-u,=fE9Ѡ.8] #Tӹ=(%mSHzY~.2 !L21g.`!x*pTuZ1aGGowL2r 7frm6n:;x|! ;i㔴oăCqm蜡e1ᴨHe#gqq J%qQHr .*9<@}c,QI$AanT|Nj !C5uyaǁh{p ;O@a캜˛_~B[}Ja?5c*1|QlCm,)R*ohY @$hAxI%o/]J,H,NJȵ}p Jts aR̎6T&TAEmQ1گSb*,1ςmK\ElaHHԻ55 7' Ƽ#bgJp3k !8lNc5ub1ʑY.0k:xF)?]$9u8 /ӳ',̘і f<pOYė|!6k5 d\!#v5eZ]IU*pF[n-ySlhc/mŰnv@d ŏͣ%3uwn`gϒaah#QI;"xVvx9WM~`%?|i_a0Y زap]9HQe!<-6+wwoP]F2Kۇldn3aoVGU('T]I*|L5` |.]:*ŘSx#׍ ?*?ofr3FcJ:(J'$<@D`]Z 5E:=+nj9EExJ8@G)]R˜\Vdž;g:9,:e%Sڎ҆Gpܽ=MggG2azEF6 |psܖ,2NSN(Mn,>O2s6\8R3S  ZS[` M6[G;acQj hnwiXj1 mg c6D q<</ 9>*F\O~sXmc8C5/\u):)&}Ę#OjAƿuEV-]oe?eH d⯚ŪD5 d%~?NVcUBCl%/ Q) ZM~F/%2/QJU]\(e/R#٠mPIgHfȖo0r>G KxU^QȎ)LU ȎIn?Ƨb~[ uJPY`0zqOSi3Tz"o S|Q[7 qa 5z6qۇt? jTJ](74c[ <^5\kp!/>) YqE}$.T_xU%MhݍaRc7)'ɿ:1hp@b *$ܕLpPʓ 0r;N& E:{$Q2nѺiETF+ Po}Fvh;F|#`d@%>K`V1U:kH2I`檤o7؋wçrwP)}cx ':I%OXceY X=<;g[:"m}|Kh r#l9x0Jh6[ )DyR7R*_{K"}M}J W:)\KQ6v 9kUXEuz̯&,q]E)U6$.{yԷmu3( 9K mšYc*!aVo @訍'}>XM[84ܼ~ a;ìC]9 h"cUĕ&)Յ{FKzOVrT.n-+%f:\777#}w:0tNZ'7 \ݛPC_Le,Gt?Fɧ Shcֱim>#Zp1_sÆuˏ|23/%D^vCL<_#2vb-!gS۱)7#Ϡ@pq+lR}"ŃFhx#:W /c=jC,f#p!l(/1XX[q@ZK0u-&o\~q7w x`2""BМp}QԀ{$yb9x ]WIx0:Gk!ߪd)\xgkf#": V;< ;(Hm Z0ػqM2# ۙ5g-VtŝAibzrc9ޙZkwIcS 9ϵe鷊R6eeĝќ0˛ Y*u$x15lti6.zrP%~-!\1Q|=_pLrVexYOl|i®K+b/^ݵ_#g]ϩ<; 4/qa'BN%?Qv>w{iU0J3ڕΐSdp\ 2qn9!n/U4D=35Eh79m{lѷadP>ސ4V?  C>mwK7#\ȂFŋUXSDW^L%䯕+u+` ϻs% +osV[H&ӌew.Gk (-˔A8#-4o0:mp5hAIs4Y?1V zXCՃjMǸ5`_e|P7~bhp r I+_dGn]u(FѣQ7EOg~,psعʀ})^Dr\{u ڨjx5dX&ϣPg7R Bo1l==fnEG臧4rߗލ:P?N2 X8.!&}*Em$^YMӍ"uUF9xBUBjݗlr=)) 3L i~.\v4ߋMmpww S!f+ Vdɯ'KWK(ʮu.@q+bCWI 9o" B֦6OmΥ|_bw{pgQOb;44ETHiuy;.zp*9J+!y)g^XS60n=PMm/Ɔ]VIٌpa,p6Q:Fk(vö;( 23?pK\H%'KDL8}{fdGZ9 +S^~!(B 4o}aIforQ܉nɠЍO3PLԜזW^v oIR&NAY;bd"Zo1K_) vd.z 6o;p8 m|UA\esƢVMJbjWo!h؈vrQq&377 AC[/wG~6QQ%ᤞ4Gw2{oD@9@\Ra)<L߉䤊}¤ȳߍ$zG~+anDEA)nL Y2A؍8(5 &jb*㎝(mVWtn`2g.ϊVG< :Ac@!Ls)^ޒZN 3 Cۭ ET{-鐨 e:LQ'YT 1;HxG,2[̷#C\RO8Y)"EC [u8ܬ`ԙ0*Y{B<~ȴM-ՒWi LJ^!^m~ cS;=$% 4V`VɵcXpyjg?P;Hj2+2"ˋu |LGOMem-{:h9=\ n[4Y8jɮki8 Զ=Zx'ˬQ Yd}[vD Tԍw[D+joř ]U3bwiZk U}VoKƠor9;za!k QD2DP ٣PO!Ae_9ٌ"Jn , c_1r@iaP"=)HSvĸ߾}cEUbNG%dĊkz|HǍhⵯ'a'Clh\ /7 -r}8^ο RȘLõKD\ںMt:bkKҊx5Dl+`/:y,Uy̥%z`go ~{s Q"lC$pfQ?X+W9!܊ܻxf;Vabʯg !F-h%54 c9|lRyb S68lAdRZ|V: zULh?]j,kO댰/61Zp H8a޷>siA¼u1%4eds7+J$'z6\!n:tE6[1\so/d^+KoU þO`r(B C^cTB&6^ZM⓼L@o|*)W I[(gՉ E*@g@^X?Zi6 ɟ G5$WڊSy[oYa".gqQ@ˁ#,vDN$,nc ee? Q~izҜ l"+ee0Oz=*DxUumU$Ys~v.6v 9sXH dxJiaO>L6s"IOx~=g2k!U|rCNK_^d0ZXX+S_4[K]Wf> x@sK_[vkX T,z_.u8} mR VX΄ۭ ~"\ԽLn~,b”ihSpQWXcjG4jZ`dO=?Bфz2B S5w^i~j .#7z]Ca/rw ĕP /T.u=]lU4f'e^Z h|&1h48)uIg̀42g+8Q%Cc,,|K<\Ηx萹c^Ea ƒR#S>6;LV.n;K!0qx.Tck@ 6tKdۥ{=$QVx,)'Ifåt_Y r>F \;|yذt}ɾM;z:$S΁rn(B>Me 76aOI %J)`E0@m鵃DKb#*^Ozg#n5Gϊ6D 3rG{[bW=}ގRhWx{7O5dnJu|!Zj3đdw4eLxM6|B<~"dnFTwD-xۮc`I 5Z,8D1|0`2 Iz,muy76* R:ԓ7r^SO@vPkLLNyq$"$' M8}c*h쇁f#\y%7,'dnbڧ>0X',k`Ӳ !rOeI*VJ)Cf$qQ.] pٴW8,Ր9+,K6V_M*]c5.~tB~TZg5ꓪ:rNh,`<6O݂+`f6{JbZ61 _K#rp%=*`:f99bU)E 7nMwNsމ˾ .ߞP8M,-54q^2("C 57$H_@H=BLJ\JDJ,jG4TUg6b jgBe/q(:_o4$=-ދZ}FѱlU^z;Hǐy^LF ?\B=]&M:Qsv2Oc#֫IAB':%d7nga;p&piI:JA"$FmSl`FT3\ /sMD2 p!]-,,.^`/4dBtLxm g::I4 W 3~%v8&ύؑjP;m@U!d`R-Ebn4ʌc +de^n3pu^ 32?-v eKt C(ߥcyVM ؚ W~xios&3IR5xƔx@ԝM8 /g0ţ{%9לRo`a ˱|N,TuWڠJ٠~w@"59`ZUjbө/85 ݗo@aLSKbz \9/T֒B|Y#?ScB!uʐ2;פ@qkA/ŗ1JͩfR=+dE6]z }J\T߇>5-cw}TXagdC pD`fWNL p/qHBXxDr67}vR'@.·Byyj7Vjcq؈0~[Z˫gE4:&쭣j/ւfo|)%N`W7xoK,xц.U/bECڴ):'bc9 x8ſXzkD߾OĪ5\uquৼp뿤WȵNqψ}t80$dUvolfRN\Ĩ/s`{lF hɡG#*%3$vܐHYģ?Sݸ>Å얇F|4JƏ+^oM R`dcoM ZE`쌾 SVcPA$2m65>#ۿv@]9&&&+b 9%cYC\z$|q-W|%a||n2>`. tOB+)/#T>e<5rbHY j,9UHŻEDcw^Crgp_ں38IJH+AUęFBExՔ{Qg$d*ypI.x \$^w\p`eqIsSI]JwP4쮝:>RdJ [Pub*?-ÞpP rיtai(k3]YMܓ.>3Wì…:#}?Ӵt Koʨ;jYGT1q9BՉt ~?K)'s(C݅NITgf':EqT9 j9E,X+9.6.jco;|?2ѝC_ *<=`XZ]$XFQXzRkT_nk)4Okj q,Dѵ o4s'\{n xh]ދK@t@,^v u 0J[&WQ+:2ORN &-|[81+{> 0+/N-UWcYbÂ>b=zfDm%d@|}گ N罥s?6dhw޵ oF{aI?ꇷf96HЬh ^U./EC^CbD@.Ѥl%dDo1*,^۲et67:XOtC᜴H&S-}:Ѻգ2ԓ(R}Am#qKhΧ60P"|U (D2.(x6!U\s:n+k`r돘.WXKIU? v]n(N´C*qPU, ?ε7I[wKp4LO]-wˎ,^hmN$䵀3vNt‰ݐ(PX{)E{ CFJ(RBNTCZIF^6:; b"?XtO7}ϧRhȱFZӺv%7XsB2䧘_\ I8ۙ۟[[}TzVRgQ/p 4hbm3JiXBp[qc 9Kt#W71'Tؙ'FiN #Ϩ*p%7@cl,7'AWb5!ǿꆅ=oo6VͱphJ=:㦖͜f$lq=U$M|k GXmVŽDhj9dL.hӻMe뻀6B$ܑל]> WD7̀Ct`]-J)<Ռ|Exz$k( ?MשߞKֳY엶2> 1D𧰖f*hx1!U3Dql[7ɿŽQ/e L2L1#,t>WGi7S.T9#ٸ7W/@Q1D(J~EsWGJ^Ox{s/ xw:7A@l!0~E$xIjG"B_l+urȋ: ,Zĸ%yq,`\h>ޒ~2Bh@(FmĶ/vI '}&T`/'{T3UHP*ױvsCO7XO \/b" w+IrP8l$ة1Da@Ј;h *X1 =?E?58>JF'`W:Y# WGbn)|L(NHΉC㊖g:F!'n0; /Yol#R~˚k7!:q,@v,˘E 3卖 -ըȤ|*{~" ?p5q /g͐biQ(X{W5%Sfd"-XHe/7̶-pԻmZR. d߼%3:ܕ,ޯfES[J76_rk6l!j+#1;NۑR2pϤuhpdwBt#t F]gVMUL t[_v$H>IЬ6qnql*=,DkKql(İ4IKN?X#cѠm$XrKYgqk/9Q!-kqR)T^m/f9'hUfW Zݺ)1 B#ЫTZq0..h>t+e+3K.kvr}%6|@0 x )< `qHUQ+ [ UQ҉=xDQqqy9! J )EabZ%譐e|yv%[˚@.XIpne:ZG& )"xCebBio=KHj 0 >=QBWhNPItg*~&]jSBWtbwauD)EC t-#*}9'Nq<5 6a{\pqԔ6vhP%o^M5)]6dO͊T1)ZSyWeSsY{0+Zg]Hsq qX#BC.f?b`WR,ç^e§$Y9@"QiJ*)?Bqķ$q#E@'0L7C=oV掺.5;sKG@GπcYM:_oFt9D<1P/%W|<_KMsqjnW =f Bn%KE|ƙ#CC:eR'wC,sROK/y>,zZl\C̶dO(5l*P=/$J(עxP;Gx36Sؾף^!b4+@|<3x6BIawV4Yr>Nb9? m6 <3!׬],AcD(fKvm4 wL'UY>лD6*/dgSf4" CQ"-uP0[',>9 ϝ\(ӹUh( +V ZO;i#'PvX #|q@_MݩtuQ0Pi1{(z:nBe^L95~}`@< ҟV=Ǡ ϛ6 gCO{ʒ~ @9) %yz#ԑmݰ}n-I[J9?V |R[3%,8<)=aLvX s&l(rrPbPkظSXqghcx}Q1JܒވSՍ/x)%oѵT+ap}U7=Ճyqg X^fi&Vq!B[MGvgfݕ yn+%4zt&28w5JzK)i< g}H?qYnRs8̗pBW: ʞKF"NϿjB6J^^!8,2]2ժy(!YdÔv {ʦUۜ)Y̘`UF)Fa*,W^[ToQ6f,8Ux)leȰC0tn~[]Ya%b~R~u9 gyݩ[j -}[dy,xbdH!|D1:@) Ԉ_ziU {NRn >0M:5P7%ãvxf+:3!.EKJ+(rY To472F) -%0daÔq&+S0nxVMZ;W,H@W =YV3F_LU5ɶPFLO~;-T6Ba/9=p>Ly]lԁ1X NSJ(jSD zՏ3k*+dw73ߐCdB'*@j!l? |ᡉ(]H mIՀ[.?1uyVe}׎'`,chr'AYC3I컓5ޛ 8sx߼7EMLlN',C%ej䝹B[hzч9ٗ-&0; CW' n"߫"~ <icT4dN,9 Ym>a+er EfCe1#xˉоÚ{#@zy)G%(>cWoTkqQT}Z¤Rk 5wZHyBݳȜ) @"=&1taͼ.!gQ8q\6DqLBq(,>d#Y8~fejr)0! 4|ݹZ60C|(O-W@5a80rfZjYЕP!pO+,a~-a~![*U> Gi_~^Y,Awx*:K9)=@O=ҎɋY&)A^?{ [|lPzTP]@Z6b9/VRipZxar$e2-RWⲙF Cr>G@oaFB t[uK3k^hAWGTlsuMca\iu tBuYcG[9}#c5,PKu>!Xܴ`gt(X#/8TvpS3ԏ(M˸J8Ue%OCesGZ'n'ywԽG0)rEsKbKxmn/!]-|TaY~5to:*>X~%95],ɏp2܇\lB?pAv+aorW8ȓv_vtZ~*+Ipk*/xg~lӋȢ_OI&X4Yg mëR;G.\O;Fٖs=XNdS]'*ky_G 4N,NM"[2h\_DQavC! M #!_rkPyli(_0xsۍpM( 4R_w2eT"3JuwOrB_hcQkP!T`ԝ/qu+E^;u_=k՞2לI}4^a#\tעPdf4 abqD1ߞ涚wԮsUsB;PUug]/Oݕ9Zq3|`.k\\OpV|]ٙZQ~̩}F4,D:nۆFQ<ШS5Aq0.Y}+2YCq.R*9 e ҼΤ .wUoy&48?9NHYerNnl ÍDIiu[>7@]Wu;z'WY{e31=$ې}-rZ 1c Чʭڕ'g蕂R&?o=.0?bn) 8'. w똄hWǗj^x=igFK4=kFoH嘆 YYv7,nju{$=F0(+s  2z;ӸrS!l 1f3_(xܘ7DVA3 s݁.kT#d)'OFյApH<}A+e?>Oܦ_.u⪴_BS%ܠHr2h@`5 E@ri8 wOZ + V]. 6rB'F>}e~!%uKQëW!!!c_+k-c8haذ*neb~^h]wy -ƅ-)UxӉdUT~GT] \ڎ')$ċCܪ0< W^u/UϽL|>j.Arz] 5t|jL`hwp`$ȣFnf{0ڄq|I.:q:hY_z>.l~ DqUuB5XM U5q"v|dօ}[c{خ, m%xCGYK;_q|`uAv;wc &ʺ4ū1:4׊fM4NW25e/:>(E#j"qZ :ܫ)0"*ڹUZ2{܉ m?5-=AٚQCc):c峅%6p(l'ѽUn}O*'f >kj@ k*thaP\@O1NbWI#M'-+?᥶y))v L[1BbEV%ǿ7N2WSk$l:MͲX'IB |x\WٲBw+b'aP:XQDdc'l;zz@]D>"~A@:ú<^ͤbIZCގ{a"ҒOHBZ= TL->1v>kߍfx[!gIX@ekGLTTsl u5$_aeJgHeSrEWUJ~쯊kׅ45yx1"u\B24+Kg~{1 =l8%o^f6r1w;Lmժ5)S^Yk P!$i#c-j+՜kkQ&@*#'_2K12|5r%柊,c˓ޤc* U'Ɣfͤ%"/j\& H"v2˂cYxGpO "*1Wi:4A-ڱ~g ]Q%<{b%n 4 cn]U @?R$wp&T(gv c\6qۡVO}cBzt= 7VB ;DLLCг\:_`s}ی&wm>' bBtD╯nkHd)DXHo: ܋~(_h+F:n:^pmP#J0iŌ)oXiC晪bMx_xX׵!l.7' ]AS8 Sufl;(t]VZ6"ê9N!]k~pe4wɛw8_^A ~BA~:6۾Ƨ9춽 ʬS$KTK_4-5m:/. q}W 7#zz-wS5~+s3uiju ly A"h=)"S= ;dUኔq=AQܥD@IY̓W= $a,;GwofD~$N{۾(9=q[Έ\sa4 !M*NH!rc(̉$@(}ƂQf"4{u5,p92Cg!deuJvO~ b8̛\1 I:,$T 0JP/ "_ A';FSMtJǢ%3K f<bJ"mzᇲM6&Gt+ʑ&:TrTr Dz)׉QW3mYZQ:! VB9*˼ADkplͩ,˝lH"7oӾ%R4>|/)p>+sjUyU4v0+OR* W;Hq ' pasXYnݾL>v۳RjTAzzµ[BgMD )*TtgPmmE^;$\a#i~7&ґ26d)$Bcˀ|43Rʘj5yYKYpmVbbCɾq y۫K+e9Df5LM]<$0ִo!J,RYXhIˏ ~dSO}g؀%e+5kV#q~^rqD(ʹ>bcg)E@ʺJ+@XБlmj3-7 r BN&ˀF*|۝gpt kȣuT7r.-j"<Z{#-C Tomoґ@H<[BY3kG; $~AUJ F,  , 8Y͢+YZ!,1<+Rbվv2,m3,ER Pbj4'I]SYncB؆ǎ4{~u11ڟrQ-~CXNUGM[QSܗՄ *m;{茡t6tZ7 xV[qoJa$NT)ځ! )׵RwB#rӅrQt[g4 ݿmdMzD&`B paPJۢi"å.CGRVS hR%3W9Gu 69S=%J_1eֻס0VzOiοHhW70 p:m*2!W0{Xyr"rx\gx'i 0jn1ao=}{UL H'?S Da68{Ei>)O!ڲىJ> cB5 i{_ij%uvhR:%e z;-b~c+V[~e KҺxPzԤ?[(qoI{'(Ņ,yd.Oaי4%ed7*9'<_퟼X Fdxs4'2s~ʼnSU,u!c.&“+u &yʩRe#nhi\yNAj{uT;- O8uˉHІ5MU吟_V,Sd~7ǃ3^[ubz6ɘ:sMf :6Ӗe!hIr:Ӛ S6i-y wu(%[7*$˓(Fkw3ѲM4GI'`ݤIk RL]pWC !]uڛD)C*Htgsy^MChբ.UEP, >+V, 2%$]$ӕ 镘5a@^60?c9 "+ )l}t7Ba̙¢Uv6ćEQ{{c 6#Evÿ#7}Ŝ_j.kak.:x8r)1"kZo }zR~DP r.iQY]o1"'$, .]-d̡D߯OPWH^W4*MYmP5&;E_eEPea<(Z9 :ai1m_MZQE؈@CYUYcz{ܴq>UA<e՘3=A54ZUQ,|kZ7Ky0ܾ8 G3Xԕpt<Ȥryx+mo2s>cX̼FurPp'GEb3š JΘp yjQC&Dw:D^p/q<( ZxBh`XҪax q<dgDEL.jlngdD9Z y@ʯЍOKN8? `:ޔO V% ^lk((q}7݋RpRbGssЮQI~@8J2jUӭN!vF}RDKHڪ6'H;lՒ^z gdkד>-2 rSιб[z/9&zRvN]Yv1IٶI"vY&ꜤGmⓙPb\#ŨB a͎\)IJ+2١V;[fў,IuklD̠-CiHg|6nZ +=Jy>պq2UՉPIJRt$Gԃ~W+-6V ׭Ic/QrdVt keĜ3g7oH4״/ 2QI^MahDYAV$[y/;,^(r氦3;_58\{ OycnNQ5P%TÇ8}3xiDې)c~v&ojB"K;af5;b:/}TEl"+GT ڏj 9aʹC=f2E"kWa-2q k!_$CC5[6!S"w'xΐӵz[[ʙ u@اpo_d֪b՜y.+DdjIdބx9FMg_LC+.xԱD~25igvvwّFS9b.tC'St#vw-(ݻ^}ם, zciHVg!N d}G+'N%Zxi?oyRii3B(LS[ Z*;ƥ)%채OdԱ9d_v-ɈV=BvL 9zVhJ\I% Nubݚ@(SI*n= Fӧ 6MZW) { 6[0lXVnx+-=gï$CFyҶVw0Pbt}mSj3+,V0EW!cHKѳxt6ZroQZ#@+,_'b-8 D_O!RxU8ƹ=RqU?e9(0>qF,D]-y;Xn*q ;]6Ä`eQݩ7ǡȽvZ]!| ?ɬ^ +{$O[m9¶rjslY{dv`DRI(#-7jѺqvn^I.8.zjIxb_7:3&Uz0mWXrN>,ys)$tUVcbfRX$ϚECoFu.ٖ F\_87xs"Z>""eNk :QA@PxYM9)?łNpi\~hSt_u@jw7\!Ig~S*2tyj ru|dU۝7QrQt W*aD9j)tMD]#1vUᰂ)SqH_o=pڵ72Kk$K* ]6>#"e6AEوVb[򰦈ہ֮LQAd$z,E^X0{܁Wu U&."Rٮnm`)1 psࢦr}Y]=ʦ H L5rM#3‘Ah[ `cnU`DN^[z4.6MK{'D@p>qրK8{A.`a^}9 @Cr`ߠJbusau4wXFr=SqVo[rK7K<@u6zYiSZ|wmAA`T6+ uX0[e֏w"n&Hoq(n<" 3/*JAMKhETo^,P BP@ Y=jvYoK).׳"JlrV0*lxQ\\M03ey (bInuvnu.]Y,w(vzFµʄH_=+t|djbp/:[SgGc#6؝/UV_s0љ8V%_jˊ/Ov ,@E]kAp&I>N["V3ܰVSg{\ݴMwN{WjM }jqŘ֊3xv2!:6QqoK9j;_V-R9Ǿ",Q2:˸=|o~x}}JM"9 7!]/Azxs:!/E@2[u0 ,\/zu^ t,;,ʙN(Im F厑S^-PlVaLՄ]MgkUHiNg꩹PhSKFvZC RM+@."2Zq&!WY@1&zlrFhRIx>HW<[;k̃˿ݷ䭐'Pm|& 9_PkoHI@ȇj7rWb24(dm%b3Q@ I@/騝5EUƫ_kf0Rȿĩ&s`[1qHg6uDVE|ickAn.:-[D|+Z@N;$q20lr x}KqVjWZ%#yO #^,PZіٲzlG|q+(5 OOs^LtʧwÁ{lARQ3ց}c` 9agtKKqv"ꁪ)=w=U`6rF@2`ָ7mq!NX2vk^mħ7V t*F~y4Hµ^恛}19eݬA̲̓!?=kICeCjj5(%=YxsxGjLfV/ua/H)sv:vX$PKD`Yyt[ӏ6W$'BL]P!@klU)JVedwbpJqFKo,6m.4Tg7E3칥,]O!LAP3*Jy*=D >mYȖIEߢ-C&%o.* 2p zeNz$ So0ޫ+)+a ߙDHhL{Ƹ+/hjgb%_]3=XEAr\ WMBo)3M|C2vc" Nsl<ߕҫj,[e6sMقa*#$|~g ,ϩ6=K;|Ooi|ǻ>' HȚʳMO8tG d <0Mǃ!&Bvnb",) mG5^^khQ jP Hh{0Q}L W`AקV)SGg,yz҂|Y pg/N$g+mQFG=etvIP,fUfE0ڡX`yE5+kT^e`Az3O#8ny%;~sm<(&73((6Ji4f>~?ŽqJP{Lzhztb>l&C߹p.:3ܜ -c]+ X ?bTXa[nOiyCx7$y@XmZR]p4YcCFڝkqj/ׯ=<3m~Kc1.'}:l> Oi@s/OgO4ܳE,JE@"(%$oyfʩ%X;U ~rgۅQHDe:dg< wïd'uҼf4F}aj5gmIKC VWy^CrTUX<\@ IUڝuֲgSijqMg)dd9e`I4ăIoC<ףŧS*>@GA_bRZȍP#5̡mtRo,Kda659CJgL.|n/h<:32' q ԝ/^d+{[SG ?(_dJM+)f~ i[ᑛgiiҍ O:R*NB)䧨ʾcg=RY#dRwתdC_f6g5{sl욘0Q )_/AGK ZfDnVb+J) @~f4a:wa:kٕ)ݮZ>h1]"%o*<V oԲW\xK 5/B1 s u`#?x;bJ[([m| e9&e()߲ ]ԞxrL=7 1\8ϯGH'aR8Fk/S+BG=]spH ABJMԖ"C!A.RȢА"n) 㗣=i" SmrJBWF&&#?%t)[#A ɤNh?JT x3  ~eW1ةq[iƿy-)ɽS!du74pQ2MЃ/fNlfBC앓ZP,pږ0vew̠oeŃ)5foZ5[ 0>KrT_L*(28G^ iؐfZ3yBƯ A^SpҸQ`(i*r3?`,',:c#" @o}%f}>DGBysÝ4\.f&ƪC7ay'jNofLJ_`Rs8PK @";qQ[aH˜#I*$:h꾺 yxV̜;ŧkkEQ^e_)DP`^=yV>)r142ixN$$BYwadFYy yX/ݭDwPN8d Law QRgff'cYټ-m 8+`}cL6 σxAV?a wHr֗r߻XYH!.|ga eX6}ydR{ZCKhs{^3 k?̲laeBg#!#O6R-p/Vz^f,΀7Hf6`X>h!.=8#ۤ ZY{;MuB gpL*Ux_E&) "}K5.fn 0tٜ\dcPc&hJ ׄTȫEbzwMǮm$; i,u_n4-~6HP0%]O0y%b*>i+{]N>dNd2v K*7c,{Val&_ZY7 MNhjjP~NxQԌ&x8i3.l.xz|~zg@.f OERkqE:.Xz5MJQL|“o2*=PA'tVeBE]=o #ɰr{ѮQNB5p'? sY$6NU3&Favg^abe-$ݡPgT oaTz/V F.3Ei{y/ӝ k(T]2;wsICC76˩$O.k6Фÿ23`M"Fb|%<抄K>ΰ.CUYS'NܾIj,T-9nTP񟯩i*k:IE :C5xCt&̦տ/Bgx%z|+& {`IÞfWS|SYd% @tVi#Ƥr00Sv(uJղkVƄ$6ǬF_0 rq!L4*l@!d6 ;\Eu*rayൾj9esn[@1cƠZed;ICW+wHQI#kT4bB&&끞FYfN[lkVLob/.=$}t8eqta%vKWQp&о%oq\>9l_Ycʝ<F gSe}sDIl/9)&B /ܳDVi3ڣH[&Qj '$lpZw;x g&C2ƈB/C"/W-ONb74# DvJ2zlZIΰ HW̆7$:0㾽tD{D_V1nmv9eG!'{(3 󀚁Lh!-cM9Q}ߖt9mg IqS~Vpod5 3V^$C""8HxpyH;]FUce=w7YG/Ts yrX~ޤu Q W;z.__iY)7%I$\.L/xl6S'~4&X̝6k%;5p')ỷrª=Yzfzf$} oMU`y 2.6N5?ȭ9dY;>޷y+hKbBBbRV]$n=yu/%\Cm`ú-MN[_ w+,F꾓&sfiNֳZ (NIf. 7ȊH1o)\=`L` :eVHGOZƃmSWdwEڤ(~Afm%t3+Kvth|#כyPuG!.;AzB1\Jl :zbH%9@XcSP1Qcɶ|[TX< 9^QI1`CEFڿ( @֬gWu:4`KNz&P.id. |.C9x?cjIB[̬y!VbKT| -7_SΛ]mwLU=yC$/]CAd+<ˏ V;Q_?Yx?"ꌃ, `/7 r*9`r{q""+k)Idj>c @K{Ne,hky_{J -wZV2vXZ64+t59u~RNv.hwH#*IS9R_فr6H Q<тya].o6Feg q= Mp8L22R(\o(vt˲smdwU%Mڊ( !}폔L/]ZTlB CLN#zg ^evBiC˥Q߹o5NX>@dicݙJK fl{@8 VמC>T5^%lIR;0ckt Ց zTtU]~-yZ@nPהKs0PL:T UU-i:(X. P@+nuD qc adZ4?چHl |f?S[i ԟHa$YEՑ7jo@Q$au$/(N4%ֲv Nvv`Q'F-* a-E\)ve֭ ]*ziR1]4_:=aH8ՠfx`JW&3,W Jؘ]s<lb2!䤫r"ʐnid柹fEXȾ{=bWb\0 js}puvn #4+)ڌdk%sJ׋m%b}wSQǭ`A P쳆wN٭!L[wKPלW^r}#3,6 7ȽZK}Yg uGls߼n|%|rxPpRw]ciOw͛&;F '?0cl ^ĬYqmpl!Z ש7`5ĥ 9=fIiB_rV=<,KQ5;zb1W>Qz_'jիt#26qd {wM}d{EHPuQXӪf' F=.{'b'ͳ[]_4 bC}GÁ>ɨ +~$PЃ,RaDq{M^m&WHHP/&הKPM*{(|kQ>Yd|z Kw߱i!Җ"!`AŖ컺y/~)4biImrnXprhH(u0ReBcCt dє`0Lv5 7nsiqsF<Ü:Yka Axp?@[\3a O- Cy@r5/ܲCR.Re-Emq4F#ax' k nF4 /gR,EZw9<;w/ѥ] ^R_vyԯ1W/5i{4/II#Ynybs ׵LdFgtӅTsW{)v rh5W@22fx.y:KT~=<9h6|w!>̍T\YfM%"^b齬ALaoڎ`|AF.WPA6CIXSɀTt,ͱeR7i=DyꮏC0yVWzч|.IisO ugyyiEHvO\|q]7v8vx{>LGjpKd+6@;IV´ XL<30oQ#bgPH I涕)Mm {U%4)sCN!Xka6^٥=zX7 ˏ`M(;>&$f{1~S9|@W?&qPjgo9eRPQpK-5:eL'0n ,l~`%r-gn?CEY+ |k5Yfn}^:r ,t$:Pю/FϺiu6,=ܖsrLKlć<'(s]N(g $T).?[>F./ y'[qLRhC zgm♫26A(R6^,سdyƼMJ:,B->vAR ţ`t#;6*wB֘O8׹;“*f'M SY2|y-P@5#X **w6ƒC 8wVrapi0ZC+Ȇ_րmUu#4\Zy H!Ϯ^pCN{F+ZZ\VyߚT2Fwh= 䋃Daڕ'Iɦ èq0(=_N>%;4Uw9!}4a':=+wQBqsXtU}MAPW` ]ik9 ŵ-ҭpXH#qUjh+%+E[j]t 'X*kt-! '4z _9N496,k]E0Q<SR@1w W#@{PmWH'.,CS,`5]oѹoazÇSu֫@0WfZ,1oTHsewH1c'ˋwcEAoGp}cJʥϧϴi0t[ŕFxj3m.1ٞヒoT ]* Y@ :~ZOv5bJt:v։_&$$`\лBYYlEud0:?tS%{ċ32yx~YOdmWF]U>QƱO8_RHP G4I.# 1L}Gm? *X{ݓ2&f^|vQLWeGKjH9Y|U.p~n]DӭqU:0gʘEm}gc {<9b1atBqI38N2.<.V˶ ԗD;x̷xWm+3ʿgRX+"6;V _o T(XU@sVѥ1O/%!,13Y%e-n W)4qHDm-"%o"v*,SN〄x̮zݍ0@kZ^Njt2} 6Lw7aAP(JKJJp=t^4mÖ9 =@rLFqTkF=?K9 \yԐJ5nUP;ɢϲ9^F.(-SI5tU=sѾ;}"bF"gF4/9krʖ ȿI*o~7,$a2{\A$IBNgp  m'moivyfF;S}0veܟ;8m"Y1BvE>m&բA"و`mE1̺Er}$(-OfHJ+/@Ao"aSg Q>ywTe`°|2t|ؠ'X8)n5uauRlGܖՒ'5nNuea󸟈G~p ,4j)k+je2C?2۾>'NqZ ]z儇̎HI=30O"ѮGN.2BkZ ׏ }/5-0# hܛ),Ҷ3_C߮r312쌇k;$ܰVQ\l)oN@:~٤?h;Сe9 IMk˪^X^d&@z(|;622?['yTbXnD:UuJgפַoQ]R{Ԇ D` 8ѯ\˾؂ćn*W*q=]Yqpo\^_#)߽FPDMĄ[׺Ez"?5\#':@~O뫉A#9)I[m݄㙈곣SȠw(cBrōfLN,EAwdx%r.f8C+ki u9V <)_vC aC-mT>z蠟l$+ .[SӠ`*;Ԫ*Yh<0B1Yh9Wvy_PL$K R xD @dJz O5KNچ>sn$.n|7u)=39^xv '7M$_%_ 1k4w)qY{DomժQ->#t96o=ȳf%=FN9h[uPQVwqx3|M[Nu(E(?=Kb .syt_d02Sx'nG3de :Y7%/qUC߲2|8[{ICF+y/?s%؏@p6ms>gi.:Gtv-kM(1V @N|8G8ݎu3bVN޹t>U2~p.8tXk_&)\Q~9݌ 20X0Ɏ0Z_|M-2*eXW[+{;zO/R>R^+j୺Fxf`$hXo |'0`*G aMZ=J}Ȟt7dE *m-RDw}O 5{j1^W4C&fDRl^vI(c&U|@-xyZ6Wj@ú3zmb0AYԨ<YWӥ+&Ni(5F11\OZGRFOmQ9@eEIXG^T7Etش+֜rvr5>B>K~Kw3g=Ua`6DMߵ!4EDM\Q 2l^:e+fi ;1nHK)ʹXeME@$zěI3, |7ڥ٠!zNC3EYU@1e.%C i5=v^5BT22f1%UPaӽ4^Pqǽ8Sxk TF5nhC'j]r,_ SbVw$jCf|gMt6 N K"錡)imвd3ׄdEy,/L.~UyO'Kkn:;@9`|Xp1-G^ޕ<WHS뉋 n/!(=8l =e骰^x`d\YwfCq=8pq+uDq";Wޤ>p 5)壯.)pFbwYLp@O<7mջjJW ~6J Ϳӳ@N5ɥ%.*sc/~NS+=Tl\$hz~q|Ǵj!R;t5wVL 3|n*zuҼX#kg^&ExMl?U&pf>3bs*Q(zuLjXSn?՛gʐN;rCB) :BBx6ᓹkE `pҸ5-ef̔O4it×ER] RŰtqa!nd%HqݕL鐕]"},%.us\l#]fA"> )Yú9XLAJ( *Z<Ԣ/)Oc_(&j:9clnvy{"C 5j?<ڞ56cv~T0P?UgФ2 .8BC:גs"e 2W@5M6ԏ lI& R\eD`(y3b8Op7PEqU+z]wҵ@|N0VV+)(Cc#$<Ngk Cm/!݊M^\Dï'RpѲ0ahLT "MD$~$WPo(֞خoІ5V* ,:@# 3EM $<]ފG?[s yC_KnN)1C%ߟ+, bB75Fg~u:Bk q1+`_r/_8K0Ъʂ`Z$-\.{B&\"afp2E0~@IZݯ&_)tT1qNs\(I[݈IpW؛(c/""ڠO5uM-X2v)X Tg_lƐH>fþ] '5B 'PHi6$?Fr3  4׻vZtӉP۞^{T[TzBvS@ֈcr~#!++ǣRT>azcObeQZ^dLxF+/k[`D nS{uC:nl6I6>8HhㅆM/Jo9G\6*SP:@FU|%"T 9Jy8NtK?Y6  ,#NxN%YTQFgr].GpLn){Zɟa{U gb'{ 4mȡG ęx͝Ɯ|VM3h vX2/G3{Y.FmA$gvst+]Ck&wnHܮ4&5^.5ƛUDo-UbI".}N>GSH {IHg}y8?2DZ!C"+G3t' WHH +uTc6{"B5yC է])!_}v1RgbQ(Z{U6*Z\>+ ug S-tjnk+|WO.)=":34˧&G󰆫'?&g=R(K:j\s Օ af~:SZka-)zQY4Zmg}cH/;t="6VWR)/peߋ;= D{DRRnLٞ}⡪,-#|Z6Sᓌʧ/=<<|Z[$`H׶ 7 $)$y0+MleKf,"`AqӬ lg :#Ez-*R*Zէೋ|PyX;NZK܂쯦3'΢6I`)#&DP8%?ZM?%v |~Gw Q=ԛce䀽ORw\)MaRk2Ҙ k[Hv!5jۢ=mkJ٥p *—tQ7q lYMMBQxTp~&w/(Ǘ)jw[ uPG $ffr-7gd]%o98vfS9:SY=4X bqZV N技yό\qx 7; 1<(|Gwt2r_rw!| ev@ t].G#Pf'DByƱ :P9[vZ"-o,2\O:mL~T7m;XD7%k7MPkTuX}zL8Y b-x=uvn\*|OX){K Y_BhcYgm, Doz(4ܸEAxncNt6puДh5u;)#zEz"ۺ{ӻz@[$HPs" ]ͅw2A2&V|1f% ܞէݦq*^#`mY qñ936Ot+PSk.T:kd\tծ? S0/lz`8-rKN ZhÁ~8\rrQ@(?j䜃k<ok<4zv>1);.l]?v\sͥ0:JfQ K"q1Z: 6j?#S!RTA;K6~%p\3<Ah~b$ goW:A;ޗ"*Ja? xufל1f xFqXfTXZa6bUU5햶vG{{=dT,Yce{a%^r-koUB=\TRZƃI폓ΥꬤVg=׌j/ܚB궸9}'{Gm /\(7 s} z9iOY\"OZ6ΚG5UH60s>\zH޿2^@Y" ~`-һSp]ͪOBkY4 ˍޓ"JT9{rVz.L#ڌ|n7#rs_W+*  acqNDYfx_|R}JU"Њr-jWY|A mx8bdף B;sc*wi_S]1l~|AUwK*mT `=`c]]D&}QjDZЭqo[>^ 9=JHowT"=@4N]lh0iFlJ`\^\\sځ=/ukfΐ[ISayn/B1򒻹Y~tg )΢(j6s?'< !}l .gnLxqF4Wі P$S?{[4 x oS wh+ $p+Un1^:bNﳹD>2/Se[NK;_#|\ ׀1jeJɊ{aFxvKmlh92?N#oI ';&Xg9)mYUД(6U|T)L_a 4u6(oB(\w6WM%b731FMJq҉T]kN[UićxL{6PV>)<4}~ [3N=ln7-B:Lգ4VQ+5SV\'mV\̖ 5xMa/z󠵩tILH+}h(3wvwЁH0lϊr:+ܓnh-&R38̈`7`)HC*X4d?σ x^G;IkB;#|5vNiFaPg[B`@ ҥ/)A~(:+wb'|r+c\%突#]bD}@K>"\oFv^_|Pb7Ub`'v*G])!"q[>,82ڻ)[c*ҾF 2 MF!!#06 ٧1{ס=B$Ɵr<̉1FnCW55Tau_/p(W] [Ί/% ܼ N,z@&ʍ,cu5i*|fWwu)KPQ4~Bq̡1_(@2o\DCh+m%aFmn4F2]|AB514/l . OYi}l~8j*VQ1!ذsQy|gǾGJI0 e–De$Ia؟],]duϦ?o^Ƚ"T;P<1-2-w}"%Y-IxC %$(bDHFRHLۼ*_-m\Shw79^Hiiw9qeeYF,Ҫ.꿭SqLg+XR8Hiu 4Чߤ+(a&-Q+_PVbzGC2Z d/hy(-IEb~QgnfL䫨~坩&Gb%!W? b2uzbFN'䫚rȪO1?8J0 H0Zϗxנ5~/u\rBe=}%*C2ydrU]Ȼ*]I߫YTMcz2s}f c> W}AfҷMSXBN0OouѨXVZZL<;HJsWaN-8F> `DzRKD?C>HmVBp< \2i a@{_ Yy9%R٭Pl{v6odڦ"^o=bjY7>WZgԽ$k w1[ڪ?]M+KslRO *MSO5vUDs4l9l\[~rnXbC%ռ1Gui]'G4A+ExKV,]^Ք,JHm:*թc/O> :CA&ԧMbk_ٯ@C {<8C2%L*Qrnn/8Er:ml+fn#YYow)bp}zg.Ox}woq͹SKyR"1BR09O4Xz䢟zfgD{VwKfUyףzÉLTcQ/:7]wFN@ʐ㿑?<(SҊMJ,A~Ln+fkWgȚq4i=ӪzzEq:'dץmzȚw-ھyƬ&9%D tlpp4M&:3V։sDdH g~Ah{s 0Po kdFeno!ٖTfy$cͧxVwkkp)> o'X%{ʘUYni8q*` ͬg떬pƹ#` ``+ËOx™/yh}4^`u}hJ-ec@y@E BA/$ C]3'}*LEu'Ybpx>acQ(T33TѸpr㼠$⨜د_Q-BT1ҞcBiS[~+b&pHaZk a1{e pM2JU?@B_Pr lɢSUR:su2y PTf4K\wzEVoMr$ɭ+8`cH)rz@M@.ֲyakX5''Sav$g»ͼs~t+I_iC}+ni:l]eDۭyZ'0W(PbrE[Ybŏ-v3ʦq }om|TuF N7&E>c^HG!Sk]sa,Š:{{mzgڵ+pY ]ops/|'gѣn+_YgK"Sp|ٰ{q9=ZZ oh4JS3õh́ޢqxs`eEtiD9  B֙iΑ~vqsØ Bɸo'kE\+v< aZ7<|t'h; yLQ:DNj8HZ񗖪wq'⊾TL]Q_VYqnÌO"U=/6LץCBX!-}pAK ۯѻ|(a2-JsձR@3w)Dg֘ߒPR}AytթF_'7r}4Jt泛Fߴy+FkWT_d-ɤLŴ=b*C! JJJe\dM$N㷉tBn㳇b!4fҹ آjR|Zܶ+8U 4vPdNK_0[׌6H5ױ$ǔr2f!֯)?D79#l\?\6ar1Q15kOt&jnUޝDV_]jWhFu2_1!N FR umoq͡ 'eĖ]Hs`(4|@.ҒRsg|#eб:I栩;Q-|fMXo.C8 1l9c=R;XǬC]j|O_B(%rҨ)ݢnz"̅/RIaȠPxy}aVlqBEiQm4|P" z2ٴFQ'wXF;PS|d"q$;~5f"EbkĩJjH f\K^t<ҖC-f%SCSg rHVۉ$,7<j+o `â{T^[O3ސ-pp^7U~i@ ziֺAɧ2;pjbֺU? bd{4J& AQ8 @9{ ⣌ Hznq +lT/ [R.-XV/?m;`ز!I7h=/9Ad&8escL: *+@amG0ըP쿶QN(zѓ+Wӥʋ<*m5xvo%0"S(f a $s`ūV*_)N屠-JN.6w: }j'l vd(qL ۰Bp{$JirD&)\đK!Є7 -xUD$_Y w7Kd(v}7ha.ʩr_!8Z+-۟I|֘bÌrXЇ4#xW)wz<|Ѽ1l6'ڡJvb8%E9<+gZJ)ՅDs޹P|ѽ~%D+3+7ɭk,zY* @q'򵬮X]^G ?=dFr+! =WL *Vzk͈vy8't79tYVkXh=$r7T~jc ,g^j7;ߏ>c=4AX)3#;-}r/O+Тkxd{  -FA+Ta G_Qnn a^tseZaFoIvc(:> o,Xlx 2fwAo&#d}f* cSp@̙^aUO&WP|@[;AD ,liOig6ژ9<uճI8'zCF*{Vꄇa-~ `cҔ83B 7풘Nؙ g@@0C BW>8 :B1=:s8$ >%3קD'/k:Vbf.C2-!*m44`_[w"}Prd;+pC3vR."k/jH ;Cj'`i7MKB4|QTF@:ʒ<w9Wqzq5a\Z8%v}*gZull*6힆,,]ߠ{{L$`i 'P:=U'Pa KQNr(5 Rg2񊹱FB:XOU.`#!Z0[X{?P }7v,|Yѩ|п|9k^NJC4?Te 6=%.5; ֺ{r7B[ԟl/V˘=dO eMu]Q1mq& '_kES6j՝xU<ΟL, FF_{mD^jh|E vq˩U,${q糺؀WEaTH\]HޯxKԄ XoKQK 5M]9l-9@a M] N!8E^6\E?TTb&=Cl5Mh/  nϽlKyp+سl@,1{Bȩ\_ `v<Ƹ|4$Dz6jNmMqPAsj}Ki [^z(G@)wEЍe/ٍ`#i?dYΩx@#\C&iNJ01xM.}1 ;+*uyi  ͖Fz LC/HRBКwTvpK vQ-"c~7ʗ;*%4ŶFK!3 "/ơH)CZh4P*6 $nrvfk]]$D!ZA_DiDr@1euq R`م2/(ֈp`ٱV`DI)HTҡ\jD 441uw#p$~|3l-=EikRSԳL,yl(mǴ5a)ù%"wLrxٯ<18:zksN8{Y$c⪆ a\ YZ