tukit-4.1.6-150400.3.3.2 >  A eqݸp9|o68et2H)n"runMQb|UTH=<5!uNύBR<OF􁃣>ZӦ8vc1xҤ$fYE%`&t5F&qUX,|S4[o\p쨁Kq3J*|#XeG*"r?#Z~L8DAtHUq4def2832cd5e25aef2b7f3a8b5c9063a95e4451d9659889802b5a923c85369f6d6385be82a1d31762475543eb9cb2177fb6e4047)eqݸp9|)=㲤nsS Rd_>0tegFzx@J#J+-*:d38RBTZXT0^~e隑36^Mj^8_nZy)/iB)0{?^`B oY~cK͞.*V'=5 g 1)Ժ<~SA>ug^Ӛ4(eBk򅃬>$ /W8mM6Y{AF\Gk$5D<4>pI(?d  V )5flr             4 f  pDH](c8l|9\|:Z|=<>D?L@TF\Gp H I XY\ ]$ ^b@cdeflu vw x@ yhzCtukit4.1.6150400.3.3.2Tool for doing transactional updates using Btrfs snapshotstukit is a simple tool to make changes to a system in an atomic way with btrfs and snapshots.eqbs390zl33ȆSUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Basehttps://github.com/openSUSE/transactional-updatelinuxs390x: 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 create-dirs-from-rpmdb.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: 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 create-dirs-from-rpmdb.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: 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 create-dirs-from-rpmdb.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 create-dirs-from-rpmdb.service ) || : fi: test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in create-dirs-from-rpmdb.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 create-dirs-from-rpmdb.service ) || : fi fikJ`*F~A큤A큤eqYeq^eq^eq`eIeIeq`eIeIeqY33243f2894e67aa69b0199786b3573c407ff37ce2da38da3c88cd2e7ca58d3e6d12a0d796d1ce422f2bc0e8dbb2473aaf004164780af5dddd7338e188af59f5c32ccc4626df0dfcf7770b46f3b69be0e2a678dd91041e1497e81c21ea31026928219ef8c377ae316a01bfc558440e4c018e7323f985734b529c8763cc6f60fdda5d09450b2c0293d56567f7e25af230e0b57f89dea487b5250ee055e12aa0c334ec94987f3af0b357c6af2280ebcb5b352e6c5fd51f4c33eed6e89d8f20ccb6cdb296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc7380e9e14e45c77fcdd27b5e6179dbc7a07479cddf326eaae3c598acbe43dbf384rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottransactional-update-4.1.6-150400.3.3.2.src.rpmtukittukit(s390-64) @@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.2)(64bit)libc.so.6(GLIBC_2.4)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)librpm.so.8()(64bit)libselinux.so.1()(64bit)libselinux.so.1(LIBSELINUX_1.0)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.2)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libtukit.so.4()(64bit)libtukit4rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.1.6-150400.3.3.23.0.4-14.6.0-14.0-15.2-1transactional-update3.0.04.14.3e@d ccvc@c6@ccobbb@bq@b$@a@aa@araexaLl@aD@a<@a6a,@a /a /a@`@`\{@`KW`KW`H`H`>(`-@`*b@`&m`"y@`>`@`@`@`U_/@_@__t@_@_o-@_h_h_3_+_$_{^^^@^|@^ku^^F^V]^r]X]V]v>\\@\@\\\}@\eX@\eX@\N[[k@[[z@[#@[{@Zz@Z@Z@Z@Z@ZlZ@ZkZZ@ZqZTZ&@Z@Z@YYYV=@YS@YRHYP@Y0X@XX @XXXXX*X@X@X~@XWXRXN@XF@X5X2X2X-X@X@Xx@iforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comschubi@suse.comfvogt@suse.comiforster@suse.comschubi@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comaplanas@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comngompa13@gmail.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comiforster@suse.comjengelh@inai.deiforster@suse.comiforster@suse.comiforster@suse.comiforster@suse.comkukuk@suse.deiforster@suse.comiforster@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.derbrown@suse.comrbrown@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.dekukuk@suse.comkukuk@suse.dekukuk@suse.de- Version 4.1.6 - Use permissions of real /etc when creating overlay [bsc#1215878] - Version 4.1.5 - Add support for configuration file snippets- Version 4.1.4 - Workaround for broken Tumbleweed package libfdisk1- Version 4.1.3 - Suppress SELinux relabelling output in quiet mode - Documentation readability improvements- Version 4.1.2 - Don't try to mount user mounts if they don't exist [boo#1207366]- Version 4.1.1 - Mount user specific binddirs last: Prevously the internal mounts would potentially overwrite user bind mounts [boo#1205011] - selinux: Relabel shadowed /var files during update to make sure they don't interfere with the update [boo#1205937] - Clean up /var/lib/overlay more aggressively [boo#1206947] - tukit: Merge /etc overlay into parent if --discard is used together with --continue - previously the files were incorrectly always merged with the currently running system - status: do not execute the status command if experimental - Don't delete created mount point dirs any more - Small code optimizations- Version 4.1.0 - t-u: Add a "setup-kdump" command; implements [jsc#PED-1441] - Export TRANSACTIONAL_UPDATE_ROOT (the path to the snapshot) in the update environment; implements [jsc#PED-1078] - Add support for "notify" reboot method for desktop use [gh#openSUSE/transactional-update#93] - Fix kdump initrd recreation detection; the check was performed in the active snapshot instead of the target snapshot - Document register command [bsc#1202900] - Avoid unnecessary snapshots for register command [bsc#1202901] - Various optimizations for register command - Remove bogus error message when triggering reboot - Rework /etc overlay documentation in "The Transactional Update Guide" - Fix incorrect manpage formatting - Remove leftover "salt" reboot method in configuration example file - Replace deprecated std::mem_fn with lambdas- Migration of logrotate configuration to /usr/etc: Saving user changed configuration files in /etc and restoring them while an RPM update.- Version 4.0.1 - create_dirs_from_rpmdb: Just warn if no default SELinux context found [gh#openSUSE/transactional-update#88], [bsc#1188215] - create_dirs_from_rpmdb: Don't update the rpmdb cookie on failure [gh#openSUSE/transactional-update#88] - Handle directories owned by multiple packages [gh#openSUSE/transactional-update#90], [bsc#1188215]- Version 4.0.0 - Last minute interface change: Changed "List" method of Snapshot D-Bus interface to return a map of properties instead of a comma separated list of strings; this will allow retrieving the snapshot properties even if they contain a comma in their value [boo#1202147] - Remove "Snapshot.hpp" as a public API for now - all public functionality is part of SnapshotManager.hpp - Add header file documentation for SnapshotManager.hpp - Add method to delete snapshot [gh#openSUSE/transactional-update#52] - Allow setting description of snapshot [gh#openSUSE/transactional-update#55] - create_dirs_from_rpmdb: set SELinux file context of missing directories [gh#openSUSE/transactional-update#84], [bsc#1197242] - Fix broken logrotate due to typo in config file [gh#openSUSE/transactional-update#87] - create_dirs_from_rpmdb: Fix handling return code of create_dirs() [gh#openSUSE/transactional-update#86] - Fix broken "shell" prompt after selfupdate - Add documented D-Bus interface definition files - Add tukit_sm_get_current and tukit_sm_get_default to C interface - Fixed typos- Moved logrotate files from user specific directory /etc/logrotate.d to vendor specific directory /usr/etc/logrotate.d.- Version 4.0.0~rc4 - Fix building with GCC 12 - Fix stack overflow with very long commands / ids [bsc#1196149] - Use separate mount namespace for chroot, allowing overwriting the bind mounts from the update environment - this could have lead to data loss of the bind mount previously - Fix C error and exception handling for snapshots- Version 4.0.0~rc3 - Add Snapshot interface - Reworked signal handling: All public signals are sent from the main thread now, keeping the same sender for everything - Implement D-Bus call "Execute" for Transactions - Implement interface for listing Snapshots - Implement Reboot interface - Fix bug when using --continue on old snapshots - Fix hypothetical integer overflow in snapshot list [bsc#1196826] - Fix wrong sort order in status command [gh#openSUSE/transactional-update#80]- Version 4.0.0~rc2 - Fix missing prompt in "shell" command [bsc#1196580] - Add output of tukit commands to log file - Fix compilation error with GCC12 [boo#1194876] - Fixed (non-critical) security review comments [boo#1196149] - Fixed selfupdate - Code cleanup- Version 4.0.0~rc1 This release is API, but not ABI compatible with previous releases; existing applications will have to be recompiled against this new version. Major features: - Introduces a D-Bus service to access the libtukit API via the org.opensuse.tukit.Transaction interface - Introduces a C binding via libtukit.h. Other changes: - t-u: Rework --quiet handling to make sure no output is shown even in error cases; this is necessary for automation, e.g. with Salt. [gh#openSUSE/transactional-update#73] - tukit: Allow storing command output into variable by introducing a new optional parameter for "execute" and "callExt". - Replace multiple and non-standalone occurenses of {} in "callExt" argument. - Split transactional-update.timer into transactional-update.timer and transactional-update-cleanup.timer; the later will clean up old snapshots even when the system does not do automatic updates. - tukit: Remove legacy alias "setDiscard" for "setDiscardIfUnchanged". - Throw exception if snapshot is not found. - Fix various compiler warnings - Update spec file: - Include tukitd D-Bus daemon - Only install one version of the library (as there are no breaking API changes yet) - Add %pre scriplets for systemd services - Replace %systemd_postun scriptlets with %systemd_postun_with_restart to satisfy rpmlint checks - Add transactional-update log file as %ghost file- Version 3.6.2 - Bind mount root file system snapshot on itself, this makes the temporary directory in /tmp unnecessary; also fixes [boo#1188110] to return the correct snapshot's working directory via API call. - Use separate mount namespace for transactional-update; this should fix several applications that fail to run if a mount point has the 'unbindable' mount flag set- Version 3.6.1 - Fix rsyncing /etc into the running system with - -drop-if-no-change [bsc#1192242]- Version 3.6.0 - Simplify mount hierarchy by just using a single slave bind mount as the root of the update environment; this may avoid the error messages of failed unmounts May fix [boo#1191945]- Version 3.5.7 Various fixes affecting Salt support: - t-u: Don't squash stderr messages into stdout - t-u: Correctly handle case when the snapshot has been deleted due to using --drop-if-no-change: Don't show reboot messages and avoid an awk error message [bsc#1191475] - tukit: Make inotify handler less sensitive / ignore more directories [bsc#1191475]- Version 3.5.6 - tukit: Add S/390 bootloader support [bsc#1189807] - t-u: support purge-kernels with t-u patch [bsc#1190788]- Version 3.5.5 - t-u: Use tukit for SUSEConnect call [bsc#1190574] Correctly registers repositories- Version 3.5.4 - tukit: Fix resolved support [boo#1190383]- Version 3.5.3 - t-u: Purge kernels as part of package operations Required for live patching support [bsc#1189728]- Version 3.5.2 - tukit: Fix overlay syncing errors with SELinux [bsc#1188648] - Don't print message for `shell` with --quiet [gh#openSUSE/transactional-update#69]- Version 3.5.1 - t-u: Disable status file generation by default The new experimental `status` command requires the availability of /etc/YaST2/control.xml, which is not present on all systems. Hide the creation of the corresponding status file behind a new EXPERIMENTAL_STATUS option to try out this functionality. - Increase library version- Add tukit.conf to spec file- Version 3.5.0 - Add alias setDiscardIfUnchanged for setDiscard. The old method name wasn't really clear and will be removed if we should have an API break in the future - Replace mkinitrd with direct dracut call [boo#1186213] - tukit: Add configuration file support (/etc/tukit.conf) - Allow users to configure additional bind mounts (see /usr/etc/tukit.conf for an example and limitations) [bsc#1188322] - Add 'transactional-update status' call. This is a POC for obtaining a hash of a system to verify its integrity. The functionality is still experimental! - Internal bugfixes / optimizations- Version 3.4.0 - Apply SElinux context on /etc in transaction [boo#1185625], [boo#1185766] [bsc#1186842], [boo#1186775] - Implement inotify handling in C instead of Bash; this makes the - -drop-if-no-change option work on SLE Micro [bsc#1184529] - Use `tukit call` for up, dup and patch to allow resuming an update after zypper updated itself in the snapshot [bsc#1185226] - Fix obsolete output type messages in initrd [boo#1177149] - Make different base snapshot warning more visible [bsc#1185224]- Version 3.3.0 - Add support for more package managers by bind mounting their directories - Support snapshots without dedicated overlay [boo#1183539], [bsc#1183539] - Link RPM database correctly with older zypper versions [boo#1183521] - Don't discard manual changes in fstab [boo#1183856], [bsc#1192302]- Revert inotify-tools dependency: The package is not available in SLE. This will probably have to be implemented as a native C version.- Version 3.2.2 - Don't skip patches with rebootSuggested flag [bsc#1183442]- Version 3.2.1 - t-u: Forward --quiet option to tukit - Regression: Add /opt as bind mount into update environment - Remove output indicators of the called command to not tamper the result line - Fix /etc syncing with --drop-if-no-change- Requires inotify-tool to have --drop-if-no-change available- Version 3.2.0 - tukit: Add new command 'callext' to execute an application while the snapshot is mounted. '{}' as a parameter will be replaced with the path of the bind mount. - Fix --drop-if-no-change [boo#1182525] - Check whether self-updated version is executable (e.g. on noexec /tmp) [bsc#1173842] - Fix overlay synchronisation with SELinux (again) - Always overwrite supplemental files (e.g. for network configuration) even if they exist in the snapshot already [boo#1182544] - Improve logging and error messages- Version 3.1.4 - SELinux: Fix syncing of SELinux attributes when using overlays - SELinux: Tag the overlay directory itself (again)- Version 3.1.3 - Fix overlay syncing on SELinux systems - Fix resuming transactions where the parent does not exist any more- Version 3.1.2 - libtukit: Report when application was terminated due to a signal, and return the signal number as a return value. This will cause the transaction to be aborted when called via `execute`. - libtukit: Set PATH variable for internal commands to fixed value to find the helper applications, as in some environments such as PolicyKit PATH wouldn't be set. - Fix compiler warnings- Version 3.1.1 - Fix hang in tukit on aarch64 [bsc#1181844] - Prevent deletion of snapshots when resuming a snapshot where no transaction is open - Make tukit work in non-dbus environments [boo#1181934]- Version 3.1.0 - t-u: Support installing RPMs from the user's directory again - Adapt selfupdate to new packaging - Implement signal handling - Remove empty text files- Add libselinux build time dependency - Remove RPM version check- Fix libstdc++ filesystem ABI incompatibility by using newer gcc version on old distributions. [boo#1181582]- Rework packaging based on Fedora packaging to separate all the components to remove the intrinsic requirement for Zypper- Version 3.0.0 - This release changes the internal structure, but should be identical to the previous release feature wise. - Major parts of the previous Bash only application have been rewritten in C++ with the goal to provide an API around transactions; the transactional-update script is using that new interface internally already, however the API should be considered experimental for now - if you are interested to use it, please notify us in https://github.com/openSUSE/transactional-update/issues/52 - A new tool called "tukit" provides a C++ tool that can be wrapped by scripts to leverage the functionality. Please consider it experimental for now, the commands may still change. - Bugfixes: - Implement support for system offline update [boo#1180808] - Add statistics files to update environment [boo#1173282]- Version 2.38.3 - SELinux: Make synchronisation work for both pre-SELinux snapshots and later snapshots; SELinux support should be ready for most tasks now.- Version 2.28.2 - SELinux: Exclude security.selinux attribute from rsyncing (again)- Version 2.28.1 - SELinux: Fixed changing the wrong grub configuration file - SELinux: Move /.autorelabel file to writeable location- Version 2.28 - Add 'setup-selinux' command for easy setup of a SELinux system - Allow complex commands for the 'run' command - SELinux: Fix /etc / overlay labeling- Version 2.27 - Add support for network systemd-resolvd network connections in t-u environment - Mount /var/lib/ca-certificates read-write to prevent SELinux error - Prevent calling transactional-update from within transactional-update- Version 2.26 - Fix broken sync for second snapshot [boo#1176989] - Add new options to allow separate cleanup of snapshots and overlays - Check for existence of inotifywait before using it - Check that mount options don't exceed maximum length- Version 2.25.1 - Fix inotify watcher setup - Use log_{info,error} for more messages to avoid messing up Salt logs- Version 2.25 - Reduce number of overlays: Instead of using transparent overlays for all previous layers only add the previous snapshot's overlay; this will greatly reduce the number of overlays while still making sure that /etc changes in the running system will be visible in the next snapshot - When using --drop-if-no-change synchronize potential /etc changes with running system - Exclude all non-root-fs mounts from inotify watcher- Version 2.24.1 - SELinux: adjust labels for etc, fstab and grub.cfg- Version 2.24 - Add partial SELinux support- Version 2.23 - Add "run" command to be able to execute a single command in a new snapshot - Add "--drop-if-no-change" option to discard snapshots if no changes were perfomed (BETA, required for Salt integration) - Removed previous CaaSP Salt support (gh#openSUSE/transactional-update#33) - Avoid "file not found" message on systems without /var subvol- Remove unused attr requires - Change bc to file requires- Version 2.22 - Use pkgconf to determine installation paths - Enable SSL connections in update shell [boo#1149131] & [boo#1133891] & [boo#1192078]- Version 2.21.1 - Rework error messages on failing umount [boo#1168389]- Update to version 2.21 - Use slave mounts for /proc, /sys & /dev- Update to version 2.20.4 - Mount efivarfs on EFI systems to make sure the bootloader will be installed correctly [boo#1162320] - Fix removal of existing overlay directories- Add dependencies to btrfsprogs, zypper and snapper - most of the functionality is not usable if those applications are not installed. [boo#1166502]- Update to version 2.20.3 - Reintroduce compatibility with RPM < 4.15 for inclusion in SLE / Leap 15.2 - Prepare for removal of /var/lib/alternatives [jsc#SLE-9101]- Update to version 2.20.2 - Use full names for zypper options [bsc#1164543] - Ignore /var/lib/rpm in shadowed file output - Optimize create-dirs-from-rpmdb- Update to version 2.20.1 - Add missing documentation about --continue option - Avoid error message about missing fstab file on first snapshot creation. [boo#1160213]- Update to version 2.20 - Add the option `--continue` to extend an existing snapshot. This can be used to perform multiple operations before rebooting into the new state. [gh#openSUSE/transactional-update#16] - Make sure the dracut service to print warnings on /etc overlay conflicts also runs in the pre-made images. - Add "none" reboot method - Remove conflicting overlay artifacts in case an existing overlay directory will be reused- Update to version 2.17 - Provide network in shell on systems where resolv.conf is pointing to /run directly [boo#1151081] - Print new snapshot number at the end - Always mount /root subvolume when using shell command to preserve history- Update to version 2.16 - Use default command if options, but no command was given [boo#1146116] - Make sure only one process appears in `ps` output [boo#1111897] - Move update check: If a new repository is added (and ZYPPER_AUTO_IMPORT_KEYS is set) adding the new repository key won't fail any more - Avoid unnecessary snapshots / reboots by detecting zypper operations without changes more reliably (e.g. when installing an already installed package) - Update the manpage accordingly - Bugfixes: - Ignore commented lines in fstab when checking for shadowed files - Avoid warning when copying network config - Remove Perl dependency - Building documentation requires Python 3 now- Update to version 2.15 - Move description of interactiveness [boo#1132438] - Enable network during update [boo#1137890] - Add compatibilty with new overlayfs versions [boo#1140057] - Allow updates of the bootloader on EFI systems [boo#1139015] - Add support for /boot/writable [boo#1138725]- Update to version 2.14.2 - Prevent unnecessary error message on systems not installed with YaST (e.g. KIWI)- Add requires for bc, needed for some calculations- Update to version 2.14.1 - Improve non-root fs changes checker based on feedback - Disable snapper's zypper plugin during transactional-update run - Allow parallel installation with snapper's zypper plugin (useful on read-write systems).- Update to version 2.14 - Warn user if contents of /var have been changed during update - Noteworthy: swapped position of upperdir and lowerdir in fstab for better readability - Major update to the transactional-update guide- Update to version 2.13.2 - add hooks for telemetrics- Update to version 2.13.1 - Bugfix: Clean up empty /etc snapshot directories again - Use official release files from GitHub for building- Update to version 2.13 - Fix a serious data loss problem (deleting all files in /etc overlays) in case /var/lib/overlay/etc is not part of any snapshot any more. - Avoid error message in case a system has no /etc/fstab.sys- Update to version 2.12 - Implements support for needs-restart (Fate#326451) - Adds easy rollback to last known working snapshot by using "last" as the snapshot number - Migrate /etc/fstab.sys entires to /etc/fstab for systemd being able to create mount units; this will prevent errors on unmount - Remove implicit --no-allow-vendor-change - this option can be configured in zypper's configuration file now - Add support for mounting the /etc overlay file system as a systemd unit in /etc/fstab on a read-only system (replacing /etc/fstab.sys in the long run) - Various bugfixes: - Only remove /etc overlays on read-only root file systems [boo#1122455] - Disable "Persistent" flag in systemd timer unit to prevent updates during or immediately after the boot phase - Don't set global zypper options during migration - this is not supported by the migration plugin - Fix error handling when interrupting while rsync is running - Filter out security.selinux attributes during rsync- Use noun phrase in summary.- Update to version 2.11 - Update man page to explain new /etc overlay handling - Add special handling for migrating away from old overlay directory - Read default update method for systemd service from config file - Add package "transactional-update-zypp-config" to prevent accidental transactional-update uninstallation on transactional systems (boo#1111319) - Use "up" for systemd service on non-rolling release distributions (boo#1111321)- Update to version 2.10 - Introduce /etc overlays - Each root file system snapshot now has a dedicated /etc overlay in /var/lib/snapshots//etc - Changes in older snapshots will be visible in newer snapshots (if the file hasn't been changed in both snapshots), but not the other way around; this makes it possible to roll back to a previous snapshot even if the configuration is broken - The /etc state of the oldest active snapshot will be synchronized into the new snapshot to prevent ever growing overlays - Removed creation of /etc backup snapshots - Removed complex overlayfs cleanup handling during dracut early boot; only thing left is to output a warning if files have been changed in old and new overlay after snapshot creation - Unused overlays will be removed during "cleanup" operation - Add compatibility with snapper >= 0.7.0 - Correctly detect BTRFS ID when using multiple snapper configurations - Fix disappearing prompt in "shell" command when application was updated - Prevent accidental rollback on fast reboots (boo#1111786) - Use zypper attribute packages-to-change if available (boo#1105992 & boo#1097619) - Add kexec as reboot alternative - Added explicit --with-doc / --without-doc build configure opttions for enforcing or excluding documentation build - Removed precompiled documentation (boo#1088676) - Added more dependency checks to configure script - Small improvements to documentation - Restored compatibility with older rsync versions not supporting the -x filter - Small bugfixes for cleanup in error situations - Fix possible incorrect detection of snapshots numbers during cleanup - Mention parent in snapshot description - Add dependencies for documentation build (boo#1088676)- Update to version 2.6 - Add --interactive and --non-interactive options to change the default interactivity for zypper calls. For previously non-interactive calls (e.g. dup) these options makes it possible to pick the correct solution in case of conflicts or make sure that a script will never be stuck at an input prompt. - Add kured reboot support - Tries to clean up temporary files and mount points if transactional-update quits unexpectedly - Remove trancactional-update-helper (replaced by zypper options) - Create /var/lib/zypp if not available (boo#1104452) - Robustify parsing zypper output (boo#1105992) - Various small fixes - Changed permissions of systemd script again- Update to version 2.5 - Support for overlayfs attributes like trusted.overlay.opaque - this will avoid disappearing configuration files on system updates - Documentation update - Only sync /etc if it's on an overlayfs mount - Use correct locale for zypper - thus updating locale specific packages and avoiding "empty" updates where transactional-update didn't see the change - Add dependency to attr - Fix permissions of systemd script- Update to version 2.4 - Bug fix release- Update to version 2.3 - Reformat help text / synopsis - More detailled output (use --quiet for less output) - Log all error messages into log file - Avoid potential lock file race condition on self update - Accept package names with whitespace - Don't wait for user input during self-update - Fix broken error message output when creating new snapshot without reboot - Fix erroneous mounting of stale grub mounts- Update to version 2.2 - Fix security issue in self update [boo#1091316] - Create dirs in /var more reliably by sorting the list - Rebuild initrd (needed since 2.0)- Update to version 2.1 - Cleanup the code cleaning up /etc- Update to version 2.0 - Create missing directories from rpm database during boot - Merge /etc overlay with root subvolume during update- Update to version 1.29 - Implement self-update - Disable optical media on dup - Ignore certain zypper return codes- Add conflicts with snapper-zypp-plugin- Require perl-HTML-Parser (needed since 1.26) [boo#1085764]- Update to version 1.28 - Adjust for latest grub2- Update to version 1.27 - Fallback to snapper without dbus support if dbus fails - Add workaround for update-alternatives - Add support for /usr/etc/transactional-update.conf- Use %license instead of %doc [bsc#1082318]- Update to version 1.26 - Auto accept repo keys config option - Detect broken snapshots after abort - Ignore user deleted snapshots - Include all error messages in main log file - Add configuration file - Correctly implement migration of major OS versions - Default reboot strategy is configuration option - Salt option is deprecated- Update to version 1.25 - preliminary SELinux support - support for seperate /var subvolume- Update to version 1.24 - Don't save unused snapshots if we may delete them again. Partly fixes [bsc#1071038] - Copy passwd, group and shadow to /usr/etc if modified- Update to version 1.23 - Fix re-registration in rollback case - Fix problems with updating the grub2 bootloader - Add support for migration of products with SCC/SMT - Re-add support to re-write bootloader [bsc#1068933]- Update to version 1.22 - Rewrite cleanup code to be more aggressive- Update to version 1.21 - Reset salt grains even if no update was found- Update to version 1.20 - Improve documentation - Add pkg update option- Update to version 1.19 - Add 'shell' option for debugging and testing- Update to version 1.18 - Auto accept product license in non-interactive mode- Update to version 1.17 - copy modified bootloader config into snapshot - unit file cleanup, no change of behavior- Update to version 1.16 - internal changes [bsc#1045942]- Update to version 1.15 - Rename option ptf to pkg - Add option to set salt grains- Update to version 1.14 - Fix check of return values of commands in pipes [bsc#1034900]- Update to version 1.12 - minor bug fixes- Update to version 1.11 - use --no-allow-vendor-change with "zypper dup" - update manual page- Update to version 1.10 - implement and document rollback option- Update to version 1.9 - fix umounting of special filesystems and subvolumes - fix interactive installation of PTFs [bsc#1023026] - fix dependencies of systemd service- Add Requires for lsof and fuser- Update to version 1.8 - fix references in html docu - build kdump initrd if we build standard initrd, too- Update to version 1.7 - build html docu, too- Update to version 1.6 - Add support for kdump [bsc#1018098]- Update to version 1.5 - Install PTFs in interactive mode - Sync state file between current and new snapshot- Update to version 1.4 - Fix wrong error messages - More debug output if umount fails - Try a second time if umount fails- Update to version 1.3 - Add initrd option- Do some spec file cleanup- Update to version 1.2 - suppport ro-subvolume with overlayfs- Update to version 1.1 - bug fix release - implement lock- Update to version 1.0 - implement and document PTF options- Update to version 0.99 - Support for rebootmgr - Write real manual page- Add empty directory /etc/systemd/system/transactional-update.timer.d/ so to make it easier to override transactional-update.timer entries.- Update to version 0.90 - Finish normal options - Implement support for PTFs- Disable restart on update for post install scripts- Implement activating the new snapshot as new root filesystem- Initial version/bin/sh/bin/sh/bin/sh/bin/shs390zl33 1701961058 4.1.6-150400.3.3.24.1.6-150400.3.3.2create-dirs-from-rpmdb.servicecreate_dirs_from_rpmdbtukittukitNEWSREADME.mdtukitCOPYINGgpl-2.0.txttukit.conf.5.gz/usr/lib/systemd/system//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/tukit//usr/share/licenses//usr/share/licenses/tukit//usr/share/man/man5/-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:31250/SUSE_SLE-15-SP4_Update_Products_Micro54_Update/f6614e6846c868bc37fdf8e3d6d74e12-transactional-update.SUSE_SLE-15-SP4_Update_Products_Micro54_Updatecpioxz5s390x-suse-linuxASCII textELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=06c0796dd689bb9fbc337dedd597835e3d6ddb7e, for GNU/Linux 3.2.0, strippedELF 64-bit MSB executable, IBM S/390, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld64.so.1, BuildID[sha1]=2215489bc87f6989d13e8c450b6544fab46e5f99, for GNU/Linux 3.2.0, strippeddirectoryASCII text, with very long linestroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)R RRR R RRRRRRRRRRR RR RRkWk@xutf-86cc64da6e53409f8dfc3efd417b1087fb51f002b1004cdde5a536fafa76114b6?p7zXZ !t/Ǐ] crv(vX0yW=.4&hU|[E%tU^4tY #X[DEW[Rn gL3SgmR׀9lCk93Vm/%ߕ.*EN=SYIVo<(t5=A*р8'affX;^CQᏦy@|)BB@:DKQ5V3Bot͡oٸS='&B9íO>Ix۵e=y%¼6 jB)_,ү3n$)`(m/b3-[[*!^3x,B2 P.Q,8$eQヾ9/)F!K QS{|u9(?t@2m2ta/p-C}:+f)X?aF ȇ7Y󩀒9Nl9 Kl򭐱ʯIMVc4$w(P;)(J&}I]9-4EP_䙣W3u!0S$-WtP5~[8ƶzbG5`@h*Q]xf{Ү Q'aۛ)5  :ÿ O>V A%n;j` Ѻ ]ʹRy*WSLqV7~%Lp ú6N^y\k~)1K]/VXFn -ݻ}U~V_ ?3~XBO.:Y61{"EmwӖKs^@GRDle{}2#"򿅥h< ۥB!O ~YloL!C_5X(9pL^SQ֒O x(Rޗ,_GZh\``}I`v1Ⱥ)NqjiE|sQ :T[+7.OuՕmԆrLsaY(Vg*yjow?wUB%lPܯXCnu]uR Bj! ]EzF̗m[t> Jv_PUU#+LsJ+$05mA,fb:H9@o*%HL:"hHa~l\ӏ.[Q>aV$AXQ$WV0t N)oE:ɘV@D4Bu5E/#O:lfgKFv;`w 6'ODVT :3M$$" y!'c^t@M5 M烎d_hlY! z?;|2[a+ֆ*TѰqB<`yNl3=VdvBPoԶqQt9M+sw21u}id\9N5 MyG|.B8~J#gIJɑCZ M k81-64O?9~l1ER:co%o#,N ,~VT]M~: DOPtoSlG zOL|X160.. q=5`(xؾ@ó֪v +@@hotw!t_qݗe㠅IбC҄T]ZN /AXfh~6fLJRT(Bvz6g33NJk 8M+0o>jǠ y!)Taxǐce^ZT'@,D4}q ߠz|onYSnJPu|ѕm`&%ZbH}u43Np:dv # ،GZ@jOɔADPUbaL89v@lurl|1~_E" )GJ=@6G-wE&b& hO:mƛ&U%ePhXzCV,(6cL8> hT , W<SyJ>FMC% œxXӒ7`>}.|US)OCT[1STkծ]  lpuIq[at??Cݘ96 p4U64ʏ˃R%tKM^Z)m-#1VK|&nTY(U8_Pw U}apA_w u& \R}i7Y^8߰mЋ4<.;`^zZ7s%L'Ѓ#U \ *|൰1TNY:*CdڜdSN"%3}6{_0J}eHf#ٍ>K6 |*t$JEE\AX{BzJ* TUc|%@Jn`N+.eeQcYvQF$[k71pyYOܐ 5ⷩ%}f^#GtnGaW`\dą#_=2-92w.0yuJE~ iq]Ռ\2yqkU>֐н(r1Jc/[2X6ٕ`dOe$qp =w>)www_67i=ZdPyL)/##QNA ̾Y5!3i<`@:_M|iEbzA&bjtu5ՀH+5>@?O3U^# ۇEżÊb\m%N,,) s'# G 9!(wߘ>2*=2}v RmWPUs~0j0RUϡog'POJ3T1y"a&'3ɾ`E1A@-5?OIhviQWzq}azcd cZ_2g#4Ė8X^x/YX/-gSlt {MMTlx<1wU< WznD}V#m 7J/I驉lJ$VO7ӟ+O>/VZy38?ol0e=BbD Jl:V6je*P?7ݘw<FX]cf-yb6t{g6C/-# ?蓢zMrHة6Cd=Ϋ2x~cĽ*bQ߆K i;?/H 6-ђNT7Լ'nx4n=hk PwWa+Dypwnʹ"IZqZv,nΠ"4׽NԺxŲJG +Z 'wj4>/@8)͑ie]n/Q*``L3 ܑ}KDJ6YsA&:6`[JQOԱ‘BLEUWH7¥YtlE\ge~~(I Z T&16-+ f^z `%5?ík\SVP}x9Rx[!c$.;U|] WqAlt* O@RMOjq wܛ54QɊP@8_ *3%>4 >LkEܭz%oZB[l8F@l؇(j؀=BS>4Z}aF:@ .dճA7+|XcJo\Vj'KJ5|䉂 ;Gd? B^pfivxYXVSXtl:*-+]KhY@ ︡bgk\Xlrc攏"irn =K% 5z|)2}(ZN#7/kCv;t b(lCk")#6ϲǚlӲ˃~[aَO`8oaGBu#bIS PDʯXYS_85#QK}pzgcH|32* |6!EVOzS$4DaɎ Q`8=lEdޢbh@ EN*hCZ01c؍Dөf^$g':$[S-ckVi%wt1WkB^f̖Y!:r$rըxG& H+ǠO6Ђd2!+hQ E12Ɠy:((3b^}yꓡ/2ǵ=:(Y : h Y ot;nBreImPɯ1@ ln? :Y6M6Ϝđ3?UJvq‰ q&l{wuo O?*yBROH% QTH(EXD+.SH44q$R[;7Iǐxfm՛ۀ7gUfhI^j$C=f]`䊝 V*㸎,=} h'bxֵ74boR@xD2%!3[c=S۬[]ŐQ IV5wިþX+.Ow*?Օ5XF+& `۸_tU"ȑ|]=〥#=!(ް` ;c'6r2pd:ķ.Go U;C;rs!A |?mâ>DM9+@άs gBBS>[AFX %oVisR͞u2R<׍M \86C,ɰC=lW[ X.>o@*g P@Y=^ i׿ zY~␨iww_&ul x'_R޻7J(~8bXq/JѼWk 78H?Z0ҼF3ll6|c'Pg!RzCWHf` la ṽfe@Vb!}f@Q6P,Dc҉g2ѧdҊ:<.qUvZU4dBIF22YkPE^8~;`x٘bP ?<܏] ]~6@GkdbTK4Ci(;/ºcpLP^sӼ)`'Ϥ>W[ę*Ysa?"hq#UA - FeGgC\Je^ȹ}9İufyC+iJl̚/`&lsOv(ClhF\꩚e&P*h?۞բ3ݕDQ 6>ōğaSA(H`,0Ly!vx:rKn  H]Ot?Xr]WŸF$ .ZïbE +YG#9`ă]C/O>1\h4H>^fӼ%$$А}6NXYk6~sxyI.r~"Չ:{hmxvkʬi^uPaB3~؍Yq^}|"?m!~tVFW0iqm@yC wm]<+_^Bn&Gϒiqq r>UxL#)2^K~/_^2:V*dRdR /:mZSB9yN":47"ˋf71 RmhYx;ޑ._qq!5M00KJۮ ްrWe #`@#ˀ;g۰{ט=T~Gu!M ίDt̬`.Oe䛤Lx7iǁ(I LePoD1s :3Tl¸~B@_d3|gkO;"2z_UOSO9Y3PԷOLv#;'d;HXO?}0(N| m G4aMװu7-PX3&(.?sLNh iPޅ3Ev៧Tgcg }d8 ,eOnq\O50B=Ǵ0K.>:mKɞaF][ҵ9II 9{+1DI`G+gGIxP.?ZTWQEL'[4ygMD=Q{sL 2y|DN%Yjd$4cn37*xdߚV{؉\Ď~bM AN}4XsMEŋYSI s+#"ԥa,3(ɘO3QXےT? j teJFANߵ>Y6?tخDnOQxRBѤ{?2,KĞ遐mh) V*_EXrGtD[#UFߍCk %0{f\G'~0w0OoɹJ3n#(6PR(ivOj>9ϳu܍|P=G)*NC6sv|^)1G@91_,o# V7Íc h&|`df\7Y P\FmwE^9أ98Zh3+pEr5)o7J.Q){C-ɻ|/ްOzTʵtL^*A!V { \6M8VmDmZQo4m -?1>M**je2xWyAchU/7I˪5x$RҖSߝ% 7ԘOTy@pDYU'DgxԆ *ӲA߷Bvo&ٌ1XȫU&JkơW =F+K 6NEKnBQN,D(= 0/· 3T_VGz(pəΘ`cgZ?D/+I9Al'egSH&jU{9|r [r)|ƤVH 789̿1HRa|11eҠ𭿒1-"B?p4Qj ﭣep-!  ;E9;-wڥ5ܚD&7I Kŭa`E44K@gH#4T0S!YdoTT^L"K39zqG gJ aA Xz̿FQb&avg zCU6fZ"6Z{&RN2<D9N5s!J0~ZjbIRy2:' G^Mp9)1-/eZh|d:^wtR NyY#fw0&yKhǖL;qO{& cY/`qGhUc^=ljY"&%%A.K?mʒY\nh] JWv_Fn,i3,Q$Dhd/")khH;~7?i0B@].,q4U)0.$+^"iIIZ-c;7梤- Mhs $MX"vpQݲoT?ճ lЄ̞ehVaS%yI"W- 4B`K՟enyO!wQC _asmnPyKqyup%Aa6 !|j1FiD*lua$:[tUdpdnןX- `FG|E@w,ވj0>UOYsm&:.ؚu65 ZJ;LR:-$K~{N+lFZOH9C_&/SlQ[:-ynǒx b=%{bI?" {7%(E{ jچ]/QG } PjU#+V'ЃnD]lě(Mhg^[[<#8q \k4߈ڍxnʠ[?>gOjApfAnllzٰ=A^:a-3)MXGݢ@gzPkށ #ȝA_1HAk~|ElM4^0kN*")X3̄3N}Dߏe>oMQY2[<+xsvYdje &(tlP8÷6МLJiMGڈZVe42l$z p8x3(5,ú@ vSeG9hc-et֖* +,j c^(Zluz˖6O:7 X87BVc1=p##hrb.yԟogz(5~v! )X>K)ƃz1A$7.17^&l K)#mg&V7gr"@ g./\l,wqTE PQGd-=wfc-+d 8o餣*5|- l"VYPh;$C0|Dh_?zSo</4Yf:@{^#&&#o ?I[a>&C`Srw+~Xfʙe\MK&<ճר]X0ޗV xĝ]R2=|:鹼vMӆT7'2!-;ʙZdzSۯ ,3)n)"qyR.D&{&ʧ)Ќ4J'YiV-E6"%R\43* %dVSrѕAY7L>!<"*㦄 ({':5gԄRH,XPv7Ӡ+ Z ܛpgJI9%ICo>)QĀwV{¦Rh %=#kވ1/'ƥD\Z{ *94E2/N aKoq^R ݈P žʼnwv5mC(W ӜaHwӡ |mduTa %0:`lY v}>Գi#jºϰ|ft -{; !XZA‘%a_<3 U'f`vk28ZZaHT9k_e+ M-/kRM?0UY6Y:Rz3 '= #{O@CR,mV,j;=-`'ԧXAqx) ,UEۓ T\ ~?N29gI$ B)l&KH*q}<"wd?u[4mZ S43S0LEvWeك`wXؤoDV#DwK(Ę)*~]8fH"Ζא6“cZw #M^6Q)9';|@CdL{ݪ{,d|@UoSB&*<`02/FzCPY..ز3tKb _lZKt%Ǩw@|Vi`<|"MCޟNK9 ens\5~ '-X$s_ݪ:wxu*#!f{~aDOW.lg&& H&'˚1vJd7 5$o=*Jg_iLӆʮE !,hV n$Nwj 9Bp=^!%fSk_<~?`{7@5pAsb}SܔqwY o.!?Nɲי^~sN]p%gC2xKk.zu*9Ĥ'cd 9%~Y Cn[Zӑf %BD4YIs27L1 %>pQ/ ^SxCCL/ >87 ;H b%O J gp0URcom.C5X@#T( &\R~~.N)E_FbB`G]IϹB ܲe|,m9GԱ.pH8BL6I&+xPƈ̈;Kҭ&^]۫H, !9-DowVO VuhRãz95s,[qЀn  yT75XF;po*y1"~PPW_>,~ɑ+f %;h+Zޗɠ]R}%FRci}xHԸ"mkS<-avGxҀ[62sV:Ũ501]9qZđ.f J/%8k} s҆:f3Oh=Kta.gJgpvv(h9r6X׹뇹2w嫕ChvTN3"-mm>.ȅC*\rEg4FL-Lį-9ga> a`y}n(Gb0q.g~bJˈIA6mi%B[Lt.]ꙦB b.yii͖oOv-!dY L##ԦR 7\r-18!0 I"H"ʺQw*ku#@ f]ׁK.Y1o97;1L{ꀯ~7LCO8&^uMޛa[1QʢĉKerz(2T6,HuW;f- I+usM}M<؟LГ7]'BSgm_h$λmb$m- 5eYZ+a)u]IRLjlئz#nZlv}2c>ESA/ Mx3e-jfp{P4aKWM߅/g68;IykeKxQn%hʅp_1ՒMW!C`ש&([U;Íئ3\51&e7'v^ߋYxXWgA# Y 0ɢ?PiPp mʝTi?L!1s^#{y$"l$BWGEd2XĭeH)xH&> xV|2!0 N%C2*r%,£Fݡl$/˼tǂYĞ@n˷.ƈ|IPZSebueǷɃ*iv/]QV.L{\%J'7Y藻֞b4nNw2):^1^U˙7(2^:W*TCciK`-6}41_'wNkw @0掼r&j&f pZ;-od0Ḧ\macH&Frࡃ#Z*jd?nC8#ŠNH[=kT 1acɇՊU}C\[r:-ΐ#GTwx:9yS.<;Rϻr.}*ׅηUTmGv[0"r] W5X0V/Z']Ѫ0쯁F:#2W:AkO H5KkEVcaDt_]SuuܒhDxe}ypTwg־|~%{*OM{YʏC|쬝G?ԻYB0LI' ٢q ʲwZGrp~F,)z'VGqdՖБ~>LPLMD!&L[Q6aK8-j6 l@մn5GyTRtZI)擤2ivNpǣ5ݠDNm !^i%B(3~#qt>8[Wj,/J)IZT^dj&tlz!#cZt6jeFЄTޒ}N/Ʀ8nĬLHuEڒHUvB$=)MRvqOX$ĹmC8ybA$]!=6\+xYIɀ:F$ҕ!^];j0(K +[k>Hu&CU\bowV2o(-$6 u;:3'VȮ`:^, +)h?m󭋇6k>lHG:c:{b\t i'Xr@%FtrPSU=ڂZ\ĖԪrqּt-H8'mإ\f[Ÿ 1xOP"G~5W6?9)!W) N3mXƗ!ANF+93UH^\>h.VOn@)ź_z+Ngn[|>;JpT9 #I^ק;)beeĎ,J+=R۵(]JxQZ|F!H kbo"#h8DC?ŚIHX.WQ։U?".uo6"#eԔѼ_Hf/}IIsy2*޽.6` TNYk%QB7=*T}}CS)A \"ׂg]UK'o܂|^"w<gOuXO; {MfZVP\ VuY;.G(-\83R2mG? i?%N+:Ͽsuv2OKv?wn ~"O[h'fl*U͵RYeA`osD7q(Q[%ze⼄iJN+602W:R[ c ZB$KO-0ij)YPUz緽E8ɯR8PlVV[!Ef#^93M`O[P:GuÛ%]Ayޜn==ĪU;Qm3u4ٌ i1jweXI?T-w\Sq8K!13зLGBXBIpN*oUCr8 v,Ti\<65K&Bاm%W^buCg4.ÿi;3VI?Y^ wl^~8mi` r_Ԧ舳{Qz7mSSG:(j܋zEd0:VDu ^mޜ+L̷5wN\>sKi~{A:XI^vN(/eަaM{lx2R%sy1,7K vxY tNs6);C{]Q_i&j6_O$zM"|L%%DIF@ÚTݢܞwL)Qm .-XT/j/vcHg:xZx0h;ԮN.APOs)Aq`cqq̆>}GBhڝ+mOҨ}?z㭮sE~ҷI@TeͶa}}jTYC ܨyvI)Qt͍" LPČyKgs͢7;M 9xa/AD)w{ ^t(e"t 5x?JjgQThw`T[bh<Fϗ?% B}*K#Vme/]*hsmy"Tm9yܔ1&u0z%UP95%$it)͐_w1AU&,ߕעMԙ۞!x"_[o? |t0afSvqibmX ,$敗~ I"K4<y o0I7R`*b5G wF<5&몤gY>l2nĴJ)r35J: 1as0BMuJ\ 0⑔dm_:miank1GhmCjy9SH-CT_;< I%svQpI.ezخBIJPoA!]~^.HfGK,yM_S3.ez@\~§t#;fsCQpJ$=*Dq3a$7ia'dƸL?>Dk$ |x]?я׳MO}02YM]cPawc0c]o`N3pJuԴ 38UZ6/.BYre4a1[2S(BN}L)-:ujf"NPisE"Fj*G])Og qq8=;h4|1{@춁9ok'{q<%!1[UsijCl$QY[j ^[l$ר hrb>Ep?'zn4 o$e+upƀZBf!FGTՠZU2 ?Y^+Cϫ.)X4H.G%`y)MlDv,M|>EZ~Eɨ'c=ͣeUxE_ ظTe/k鑸N  I6#7pCνܽHNzPANE) {MzY}zd2 Ö~EO7*MyD$`]Ҩr)Aǚ8-/C/=sj"NRDuS#]HM'i|2G$wù.d̤m70.0=#)Ll)YI9$--mTZeoD\L$=RW ;`&5KmJt13\ vPxfH*Ba,;vgN gUZvK6O3=JW"Y:zdY/fWgӍ<<_wijOJ2vo1tN!*zѐ,p6&F>UJSaǻʲ ns; JB@4 8KsLl2Cofm#M s[ۥM_`f/q ݹsNb68穝緹X'`Hq>D>t$<=={EaذOb3!ǕăV~_4:">d"6 :ǘ%*~6^! PclF+e֔\q2a0w?grv!uZ%W9* L[ (PڌCly&6%/@^g*Ta<8:{8R#GvpӞS P͗oќOQV`Чk=sD'yZ@Vjz"F_դہc6x?ކ\UR_O =x f Z\iRhbpVL&ɤ`c1W Nq +aPJ0@rNˣMi]&XH㟓4 /Q5"nE_[>r ?E{v(\Z r-Kaiitb~VǢD>dIe#8wo6vkEUkC@d b,ȿIU[Kѥ]2L%Y&K:x+Hjί/$jv,`As*A!N(@* uSh-l%m"蚔3>XJl'쪕Iq0y"tKW{gp;I&;_Z?W?å!Iް(,>3 a͏A4c[LYenCHgf϶7YCծH(},¢Q&t }_E9lm%r}EQ?yw DH;AU&:>K2 #/MաG;w[v…& ؇&JKTרvpPg!%O"!t13Qp'd_ªA)] 8skwPELLs.䮂ܺF*vM#Q(Ƥ[Fے}O7ɪӪbN(\=½9-lw8?8$G FksF z)[Jw{k9Y%gHnwvw B2HF ~BK.&'mVZ^1/ ǚt>h[f3a+vǘ@v8u2w{ .QJ0 3əG2K>yAc_ydVhhzfrHQB\A Q(oųH}w~E_d?S$ܴ֟'nt=@D,k^i6iQfn͍XIM9ύQh7vsrQ/cr'L=s!4CL(JVɒFO6x>KHUB_E$䂹 r{`Vߊ@JЮpx60EaUb=Nr!N=#xIE&-V40a\jONnGŠ#Tmu Cw_?dh@W^`^@tn^0 靸CTgϯ˷Z,WZ2q&67-$@\e4dvr5 pY:}t_*r(?n=~N](%Qv/!d6{Oח`+EF?gjo]wvCa:v, Ƿ:2((p :gVKoBT#Bб$ j̈ ʑST(Xy[C?F4ׅU#U;hx}zk&# 6d ͤ;T@&/mB'aX'.2۞<_SN>b9 jX\-dl ;Dqs 걍.pӣ$]z<(=3m\pq|AaŌ]_ }gm$)sa$gvDu;lWPk6%;( ?n@]nRDz 1:(\4$S茭ώ(5rv5bmLhW\P3ҭ&='w{䇪,uwͳwI؏x+yB B70|vփ0ejڙ}K\C;y)W3kg3Rb :%ȯ/Sba/jvDetYbIę]]MxH݇HHbd9970p`YJ)_ b&oj"5j3/GbI}K_{к=?6A [{S- ~ׁownYr1ݤ,Q%S]\Pgk@$?%U=m,šNZ,aQN X3My=FQܗW!lDpL^b ̸j~~ @@I9 qkR .Z|t[z@1et19OҸ=AKe7`]2Dשs-&y'lAѢ@YY}I֝dOX֒iוMT-V n550r8ꉌ%MJۃ'VrMi^"uJQpNR78(׳yLh,o=iQHJUxdǒVWZ`g_UB cT \wi_NPY0F 頶 G)wp5FnbMAÀos ^=s5 ICM @']zēp1i榵@U%лL? 9c`ڏ~)}.d5CGI.9 g,GIm*htKpl{Ooy ^#*~F?u@AƩ o5; Q=.?ZRtBbl, 0SM"eH'tI%qP)}+jRRj14uNKA٭S.3 (87SK>tb!e7V7ؼ{,x]S((7jN)b_ZmMVHe6;&Op1joa1Wx%3_6MYno߿I'D!dLAv}y/Aj76(S95Ε8.I* M[@ EȈWȐF'߉Nn3{>O$Sv\UǼ1_))sbCgt8 #*MS.%!L ӈ@8{(SA>vAKd^;2U۞qBZa=q=fNIY `4 WbTgq]%?) (*>pVYV#h|k[[+t#;,aES+Lw֔0at}Py)&r`&t& ;mPX,ˀNa̮$A/d^LL,ܙũ\:|KlVYb ɏܩ!HIlv=8e jK 'Oh A ں^6 P5i%4#fځ+}H{Qޖzn^2=:VOr^tU~]) r?}0B@9ldf("Y3Wk4^]{Q+##.v`0iҢJ#Fo3sHXAďq\S: ȎBb٩-rO/!\KoXoCqo4WM3i%l@ SDk=dZ4Gl'$%$bm?UR&k5nyAxF G@K&y.D*؀Xz nyu :%TMI6J`4XoK>98pޡCdw9\sy|_ Kʝ$g>u$.[ԮLB=vnMK0&~[YOv*#SRKV_$&W`j ͘@ᩇkw}{݌Dڗ=U 뢅|B@. ~-ˑ Պ9X}'Ÿ|wӬI*7%nZ7~B#x78xbء)Dt5twд `nT6ilIgM+йuwoPAy\O|(WWRm-a 'GKi`*ɩ/ E{oMPJHd E1ڭ`AkлlVcB$JK,LfpWyPn-!%+d6kcu^lhoHBglM?B޼pBY-q!?wv皺U٘F; kgz'FTm}f1~JHuXbI³ۛfRD,um IiJ4tT12BRT uZ0/#L.m{ZL? a`"Lde%]놟az,1W 6h,`{:} py^1ge kVOՙA DR(M`있qS}sQ$Nh? B~{ވw.>x0-N eY& r"3/PkX TT#%YY:k4 <@րf%xPKMվauF,hLAӱ$-P0P1>MFh^Q;n3s/kzh S, @<Bb f&:k$]zs0:jdkY/շ2ݍ1$1 QĴ {٫%T= <l%dg5j~#\rm4)\ےQgu9(7\I(HA}։}~h&qq!p{TcEdIFnߠğD9Vƫ1W.1󯈢h\[59s@b7x%.*ݐ#wM{Y@*l_ȝò]BeJBΟ$Aމ/`]]l,C`[M1%4:)gtɅ!t]ZFb +ڷ~Er\pJVKlΧ$ZXĔ`)sAe h&%eL,f)(⟘ts:VцH8f¹kX3[u6ݲ~#mv@c8463c+܃~;͐8&E^W LJyJx-x]]n[h,+'X% FgE6~ٷ~J3s&+]p?qg(&G #?.wVF<0Wln~}_GvQ&x,ԍ!U l(w;ٗdn阚.Ș7 [Nbׄ`F\鶂!Q2qN5)d9;X 2 YV^Z͔(2\ &CM26ZaQI"d0h׽'>fYXhӗ6~ǽfGcgT9P{gX?$xZJ@nI.@![>Cb袸2 Q.xz;v)Gfp.)yAA%ʬ 1[-3Zc.C8 .ܕ Gr Ζtj5襡s侺'ٷe/R*3y3f r7'\҄H"NՆz40>zxn.X9qEׁvV:v]=R& "N5r)5R57^qD Ea5/2 [NX0)^+vBS q򽱈ƶ+nR}?hd^U-U]cF6<'N_fEO_ٓJ9G~{D rA}b*0M^ŕ]SnwXASl[tW`wЙPn/pBԏ -3btgk Ly Q8*}vyT=G$}G e| }]YYbQ%vŹв!W))`78e$GB(1Q4H3:~eL1`#\˂Îq ؚ\@*R ;q\^ u;ǻ x3ڝu P9 fd>nRskJ/֙6Qk\IU/ ;T$j7ZcDDb41Eޟ fb{Ʉ1* "Oyhct++IJjv򦃝5 J'39T%yy!{ӥ=ƴ٦gϧ1[Kaʨ * XF|q#S}SpjǂUurbͶ(ߞ-ܩ P(ÔEd]Wk6G矌:y&nC oq7{zb V+LTφzjIr[mq$AA~0í {)1B[i<9_i+6,У݀^yk  m&h^G{r~$EG=>;~J*n R{nf47!k$7T+pxOLΌ,7Gr_SrxZt{Y*@Z0Q8#\fP۸J(gu+\"r %RNzzlՍIodX#%KwU #2¯!՗HIfx?/4s13xy$3 D95agBk`KcRC5 |O.?g9ҼWP ʍNdNdD\cLL]iuwb {eLpպBLMп*衠U x}!*دENAXSnaЦӫ}Ff%W=6gNyѱ~\z#]pc_廷sNk9W(ST"t &>с2̤g4VM+qRgyoWʇkڐ{.bxӆ\]$![A*Uoz4d8tuJ.7AQbf>^ϼ0Xn0V( ><2+Hω';č]+=k.=w65|ix䌫Y/c˜mX.=F% P1>HV[}m~`:XP&P6b]u a$WX Z, ]R^"ª`_[Vz#^NAz^?gxR&Yg-+&uo38)qRszJ7מ s44Hfz 䲗 PUQx!-oLr-P.ܞl϶(mvK0FG񧫳M3QشSgT5ĠVj]2v6Cp.If 'ѮDa1 ,eXC^S:&l^ߍG2!HGf8wW,yA4L{M~m $p|9΄(gp}41 az+M*%α6n *UՈo:s*S`FLY^KmQ y]h7 OyNV(cvw'e؀2nW^}ǭ|ffO(ҿ2+alnβuT*;%Yĥ a2 jDOz ?w=,6]-nE_}:^zjDzMy_r/IQz?f1$Pb7,q.QK{!•L@2dXr\vdHfv">WN"R'~i;~ iVKVqlxeAMpC)ils&65K# .vݟ '>V. :W2f!h >zҭrҞ]pF7#4-2HKh*!ݐ~tls Nޑdo]oh[gD_[2L ERN~ * _xhȬD>˶mjUd/UJ":#Nь[k{=\pEԼ'&;asRኹ[UҦ%#U%#qh[oE9P4aUb~ܤ; ^zځi*^XP? 7f3le|J,f:$dbU_"NFn_.V9b %("K Da7?<(\\q'n̨01me ᧫c!;$kR+,/oһDvw=`(x=~+Sq{Nl@0u [,IgFwWxPIoSt\3eͩ7rĺgutnԉ#eEz -HwƁ+MPLW7nxi81aN5<#>杢v;wjD (gO`W,u#+pR%>WY>B}GQCcB 5)-eL {qG{.zG@_̹ ER͏`"yyU-)^D8lO^Zϙ KVmR!N<˧jDHEWCAMN\%UNt=" kq@B8%|,=ITEj3KT89ö(.եE4kg(pn|!!YUrKkRy9F CfX8/6TXgnZgsB Ӝ&$hD=Li)%K@h~敳M 8-+SjJ@b[v?B'9CYy7Wu@QU%Vu GEEMV @W-vih3ͧqh!` 1l``(ϗ_=}ni-Wtlcr>sH#ngQU"啇 ~>[?,T*ke#8sÁ!|<[Y*Gā8!ژcF}_ܥljVƟNNU1PW-AREl4^ZDLHBk!@lGa9/^uf2`zf%nҺJgJq2?ui?QǺ&~pFZ;1bd4aX^g|Ƞ9'D}IJw?Vw$9k,`Ś-][%Wuom[„TKW\"^=Kb7AX4rVDYË/DX쳙j*6D^K=mA~-=iś 9HoQLpb*@j~ γ$IcɘE}8kbC )p>dC;+8@~OThZ J mUF5V&$įQ_ӑx1aoh xCIE?eqFQbҐ, )1@8zg#rJ-,0q]h*u2aBGDxᡓR%A~e'-ؔ+cB1MG40NIJ:NUy~cYůHJxUՊ٠;*jR2]BV.&,W]|>M?~EX3YыsQ!} ֤ٷ*LAZ5 lMkb7;N&:-Ĥic| 0B  ;-lSeRbCjŰfTUXӎ4Y韾;}؊QV)Z*6xj+BT,.Y~#]!;ۮZ>+1e=9,}҇D(GT=6uFW3Hh4U1XM~LAMBh2!_7mm6VĽEp,KSWT\Yݽ[$WGA^z迶'O<+r]Yb+<$!Tȼ,VdP*~UqQ`~U |̬/D\ϲMkAԯi.^seА(<7MVg:Ӈ烴:>qMP&*:%0rVl%M@x}bUh}Zp >tؓ-6cߜ._r"uzzJčuIP*bΊQaD͂Mn+8f Ԫxm5{ γ֐w,hTmgӺ[S4  @NG &Gz*:$ E ; y>Gž_ߋqG.%=D  w;6,  |0oa-↏wxwB<]4dž̛?j|]&d.bKn醈tVM+—BP{jM].! 1g#RCeeC}Uy]C$`20[bTth+wu|d^(Qx^yuRgޖٍG7I,_SiկǔNiMumS`sG`+nh} cRPkJͺ#I$+7RVţKxs\G{ֺm@ig'qit5~ðÉqYhb=ʍIa0F .\`w .#eԊVhJ/nN{p #֠6+ Hj=ս䈆8cb4jܤ:&%cF]Œa9zh$ vMM { fLPV#;W[Eao9I׀f  ֐j(sA[w]5ҾS%2/} 3s.O"fσ+d _&85F<,%HX@HVӑ'}85̼vLEnA ho|>Fk :Y0hŻ\4 c l___ᅛ#x8= tP)p+FW6mtuvq#y.Lle/|庭!-# j#T7 r45J Ê9_Ɓ@W}a2=tX +׭o*\f~b,n[}W7U@yTFjè]= z 8{] \< rn'Պ+)}Ndq8)J> |p 1N'sSO/Aژ JJ|#>SixV.J9] Mk۴9<?Qq5\!Oʻ ڠ{QymTAkj#J?beX/&1%ˣևV Ie2շtHr0NjȝY YZ