tukit-4.1.3-150400.3.3.1 >  A dp9|),5-]!Ⱥa=K%̬.~>mW/_;#n.AV^lZU dh[!UڅMhKj5kj]]bG; c1|/W25cUI^ gebAC{I}}f_sTA9"շ˻,1Io\0DOZ_e22b7894663f657895779026ff6b7de3e61d07d29d4764267b2c97b8b35ea525254be1782c1667a345f58d3681f54b9ed8323e15&dp9|ڠ.(DXjslU3>(3t +CV>8)5@ao.A Br·9$sIeSȚE hx`0 gʼn.oC$< +`CV%pI?pd  V -9jpx             4 f  t0x|(8z9z:bz=d>l?t@|FG H I XY\, ]T ^bpcdeflu v wh x yz $*lCtukit4.1.3150400.3.3.1Tool 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.dvibs-centriq-3SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Basehttps://github.com/openSUSE/transactional-updatelinuxaarch64: 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 "/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 fik  `'*F~A큤A큤dpdsdsducvcvducvcvdp33243f2894e67aa69b0199786b3573c407ff37ce2da38da3c88cd2e7ca58d3e6f620c04d52ab0add34cd869560bbd0c96a20030cc02a95c7dde9e9dfa44b76d8db4646b22adc3ee8ef6a5ef7ed2aa55bd1c669b3e4922d5d71636f1b96a9caf3ac9d231f176dde83e8f701171e53809b90ad7c77b596b4d0490de5d41aeff8afa5d09450b2c0293d56567f7e25af230e0b57f89dea487b5250ee055e12aa0c334ec94987f3af0b357c6af2280ebcb5b352e6c5fd51f4c33eed6e89d8f20ccb6cdb296f2f7f35bca3a174efb0eb392b3b17bd94b341851429a3dff411b1c2fc73605788320e358809a0b964dedc289c7780da951f99e79f0f8ab4fb2e9bb3ec92rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootroottransactional-update-4.1.3-150400.3.3.1.src.rpmtukittukit(aarch-64) @@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(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.3-150400.3.3.13.0.4-14.6.0-14.0-15.2-1transactional-update3.0.04.14.3ccvc@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.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.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/shibs-centriq-3 1689953142 4.1.3-150400.3.3.14.1.3-150400.3.3.1create-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:29899/SUSE_SLE-15-SP4_Update_Products_Micro53_Update/54a33dd48d0544efa22bf1acc4ed1887-transactional-update.SUSE_SLE-15-SP4_Update_Products_Micro53_Updatecpioxz5aarch64-suse-linuxASCII textELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=cc41057d5ad1159b8f9b79bc02b06bd060138c2c, for GNU/Linux 3.7.0, strippedELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=0c3a554e238558933d9a121fc0a41184f86f3f64, for GNU/Linux 3.7.0, strippeddirectoryASCII text, with very long linestroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)RRR R R RRR RRRRRRRRRRR RRR 'Dqw\8utf-89d711900f24841abf1609c6bf3b3006eb65f77e8f993a2034f8afd26fa548b7b?p7zXZ !t/Ku] crv(vX0~rHig/𡚠=Z)N/F- ۓ+쵏'h+ - #CUJi )skN{'(TBO^bp|,JVNz  xpGVÃ{_"_#_ x}/+Ne1׽>`-!8 E ӷζ/ޔ;j*eyj#X((zd2STDWCg]~}2S3{?IE%J޴W)X֜-VI pz.됔N.av ƀM& !#1Y663Sr͜OL⽴ qP\Kܐt?o2wF-D*(:U"B&c TQ2ghYO< ,-f:Ii1ݙC6CxNYV@<泣a#u:}8Xw>"8Ƅ/2)5ʰm2Sm< X-p+0^ j3Ns'H5/ {͔ڧQDF2Y=MChlkXĠiuOMs>5{MC/Z=WMQ jiA6kH,Vjn/E֕!XNШIIH˗dngS4>G!#'u}EۂS7Ǫ9>G?rAQ ϸDUr#>69{k :x;Tbf\7 b ~w.W!Ry?Jnx=b E&n;Iy8&V==LvZ|,b҆ƻVnGWm5TUeDc8d.XrN +qdS# g GȆEG}9E72)0YVfI` cOPу@ puKW2K {hB$qYPD|l:܄Ni)w?^ ]n/V*'KF"=vXcdTF? $<%9$_pQuh5~۸K-)|dѽoxDhNE Ɂ&:H7-P\7S (Pԅ)?r CȢ,aYF c, t@I5qe(\V&Չb#4MQLuU){<#|^#g@f :?\n܇e8m$BPz(;̱\2lfFδ&`n-;Hdf`OƉ B7?4^(2BnE8҃( xcx\TT8{6!wZ9}YUs0 YR$:zJn'4HP}㒏ϙ` A3z\.>ζrNԽ?e$$tq3(A"8H_ے;>/]6hxFnMлveѯX'h\e>aH{l9g4"Mo i[]YedNi39zǬF%9 j OҒ8GhبV+Sŝic Ԥ[q ز^P[)Lޞ#t6wҬ8,y2RdˍtnRO":D0/)^{lHi3\7"?mma9\AeBbO n0?Zʪgw!X4jqdz:NY$M^U6MʠAF^{-Cbou ':/!?/vA0 !#'kƙq3DeEq"G@#-6 lpiy4[aK$ӛn>5swAWo*>4jAj$PY7l (3mTwh-1R{{dkq.J?1' a5_شDf]-oyȊ23%Rq/n0ci'(u͋!]3Ќh')e[WZi D7ϼ)+"DNn&~1&[ ܜ5PC;-:HSY7[!5ɒΣrخ]~b0`<^ں减8 %[ /'|Zv}R_"ߣ[GyLv3"$=SIZ{ % ㅸ?aK![I{Mp7bf~m*ԉZzA}ɹHJӏ oJ޶ !ܙm3Ky+j=\MC#+[`Oo'  v>ZadKd6|1Ϩ6SDmRs|7ˠ ;FDg@rrx3lKc Ǵ&L0f6s#H%ľs)OsAD5) =^=72FzNi?ɼa$b/2#ذQ8p)-@kG ^O@D x|'r~bu_Y $o%*,W83Tֱ-Bh֬ !g=mh~"F1X+wp]HM'֩qWzW} [hm.*1MbKmr_:]WncٺRWgjjPPP󪝯ח^&[.2K֓ܧ0WMzZ!xFOr:5Q:yY`U*ϗ-,3UKN݁^;D8Qj KK ׁ"iHr@Cq$ oVcy Pnկg?CphQwO4wA$%L O<% X}*.Ծk:4xYx>Lu@mnz,= gG3ӫԈSk Ԥ ?[&c%n__IɓÓkໃ,b8d8kw)d284;  ~O,n%@$_h&e}dW^ SJG B!v곌{e/O!▞pHAbv|mfK়IrGlIlOͬ[`EejPuzx|oa~8$@hZ}+lsѫ"t'-9ӔXq'&#(zݲ hs Z0&0U%|/ZQo[@rا+`.GP_ў[6gTۧkN &:iE=&d 8UbbUbjGw 6@F nB.@T#@.o@/imx*<ҨiBa+ H2ʘz :K!B$ECfź szAfΑ,Y%C?p!]p(V؞ 5m4>VLF숤=w)ܘpkck6*`׀X8Kٕ^uw@+=OVW<<0[،me!E Pl#5uWOJ-XSFM˚[ӉM ~r|-B{؎Q7` C3xS,wyGL GZWx'tEv Dż8[{(Ru~[+^L;gDJ{eƂnj8rk9.$THLќ>V iemɍ#{^Sx6TEufPW@8S4]ŒXO-?{dl"+6v4܆ޜ#`fȆͅ:ތ H±]kEVp[UB鐵 NZS:^(F5 úG+\TV5KtL!”5\0yDj fHkk;-H#1}oU~;O %tLv9 h~ ɷor쬯RCX_فwљE/&8LNk#-r>x lW+NE^{B'D[8{@(9|&sݝէ/\oG8ޙޱúNF8>Wɻ+jH&u BJT1iubW뵎/(r0 ZCQu]d G!ҳ!+}pF= osbB7@~vȲqcl'; G'Z_[OI1>u4;J f5@3TkLNX֗_Lj YYL}!>=p xPo+v0qc[<08hFz4GiPИTT ֕9mB3$|c%74:>؄GGÏ<ȗȒ8%oZ:&1'\D4&z;i/;i.9寶s{Q2xz;ρmݜ?h** (`;T K}~_|K=+cCcSAh gR21=7D0Z}24W*we9+b= yr/x}/#H9,ԫ V}ȸ6?GeҴl+}~v{w^EEgsUpEU+'ȁvC:&[9r[mvC4`d?7A_8k\Yu!-L&I jt%9,;t ?{A~J25fKC TV7cT H}BlsHsgzu&MɡOuN?hL4_tneyU{1F9U]:ܤTDI!$m[JBg]T9DN fgځ[\bЯ>B!sP3n(>b+ 3cț,H)1LZ>4"P)Wn ]=7/0l`ۖc숐i|]5m]=˹Xg%0;|?Go?9 /LhZGػ̰ǐw\䰘h;@e(]1Zxg: IDbeK`;z1@2VEiw9+I=SN<R6hP F\j$38~֜g Mn=s<3*#q{xSe< @~[3n+xdm8jfXų@\d8Gvbc`)Zƒ.Η#uxÈgNA6?+ PȽ "_u=3>$2F1\GN ǰW1XTX8)4M 4- }xFyGI `J9nP !uߘćci:Zt±gZpr=U.FlɴAޙArTJǸĎ4q WeъF+X@"5Q$hNk7Ka4Ud/k1kCӈC=oU#} \CPobv(tu %; ?~"F1Z杖cJI[↲ 8{P$J v!}~R5V{㗩XҕQy/qZ96Ja` ٻV^TwWj`+E2KF>nw0ۑOEnsf Lk^69IlYȗ͒u̧fi1v* ꊵbv;#E"HrCwnxx$:hAf? t"L֛/GEےyl72&bŧg7% &P^H~ó*`ȆG"y V 66z7fK͍I0vM }*:&r-5@=\TL8^h+yj ]-uFVX').\3o`ާ[TGIb*m2y{(YuG+l+-;}qM8{-_}ҵ\,# P_{"ކ7lȚTe7rCB|M_X*>ҎcRSXuY0EӤrOGQ[w%%̮%nQdNd?=wyٻʘL?팬PhʸyWWǎƤ"rcTaq^+3cWN9J9b,8E@`._*0%q+ ?*ke5|8͝]0N+U5<8˰gG\N]]aNq>'벞PS.U@SMiDzFwVpYL05LIz XįckU0=8 a2s&o,7bb/r0N5ΞťxWF1 ~5ٌLǵ G#?nS4&{F0"o ;{dVvR֑Sag+]桄Q{rRyUjOWyb< ef7G(EOeCć:P/v֓sT7ZY6{p?X&t$pm멛IX]|b`| XcQZPIbVrq8 :UjPW4V΀0hS]sg 9GKsi7B)OFb/x9'e;F8`S0exƀnOm'Eôh,JB4S1Ct9&'\9OM^T=B]u*u:5ݷ-\Ql *9Yr35[1 !k47]< LPK*ۊzYV6u=(J3NUVUH#l;q<#{GD{kqbrl=ݙ$!TCQFl(XL݇)+&>$嵊@cZA$Ӝ$DEU.GJh TJ"PBd* uGr{!3 䋦B+ vgX7B4V[<ݩ} 1:yzEMjMW x$ܑ x5?w膍 k:EeD!a].JB[^_E'ʡ@"knq}`n:*SV_pR 'j 23մJ:E _@La} r*@92k_>=*Yϔ2𭢰x6{CX1[}һ6 j4@ar84>T#E]{ mtRբ`N!]!&+W 65?Q\U JYJ@¶XeRuZ _!MJ7voeBW!@1<8:X6UN8riHT '?A?:s]̙Dvx|dFNksg0.4^  vom$Ǔi 깬 VA#Q۳.IZòޭ3Ѕp+|!E/ljW]]h6"%.'#; ?(@2r-^opEGF-i '4dm`7сNsuάPSPRu`p,yKQRnN {;8BB+ؼP3ݡc81 Vj"y2t@CnDX)< b-=.FEz Ʋ>b~ٕF2!xf)׵Uҟw!gu55RGfP`%K]!Bz:H|x3^0 gBEh+ݧ`եy^̴,mxGX |k/!(`kCuf.!i~7d3fY-wf3su'Xx 0|YF^{_gDtǯ>5f&P._@OTuksK]e c]0$[sЂG4q]tY% { #l6[*~YC4'◌b=YTM5H]8kF()qebMD:]# ;g)12LnW M.as_-v ݰ<*&b+eGf @c6^$ĵ0m8 {[F|мE:Q_NqO2:^u 9?C wj>یbsPCCK)3Bhn FVhe\ +t_I(Dq__~z dmfinA8{EAom3acE]ӿ77Ipyݮ&ʱ TQNo${ #"\s]B7V@vͷTJ<%|6!jХ~}EI!{^Xj3D)6onٜw{۴䍇>&Ti;qv}HeFY Eڌ'BTjZ^/GkhfrB0FQX{ rh.T_P A)S]rֲRsvR:l'(@3ePEXVQ __`M@lDG>8m۝%pTgg Kpe*NHLKk8B2ͤ?z_} ~I x5x\]+ QFe-釠tQӺ3^]`a,("1NBtUk@ھa4jP8ՙWYq},Bp9_G0n!߂wಹ}BfN.Ta!jSbgm@HH!}=v ͮ_ڂo{p=#GwWv':\ta^տ%8"gS4,d8=U;_ lT[BX$,t8EmDTJުp0ɒ՜|1sCFa>(j(dN$[ 3h)0A@R#Mux^l/S0cQM [$)HĚk шK4g1T(ПV7D8 fI|1T" /4v a˞[bt'tjʐWFl>s"cTKX?0d!;AdĽviڭ4$R͵?8ڕUδe +iZ !ױD޷FOTlùyػUdWC>ylW҉"T;Oa2 7)fJI!rH)Brt{EO>[WbzbbO!GJ>(JhĔ6XVΒr0\5% SBYaXXx]jbDGC> yym^VjMUr/ixq)VHsS{C[[Ie ?1/":7]@\$ˎP[`y!k;Bhξ>}cqV~wM8n2I^⽖m3a_ͫQ:@vD6M`et.HP%˰">@v \ ߦTKHqɤ(?ª2 a%=VLt$m꼊UV3hc_."[EhAU#:AHT4g&^'`>%=wx*;`Ҍ's/ImtXgb U×kZm4UO]?t 3 #b%7) `;s 00_a#N%#ۧg9)XGVwq`Tv)#z rg#}E-=w.Aׄ+<$ ynm\Ⱦt'FvO; zL^&Lp2*_L O2Āxz˪F*9}¾ePgxCE\e>}9WW4Z QeiN@Vq6 Uɓ{?&q( ˘b@MpCᓔXq]9C^R'c {U̍-֓rHp^M * 6ԫn_ӱlj\SދiI iY4z!C\j#^A ֌uaghxbWz`$ϟ?$[oy)I|ZvP*]&Syp2~^+񢞺i m-bAjIR;:LU1߿nT.˓-e՗A$Qܝx"v%H Bg*cd9ErGN%ۻh2-J;s!LsWFm)6H 55ao TR5Ť†:{WU )9&ʺ[ib8L/V;T|YXEVwlwJaZҋzҕ]5_Y"@D$!Q}qnAY[~"]Fs5ͤrRtHB 6!BYSLn=1=\n͗ ܔ;<*"4Axi4M۷ .P{4:҆T9PZvv(hGDr*dɤ|4 CG6><34VuQ״tB|%q@ֹğrSJQ RhoZnuRi Md-Dher):=WO4_G|qih d Tk' 5""z;vY<`_\ˏ㶞;ZhIᄑm=u"WMqɒc1BtʉPo:FOzqzq47@.pw [Й[GJ ̛JlꌏÉ70 X z$MjjQt^/?\32vʋ|vC23HQTOύ H+)*qg ɱOܣFTmABܨ _G ,4Uitn斛fXsWF{^]TI>Q'ֵp; #ĪEoY1$p qZƘ A:I}"^Ěkbq+SG~P&{Wt=̔ƝfʦCp-_5+USlVɝ. ߧPIS_@BDPpEf &:^]HKT%k~k QXg_΄cFi, Z~d{Q13wUd3G3U<(gZLɭ$xMԬ j☨*wI/uTުQ~4<Kw<:60'RK&t8&5fϥ%ӫ; A̰Lgљ{D |Vv6VLw< K˙lʈ?  }fqs~7DQ(xe)"WП7Ee1~ZD[xBԪJ:FhQDmF @Qy l z-!U9X*pH@6(͗RoOܘǮy~a`.`s YYֿl ;ngoq(K}?F5J*'}NQ xlrmP-RO1v ?ԶW2ѹ]X¿IGwq%li0M?ҙQΪ(!ddc) ?&7F , !7#㑳Q)&PocecV <6?~e 2]@[ Y{` "&1_g3Ĭ5>5(%yw R3pft&&p$1ʳutTWf)폏l@刻A00ǜ, g'$U<, |Eo2{&šM7R}޷ Yb&kH pax"N̨lѧ4X׸PyVCJwe7B*GU3W5=MO<c7aFyBd8Z@TA,\Vɂ|N]w M?eKO5PHnJˍE=&o*&#iݝΔsǝn,gPrL!Fmϟ/RҜ/uG/MR}Z|NtsOAꖀ?`Wo>ez$4I 7Tuz S3,_'Xq`At&,{ }hLPsKX @ E#y%Dkۣ?";y%/;tS%ﴜy/Q{¥<?L80(1#kul TQ 7.78p[+x@ڍ@Uj; |4rQ>sW Zy_d \#r P_]<~_Τ51XΛD=ǎh6nR#r@KSE`۸,4n}~:o"1 :/aF+sN L.ZWxQfyx\{wgˍpTWVBZU  "YHƾ~v 2Pr'†e`QSwQIE{q m7P ?&-wmԎF=x-YG\ |yi9@1V嫞2 ʤa4KOBNG~ױVw{tt^ n/[2}9o )q:^ 9QׁAz!}o3wv&|!bûF^]d\CLb?b0-**ٴiL_ݏUJX_% D>˒dlNA#[A$Ve@3|PJJڮտS~. t"`:U<^[]vNKo9Lj\E/d:deYh c؋fB A!3Kl8)== U D])|GtZAHAh1OcRGJLL-=M P?GCGr(1z]GOpL2L~̹}Rb{c1zxB5,zv#dY vxDQ۔Y o0jP:AxV<< ۞cUj~$7?ӳ3$KH" M%vMCwenh6z;744K qҔY|T ÿWiTU{l:Y(8*]%0PNhlyA|K;u²7T9 G{y[kd@ض;Z,5G`,o#D$l>D.]u3i' f~aXoi.GpY[Ax]@pNfb&Vj7<+(Nd@$):>wS:1'BBDCΏo Fp79bXR6RYSԊ1[>2[Lxꦙc0g][\ 9wEZUT|z''[`^͙7%ݴU Lf+e(2ѹZҜ P\"<yfl&}ŃQ+u[^C,Hv:{V8ڼkς#t/Z,/xA;lªᇗ!uߌ]uT8\:0ўPHO@Q7! ⼶?wZU@jSJ n,dIh 0 ~GW+ ?]<=2R48 oDO[)YcDWSv+7*O"$"^( ǟ8{;]; lIPdqvE+)*D 9*̕LϮuM8Ey~y߾m痲2s|"\iǞ*ǻ+KA6 Np"HZ;NRq)76uJO?f V0 jtUK8Xl^Sphj-$M4|/1hBZ)2 iŀ I&M7wb%{ﭦ=ruoq1Y9BRA gcmʊ9Tt0(&I VzQq /ߐ E(u5f]1@C|"JjS`g_׌ѺKOBNf mͭnYxfHcIel4@+1[uC bqXyEj}5ΰ6)fg{ԳzDU?ȯ ct4p2 g(?6nq>CٲHRnb!Z k݋Uij?22BE]1y2{;,B>oITG閟J3W3r3OTzcGy~=|+//n +1l0㵫`*,8\gpShu'mR^^Rd"4WG"D/B%cvEqLԠD3^At`3mg;4/p ZHVKȚ@Oۼ}ͥ`9g=7*B]n(J`|QSS|x9 G*^]K^)_cJ^ k05#6B(?x@-gDX 4HO '*^Wpw9 ɓ-d>I WIv|MM_ZUy Кv\: BT&8uvcXU:-vI )MiD-!u1RU!Av0,UfGI[_s'*p*leȝ7G6A Z<:T.b,;0N%o4Mڊw+]5{a(币WՊɘe`x>R}\Uhq((WKL0߾˴)C/xυ|QQ)1MíhF˴0sn&.~UZ=NKx1]|gHV*I,XCӻC@!54)uvXQ0ShY*9MM\rgY'¤F!,j0P3ClhlN3%: W+we$oW(j*ȿ 1 82j!T4ݻ(x+ @嗪2-a3V!`$o2v>}. ʹL%H!&ݤ WV3zd젓>*6Rί \m&c; ˂1*6-0J/`ͦfJPW 3Uɇ)<"t4j.DU:6MD^4o,lUR Hq'i4:gIcRɇ:IwȌ% vB4s[noS 9TP{#e-n҃Z>/jX4zt^2ӱi!v/A%~S!dÆlE%SʍDNʕ+C,1ՈUs/RV80uYDtH /:d̫L- >'E^ʴj"xͿ%;]+#`B\w K3"]TA6q^jqFEFJ {Є.0x e3Qr)}9`?3[0rqѦ:!Ao=l=ODm&bWƖ椹&ba2ƺ.4-)5+ֈZ⊣6FQs:WA&i'> ,!z|DQBӡ}bOW;^^0mEa qm 5"N1RA dB9VytCQ, RWTdbbv V&E3_3a$gHU? Ơ^62%@:QQei `5 KoBAɽ_G2\DyX 9 Ч,I iJW\'w59]p]Iҁˇ2<5 a#Eݯ-lOv A`39(Xx\r1 mw>Zl?#^=$Ώ'uW$B]y^STgu>`g_BM~.2rA s"vŮnjSd:nim1P>UrYv![?K!؄~Oثa`xt[uI ?g 8CI|+C3=lYEX;!JVOwLbT :5鈎ĐMG_;ZQ;=:(瑁rw8XϨ͇G1mSIqe{}$"ȢV䞢 Sd>|:2_tQ+7Z*>`y/z- CDC#|kfҔByj'S8-^ݒ]ʵ2PU+|^S@&-DU>,m&~@ۆ7yzr7ZB>Qe[ÍZ\_UAK0mUCC%dO鴿 9JdBڀm.IO>SEy*fs]sT>T۶@ ldQٔ`LMd@ӑ@6..,|w9|{L5:0NVFA=jS D쳶ߏbYǷ.E%eYgxW3q!o/'d@YS<;z #".&}U2eGk@=̪Y8Hsj~G:^)(w xыݦ2Tb0L݉{4:.[HTr¼2OBJ/;<񥣙Ő Gv诊 B 3]9M d14ZqfY.d&:*eS4kJ!|@_@~X(xl߱rS Wd`J!5OQ2؟筞ҞNɣ^ Bj̅D1ј({673ρpDXZwd0VV`WbSlaTi R1W+Xp(oSVjN-Tjh^em8y$,ܛ?U d>22C;mTk:o˾o#QJoe'Rԣ'GAXvs}_¹aHzjmT  j.=QX*8!/ Z"u h[, 3[>5X bmYf:xO`p?/,p( + `|Wς vEZѮtRb3#TҤR%6\{;s"Gg''{]Txt==šGeqR|@mXYIka&EekӼɏQk  notIϊcGzJ6C)⛼z[W 6^-"Z ''ً. o1'`$#KC3a.{GgNeb{c+jȈsinA!<5cZ/f1/; 0 ˅57[e_,@"mzwR ^l O5#5Ra Vܠ3mj~أ/ 8瓫,FYS -*xԣ!D' o\"D'xʁX18g*e񄱰{CZq+'0DSuɖ:/۷)EhVkJV~pmC[ bU*b3S_sm205_> ͗cܼ,$j.b<Ǥ,-&\HZc2Z@}/ph8m,;!eu;\C݁zjF \?tE7hIb2[*k$a0s%|UD%Ux٧+9[Hͥh_33Jƕ?G5^J_e@DžΎ6N GC"lCqUEu`oK* A83@GFU^AϨu6+¶C~`J_#9Bq,:Qo5,0|uU؝cӢ,>(#+>_&Qu\_로M m^'K 6_V2@>ő;QCtSdH"(}ש2lq(vn n#uP:Hܫƅ.uB>%VN${÷14G\9'?cc^&cӚ1XvQeV(?Xs][A`|бBmcV= U~>-ѝN`^Lʱ\eԮ1F?4]jS\ rUS sh$?ĵ~9D?I/a3`arOqwPAEJ4ϠPrp#Wa[DXjQ=X("+ 0+kղs,f`,'􂸶].mS<3|7__+Q1($X\s; A.;*2i jdf~B|FzĖ6fw 9pbkʜٿǧQ+u/ N'N?t|~ 9AQi)qV\ݱUOۆZTUNpxN wͦgh/ i8B{NB aEFՍlMWr ez̴nF[;[d&yy%lheAލ9/#Ρ{֥Jȍ DA~jRlg.,8Y>iQ; 3,Т]CVy;&x9i' vt0% ŽyKR^52EgW(FN8:H0Nt/0~HĠǣ{@GeK*a Մz;YBT`Sp7$`׫)g{\o\ƅ?\S |fvz;~_;a^{vDHcQt: ;E"U[δQ\h= |k4s _!L]߻^&ݱ)QF-+Lů *)|Z lV-c6ru%|Ϡ[$x'~@|؄Nɳ,l%m'#+ZҕqBYAr90p~+2J7,2R3~WlZFarraDt?",J>6# 5<1c0$[A7GZ页 hU8㻎?/?:v` fhxFlN}XgN.U><$C c|HblQj]˜h@ "JD]w|$Y ) Jrxܞ̓'ncu9OGMFǡAoPT)ӻ&Bk9ori]뒩B6ǽnΆD(sj;&_@WT҂ъIJi2̏L n]E,$uɯ`^ρAaOϡiɐ$E~`4|M车ed^P {=W@]^J j`+XԒ;p;?V&eK?`(fPFA 7t<3f6A@_yoX\̀^!` +{ǕؼgdJtzY!ٮ<*΁mm̡nljqC[`#MԘY_ 6819p;g2Gkִ=~AjT;Id>U[]=ҁ)Z5۠3I[ފν ) Ϋ!ٓLl,#ۇ>YlluZvkRlGoZLΥ"brgrC jOtc.lGY*uHW8S:۟;k IQ@uUtD;{8]_5>D05P{]lsM$`й\vnGX5A_+k[6z7#`xcՌ7ygA.Uި$yk0:*&V=? lzEx`jdɣď7e `SYd!@72hCoqr4V߀5 ĠYdÀG> ϚWĄX:Cb"|&^ȼAҤLk]3)0#AoJ5g<_]y8fNzg:g(X yR#?A`II \R|ʄ0^)`T`࿵Rg0л*!ȝ@ 0ֱUC7=T'W INge/Dгj,[.(E߃UA;l(f\'k_6.w) Pm+5o0{skŕL[޾I^q }?3ata/G;ϭ5x+<͆ѹ}ÕȻ>Wb2XH%v!**lJ^6TjiΊ];ȱwMl|w o((yܬeSDB?dz>&Ԍ(_翵=ͩd21e+oi4oA}V`{fiXBX9G(-+KӢ+Q77mQiR>1uBc"Ԓ$ȓw&ؒDhks$3^[~Y#)WJ~SĄ|.zzfo!5lS*\/sի2mf\sx^]`V$ Qw"T9dSC &ZA2yq_gD,>Ux;EۇQ\> 62{0 A/?D; zv 5%4!^~KaʢÖm2Z$Kt6><;wm[4FUBIx'XOƈyzi) Y%0Aq_o,&`c}yT!:q3f-0;P̦߬Q9{μ6"YzȒ(7+ s ;H&v"+C䲡U!&E JdG+'V)?`aa.Nzbs}岧a5gç[)a|aW8ՙ+o1(/MVߍʴ$DQ0?g梥V m2*y$J ͽW,YWnlz^+Q՗Asa"Oi&a6㛘?أZ"j,#.y@CyKJ |rR"Q0InD2P[d>2 ŗ 8(63 lN Yu1+a~"7ɞ5yg˳年U2aMTmMU'eѽ%elai75`s+ȣ@ё@s7-2,lmdMߥ`%3!2\$sR'A 3β@ܩQ52Ԁq0*~oaB}뾏-NO#|ˬ-P7PgD#ϓݦh-QA!1rWjOi? Ok\js_mdC8`OO4F(_*ĩB,_igi;'*Gwk†Ks0#ICr;^_7BoL!Qקkw- U ;(g@ǽ#&xNr˻>ψfҥ Эz He/[Ok,IAHkQ`#zr5UԐ[v_|}א3;z쭀͍l1co^/:rYKFiL&UX! ܱa/h#8rn7dseĎAi$6tn -#:|!F0xB XšjxfDlxxiCI7g^H> *]Qe lv{_U?О䃜0vOTʧϲY!FYI?nG,R6EH͝=t5^yX^͹ӪŵU:d6{'*ض740i;f%3Nٓc gH 1R" d"r 4K v?>b!yfI }9W8E\+|i7"Yh(rx4teEkGG _\84u@6_$A!7Nېd~L!FƉ75y־@qDEtǖ]ߐcߦ :VdzSca#QR9D9KΑvN򍿁MG>=<Z JKϝ66"je"*Q'ΔnݢJ!=Bv,n[M}*tD2eG:tY^ZE^In՝{_ؚ|$1'ZLހ^8^$M@!$r9D狘5OQ݆1 kFu[<}3Ş{m uM-Yy>J|&oݎ2(( bQCńL"3coJ>a}Nq}Ң*ofҺŮ6*An̰tlo;}an~u_'H @Jkm"ќϊr#vl /N(9׼꫻o6+.Xy)sLjۯ hx4p69s֋eK(%\޿ъk犬4TLڶ*)/3ixG@h?#MD]@7ƚYUmz@7H\b6B3 ne5Y%p.Gr<GF?:kU 7q8~敮 H/OF)u6h/J-+m48ra&\% ƝH6S 'n4h1#H7DjB;|T#d՘ @C5wDWHW @Pø`,B )[ݸV~~H{7l~;P1 c! k;NQUbMo4 xC3icImrp320qF^1/&tΨH4Ͽ+Zr *4R YXWceDe:^+ -9.,-@i⼨l_!Aؒ@(d'4RR~2& )=*qB"%(I.%9 *3@l}s!h-j#aXW:9P\zw?gdVq1ǁ~y ::3`w@Ɲaܑl0qtcyG-zj*,81^ ^wK܉(#iJ~\w9\SZ[O+}$S*9UOjn<0[Ԗ|{i[."?}1}{85ȉ9TM8MȩX[*G''mu+lPI./01H7q%SH9Ɉlȋeҙ'/ ԧod4)%N!aม8:ʟ;`%( ˛]:̷FZU+S % kX+6>=Ǹ6[A]iz$8o>FWBcF'̼ 9 YZ